Skip to content
altstrument

FM-1 Ctrl

Firmware for FM-1 (M-VAVE)

Thin controller firmware that sends the FM-1's keys, knobs and buttons out as raw USB MIDI and takes MIDI back to light its LEDs, so the hardware can drive a firmware's browser emulator.

by johnskiller

ActiveSource: openMIT
M-VAVE FM-1 FM synthesizer, top view
Photo: M-VAVE, manufacturer product image, via m-vave.com

Brick risk. Flashing this carries a known, documented risk of damaging the device.

Distribution
Build from source yourself
License notes
The LICENSE file is MIT. The README says GPL-3.0-or-later and the firmware sources carry GPL-3.0-only headers (the Felucca platform code is GPL-3.0-only).
Source
github.com https://github.com/johnskiller/fm1-ctrl

Description

Contains no sound engine, sequencer or storage. Mapping lives on the browser side as a JSON control map, with a convention document and a first map for the Melodee emulator. The panel is reported as 7 encoders and 14 buttons on CC 40 to 53, and a later commit adds LED feedback on CC 54 to 67. The repository has a host simulator, a browser panel emulator that shows the MIDI bytes, and a WebAssembly build of the firmware's own code. It builds on the x0x build and the Felucca platform layer. The author's notes mark the on-device flash and LED check as pending, and USB MIDI both ways as verified on a unit.

Install notes

No release yet. tools/build.py needs the JieLi pi32v2 toolchain (JIELI_TOOLCHAIN) and produces build/ctrl.fwsc, which tools/fm1_install.py installs over USB. Back up first and have M-VAVE's updater ready.

Version history

FM-1 Ctrl version history
VersionDateNotes
main @ 471cec82026-10-15No tagged releases; this is the latest commit.

Back to FM-1