github Quixotic7/ChoralRootFM1 v0.39
ChoralRoot 0.39

latest release: v0.39-smk37
one hour ago

ChoralRoot 0.39 lets a whole MIDI keyboard play the chords: with MIDI Roots every note you play is a root, the
chord keys (on the FM-1, or pads over MIDI) say what kind of chord, and the home screen shows the chord as if you
had played it on the FM-1. The Options are now in groups, and they reopen where you left them. Your settings,
sounds, loops and favorites are stored as before.

MIDI Roots: a keyboard plays the chords

  • Options > MIDI > MIDI Roots (Off by default, or MIDI channel 1 to 16). Every note on that channel is a root at
    its own pitch
    , across the whole keyboard. Hold the FM-1's chord keys (or pads, below) and the root plays that
    chord; with nothing held it plays as the play style says, as a root key does.
  • The home screen follows: the chord's name, its notes and the key lights, as if you had pressed the root on the
    FM-1. Everything a root key drives follows too: the play style, Key Mode, the bass, the arp and the looper. The
    note's velocity is the chord's.
  • On FM-1 chord keys, a root waits for the SUS window as a root key does.
  • CC 120 or 123 on that channel lets every MIDI root go.
  • MIDI Roots skips the MIDI Perform, MIDI Bass and MIDI Keys channels. Setting a part to MIDI Roots' channel switches
    MIDI Roots off.

Pads hold the chord keys

  • On the MIDI Keys channel, notes 36 to 44 (the first nine pads of most pad controllers) now press F3 to
    C#4
    , the chord block, as notes 53 to 61 do. On FM-1 chord keys: pads 1 to 7 are 6, DIM, m7, MIN, M7, MAJ and 9
    (MIN with MAJ is SUS); pads 8 and 9 are the roots C4 and C#4.
  • Keyboard plus pads: set Options > MIDI > MIDI Keys to the pads' channel and MIDI Roots to the keyboard's (neither
    may be MIDI Perform's or MIDI Bass's). Hold a pad, play a note: that chord, on that root.

Settings in groups

  • OPT (printed GLO) opens the group list: Play (Play Style, Extension Addition, Secret Chords), Chords,
    Keys, MIDI, Screen, Audio and System, then Reset Settings as the list's last item. Under a
    group's name, how many settings it holds.
  • SELECT (or KNOB 1) picks a group, OCT+ opens it. Inside, SELECT moves between its settings and KNOB 1 changes
    the value, as before.
  • OCT- goes back to the group list; OCT- on the group list closes the Options. OPT or HOME closes them from
    anywhere.
  • Reset Settings: OCT+ twice on it, as before. Calibrate and Forget Bluetooth start with OCT+ in their groups.
  • In SAFE MODE a Safe Mode group comes first, and the Options open inside it, on Safe Mode, as before.
  • The full list, group by group: MANUAL.md section 14.

Settings reopen where you left them

  • Close the Options inside a group (HOME, OPT or any other way) and OPT brings you back to the same setting in that
    group. Closed from the group list, they reopen on the group list at the group you used last.
  • This is kept until power-off; after a fresh start the Options open on the group list, on Play.

For scripts

  • Every setting is stored as before: the groups only change the menu. Your settings come through the update
    unchanged.
  • Anyone driving the Options from emulator or MIDI scripts (counting SELECT steps from Play Style): the list is now
    grouped. Pick the group with SELECT, open it with OCT+, then count SELECT steps inside the group. OCT- returns to
    the group list.

Also

  • On the SMK-37 (0.39-smk37): the Options in groups and reopening where you left them. MIDI Roots and MIDI Keys
    are not on the SMK-37.

Installing

  • The web installer's default is 0.39: press Install. Options > System > Version reads ChoralRoot 0.39.
  • From 0.27 to 0.38, nothing needs doing: your sounds, loops, favorites and settings are all there.
  • From 0.21 or older: install 0.29.2 first and switch the FM-1 on once to keep 0.21's sounds (the installer asks;
    0.30.md).
  • A Single core package: the web installer's Advanced > Hardware fallback. Options > System > Version then
    reads ChoralRoot 0.39 1-core.
  • From another firmware: M-Flasher with the M-Bootloader and
    choralroot-0.39.fwsc.
  • Signed builds: GitHub built these packages from the tag's source and signed them; 0.26.1.md
    "Checking a package" says how to check one (choralroot-0.39.fwsc).

Going back

  • To 0.38 or older: the installer offers it under Other versions. Your settings, sounds, loops and favorites stay.
    The Options are one long list again, and notes 36 to 44 on MIDI Keys play as notes. With MIDI Roots on, the older
    firmware reads MIDI Raw Chord as Off (its default) until you set it there.
  • To another firmware: M-Flasher with the M-Bootloader (MANUAL.md
    "Switching firmwares"); back up ChoralRoot's data in the installer first.
  • To the stock firmware completely: M-VAVE's own updater, M-Updater.

ChoralRoot 0.39 for the M-VAVE FM-1 (identity FM-1_920).

Install from the browser at https://quixotic7.github.io/ChoralRootFM1/ (Chrome or Edge, the FM-1 connected by USB), or with the command-line installer: python3 tools/fm1_install.py choralroot-0.39.fwsc.

choralroot-0.39-1core.fwsc is the same firmware on one processor core, for an FM-1 that crashes or freezes with the standard package (the installer offers it under Advanced > Hardware fallback). Settings, sounds and loops stay when you switch between the two.

SHA256SUMS lists both packages and their apps. GitHub built and signed each from this tag's source (The Firmware Hub's shared workflow); check one with gh attestation verify choralroot-0.39.fwsc --repo Quixotic7/ChoralRootFM1 --signer-workflow zvenson/fm1-build/.github/workflows/build.yml. The package holds three JieLi AC79 SDK files (Apache-2.0); LICENSE, LICENSING.md and LICENSES.zip carry every licence. Installing firmware is at your own risk.

Full Changelog: v0.38...v0.39

Don't miss a new ChoralRootFM1 release

NewReleases is sending notifications on new releases.