CTL-1
CTL-1 turns the M-VAVE FM-1 into a MIDI controller.
- Custom firmware
- Stable
- Low brick risk
- Reversible
Source codeWebsite: charlesvestal.github.io
This project hasn't been claimed by its maintainer yet, so its details come from the community. Is it yours? Claim it
CTL-1 now runs on fm1-base, the MPL-2.0 base for FM-1 firmware on felucca-bsp, and is MPL-2.0 itself. That lets it ship with Bluetooth MIDI.
- Bluetooth MIDI: the FM-1 shows up as "FM-1" to a computer or tablet (on a Mac: Audio MIDI Setup, Window, Show MIDI Studio, the Bluetooth button, Connect). Everything you play goes out over USB and Bluetooth at once.
- It connects to Bluetooth MIDI devices too: on the Setup page, KNOB 1 picks a device found, SAVE connects or lets it go, and KNOB 4 turns Bluetooth on or off (kept).
- The knobs follow their controllers when they're heard on the channel, so a device that sends back (like the OXI E16) stays in step.
- A computer that has linked but isn't listening yet shows "No MIDI yet. Mac: reopen Audio MIDI Setup."
- EDIT opens Sound and GLO opens Setup.
- A held program change takes effect at once.
- The autosave no longer rewrites the flash every few seconds while a device's knob turns (the lights flickered).
Two files, either one installs over the other:
ctl-1.0.fwsc: USB, TRS and Bluetooth MIDI.ctl-usb-1.0.fwsc: the same without Bluetooth.
Install it from the browser (Chrome or Edge, the FM-1 plugged in): https://charlesvestal.github.io/fm1-ctl/install/
(it installs ctl-1.0.fwsc), or over USB with python3 base/tools/fm1_install.py ctl-1.0.fwsc.
Before you start
- How hard is it?
- EasyCopy a file or use a web page. No extra software.
- What you need
- Comfort with the command line
- A computer
- Can it break my device?
- Very unlikely to break anything.
- Can I undo it?
- Yes. You can go back to the official software.
Did it work for you?
Did CTL-1 v1.0 work on your M-VAVE FM-1?
No reports yet for v1.0.
One-tap reports from owners. Bricked reports are checked before they count.
Compatibility
Devices: M-VAVE FM-1.
No compatibility information yet.
Getting started
From the project's README ("Building and testing"):
CTL-1 is an app on fm1-base (base/, a git submodule); clone with --recursive. The toolchain and prerequisites are in BUILDING.md:
sh tests/runtests.sh # the app in the simulator, the emulator, the update path ./build.sh # app/build/ctl.fwsc ./build.sh --no-ble # app/build/ctl-usb.fwsc: without Bluetooth python3 base/tools/fm1install.py app/build/ctl.fwsc # install it over USB
app/build/host/ctlhost SCRIPT OUTDIR runs the whole app on a computer from a script (tests/scenarios/.ctl), with screenshots and the MIDI sent coming out; tools/genscreens.sh makes the manual's screenshots. ./build.sh --web builds the same code for the browser (the emulator), which can play a real MIDI port through Web MIDI.
Bluetooth starts at every boot and advertises as "FM-1" (on a Mac: Audio MIDI Setup, Window, Show MIDI Studio, the Bluetooth button, Connect); the Setup page shows the stack's log, which survives a reset.
Risk and recovery
- Brick risk
- Low
- Reversible
- Yes
- Requires opening the device
- No
From the project's README ("CTL-1 for the M-VAVE FM-1"):
CTL-1 turns the M-VAVE FM-1 into a MIDI controller. The keys play notes, with velocity and aftertouch read from the keys themselves, in any scale with its chords under the black keys; the knobs send controllers in four banks; an arpeggiator and a four-track Euclidean drum sequencer run on its clock. Everything goes out over USB and Bluetooth, MIDI from the TRS jack is passed along, and the FM-1 plays it all on its own General MIDI sounds too, so it works with nothing connected.
- Try it in your browser (no FM-1 needed):
- Install it (Chrome or Edge, with the FM-1 plugged in):
- Read the manual: (source: docs/MANUAL.md)
- Download the firmware file: releases: ctl-X.Y.fwsc has USB, TRS and Bluetooth MIDI, ctl-usb-X.Y.fwsc the same without Bluetooth
Installing it is at your own risk, though it's hard to get stuck: the web installer can put M-VAVE's own firmware back, and an FM-1 that fails to start twice comes up in a safe mode the installer can reach.
In short
Keys Notes; with a scale, its notes on the white keys and its chords on the black keys KNOB 1–4 The page's four values; on Play, four controllers in four banks HOME · SEL · ARP · SEQ · EDIT · GLO The pages: Play, Keys, Arp, Sequencer, Sound, Setup SELECT The page's own pages: the banks on Play, the tracks on the Sequencer ALGORITHM · PRESETS · MASTER MIDI channel · program change (the sound follows) · volume …
Releases
| Version | Name | Released |
|---|---|---|
| v1.0 | CTL-1 1.0Latest | 17 October 2026 |
| v0.9.2 | CTL-1 0.9.2 | 15 October 2026 |
| v0.9.1 | CTL-1 0.9.1 | 15 October 2026 |
| v0.9 | CTL-1 0.9 | 10 October 2026 |
Credits, license and support
- License
- MPL-2.0