ChoralRoot 0.12 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.12.fwsc.
All-synth: the SAMPLE sets, GRAIN and DRUM engines and the inert sequencer are gone (flash 85 % → 47 %, RAM 92 % → 75 % before FM6). PIANO is an FM6 preset, CLOUD PAD and SHIMMER are VA pads; bank positions unchanged. A user sound saved on a retired engine loads as an INIT sound with a message.
FM6 from Melodee (by Kerem Kilic): DX7 voices rendered exactly as Dexed does, Felucca's 8 factory patches plus Melodee's 16, the 32-slot cartridge bank, DX7 SysEx in and out over USB MIDI. The patch and its function settings travel with the user slot and are in backups. Editor groups for the operators, the algorithm, the six DX envelopes and the pitch EG (drawn as rate/level shapes), the LFO, function and controller pages. FM6 is capped at 8 voices on the FM-1.
Backup and restore: Back up / Restore on the installer page and in fm1_install.py --backup / --restore; an install backs up first (Skip backup if the running firmware cannot), the stock-V15 return too. Settings, user sounds with their VA and FM6 patches, the FM6 bank and the ten loops. Felucca and Melodee backups restore their common objects.
Installer guard: the installer identifies the running firmware after the handshake and refuses Sloop, Felucca betas and unknown firmwares (an explicit override exists), with a "Device not found?" help block. See docs/INSTALL-COMPAT.md for the evidence: the update loader is not what bricked a Sloop → ChoralRoot install.
Also: the dev build and the backup files carry the version; a "Return to official V15" that backs up first.
SHA256SUMS lists the package and the app. 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.11...v0.12