github joakimeriksson/fm1-dock v0.7
fm1-dock 0.7

latest release: v0.7.1
3 hours ago

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.

Don't miss a new fm1-dock release

NewReleases is sending notifications on new releases.