fm1-dock 0.7: Bluetooth MIDI that connects, both CPU cores, five new modules, a master EQ, and a real catalog page.
This is the first fm1-dock built from source and signed on GitHub by the Firmware Hub's shared workflow (zvenson/fm1-build): every .fwsc here carries a build attestation (gh attestation verify fm1-dock-0.7.fwsc -R joakimeriksson/fm1-dock --signer-repo zvenson/fm1-build).
Install
Open the page in Chrome or Edge, press Connect over USB, then Install fm1-dock. Coming from 0.6 or earlier, your added modules, settings and presets stay. Then add modules from the catalog with one click.
| Package | For |
|---|---|
fm1-dock-0.7.fwsc
| M-VAVE FM-1 |
fm1-dock-0.7-smk37.fwsc
| M-Vave SMK-37 Pro, Starrykey 37 Play |
fm1-dock-0.7-smk37-elite.fwsc
| SMK-37 Elite |
fm1-dock-0.7-smk37-mke.fwsc
| MKE-P37 |
Bluetooth MIDI that connects, with both cores
Bluetooth MIDI advertised, but on a real FM-1 a connection fell apart within a fraction of a second. Reading the radio's own counters from RAM showed why: on the data channels it heard nothing. The radio was started from values recorded from the stock firmware in an emulator, and the chip's own tuning was eleven steps away.
- The radio calibrates itself at every start, with the AC79 SDK's calibration as Charles Vestal wrote it for fm1-base and Melodee (
fm1_rf_cal.h, Apache-2.0). A Mac connects in half a second and MIDI flows both ways. Turning BLUETOOTH ON pauses the sound for about 0.2 s while it measures. - A dead link is let go and the FM-1 advertises again (it could hang on one for 40 s, or for good).
- The radio's interrupts come before the audio's, so a busy module no longer makes it miss a connection.
- Both CPU cores keep running with Bluetooth on, with M-VAVE's whole power-up at boot (after Melodee and Optimist). Tested: three minutes of eight-note chords over Bluetooth into CS-1, half its voices on the second core.
On a Mac: Audio MIDI Setup → Window → Show MIDI Studio → the Bluetooth button → Connect on FM1-DOCK xxxx.
Five new modules
Each is its author's own code, taken by a take.py and changed only where a module's 272 KiB of RAM needs it. Add them from the page.
| by | ||
|---|---|---|
| FM-106 | PatttF | The Juno-106: six voices, three of them on the second core; the 128 factory presets, its chorus, arpeggiator and sequencer |
| MONK-1 | Charles Vestal | Twelve singers on MonkSynth's formant voice; velocity and pressure from the keys. Large: 240 KiB |
| FiMba-1 | Adam Sowers | A kalimba by modal synthesis: 16 tines, thumb-roll chords, the sound hole's wah under the keys' pressure |
| GATOR | npi3pak | A macro oscillator after Mutable Instruments' Plaits (Emilie Gillet's DSP): 24 models, 16 presets |
| DUB-1 | sbegueria | A generative dub techno machine that plays itself, eight pieces. Large: 265 KiB |
The add-ons share 296 KiB of flash; the page's meter shows what fits before you add one.
The second core
Modules can play voices on the chip's second CPU: CS-1 plays half its voices there, FM-106 three of its six. The top line shows 2CPU or 1CPU. After a crash with both cores, fm1-dock runs on one until power-off instead of crashing again.
Sound and MIDI, for every module
- Master EQ (OPTIONS → EQ): LOW, MID and HIGH, ±12 dB, in the chip's hardware EQ, heard while you set it; KNOB1–3 turn the bands.
- CC7 VOLUME and MASTER CC7: CC 7 sets the level of whatever plays; MASTER can send CC 7.
- MIDI CH: ALL, or one channel the module hears as channel 1.
- LOCAL: OFF, the keys only send MIDI (no doubled notes from a computer).
- MIDI THRU: the TRS jack's MIDI on to USB and Bluetooth.
- KNOBS CC: KNOB1–4 send CC 74, 71, 73, 72.
Also
- Scintilla up to date: the factory bank, velocity and aftertouch, CC 7, Take-off without the click.
- USB audio records every module cleanly.
- The page is a catalog and installer: your device (read only until you press a button), fm1-dock's install and update, every module with Add / Remove, and the flash meter.
Thanks
Kerem Kilic (Melodee): the power-up and the second core's safe hold. w0ts (Optimist): the Bluetooth stack. Charles Vestal (fm1-base): the radio calibration, MONK-1, AMB-1 and FoMni. Leo Kuroshita (Felucca). PatttF, Adam Sowers, npi3pak, sbegueria, twochannels and zvenson for their synths. Licences and credits: LICENSING.md.
Known limits
- FM-1 SID, MONK-1 and DUB-1 are large: with one of them added, little else fits.
- The new modules are tested in the emulator; FiMba-1 also on an FM-1.