Firmware

FM1VST

Loud90/100

VST for Felucca base FM-1 Firmware

FM1VST is custom firmware for the M-VAVE FM-1, by @Quixotic7. Open source under GPL-3.0, latest release v0.6.2 (October 2026), 9 stars on GitHub.

forM-VAVE FM-1·by@Quixotic7

Unclaimed. Is this yours? Sign in with GitHub as @Quixotic7 to claim it.

Downloads
0
Stars
9
Forks
3
Commits
119
Last commit
Download v0.6.2

FM1VST-0.6.2-macOS-arm64.pkg· 42 MB· +2 files

GPL-3.0· Quixotic7/FM1VST·downloads come from the creator’s GitHub releases

101
Commits
8
Releases
101 commits and 8 releases in the last year
Activity · last 12 months
8 releases
  1. v0.6.2FM1VST 0.6.2Latest3 files

    FM1VST 0.6.2 for macOS 11.0 or later on Apple silicon: AU, VST3 and Standalone, as an installer package (FM1VST-0.6.2-macOS-arm64.pkg: the app into /Applications, the plug-ins into /Library/Audio/Plug-Ins) or a zip to copy by hand (FM1VST-0.6.2-macOS-arm64.zip, with the licences).

    Not signed with a Developer ID nor notarised. The installer: right-click it > Open (macOS 14 or earlier), or open it once, then System Settings > Privacy & Security > Open Anyway (macOS 15 or later); what it installs carries no quarantine flag. The zip's bundles: xattr -dr com.apple.quarantine after copying, or Open Anyway. INSTALL.txt in the zip has the details, and rescanning in Live and Logic.

    The cores in this build

    firmwareversionlicencesource
    ChoralRoot (default)0.26.1GPL-3.0-onlyQuixotic7/ChoralRootFM1 at 7d97982
    Felucca1.6.1GPL-3.0-onlyhugelton/Felucca at a53ecf4
    GHOULBOX2.3.2GPL-3.0-onlyjasonpersinger/ghoulbox-fm1-dungeon-synth at 71ac3f8
    JIANT FM0.9.9GPL-3.0-onlyjuanjiant-bit/JIANT at 0912abb
    PurpleMonkey0.11GPL-3.0-onlyQuixotic7/PurpleMonkeyFM1 at 7590d4a
    CoralFlower0.5GPL-3.0-onlyFicusFicusov/CoralFlower at b5ceb99
    Melodee1.4.5GPL-3.0-onlykeremimo/melodee at 398ada1
    FoMni-10.4GPL-3.0-onlycharlesvestal/fm1-fomni at 6ecd227
    FiMba-10.6.1GPL-3.0-onlyjadamsowers/fm1-fimba at 0485ed0
    AMB-11.3MPL-2.0charlesvestal/fm1-amb at 188b0a4
    OberVave1.5.3GPL-3.0-onlyzvenson/obervave at 7e1ccf9
    Frodhes0.9.4GPL-3.0-onlyleonardoMirabal/frodhes at c82f71e
    LOOM-80.6.1GPL-3.0-onlycharlesvestal/fm1-loom at 3f41391
    DUELL (unofficial build)1.0GPL-3.0-onlyoscillr/DUELL at 33e2e2e
    Mini-Tone1.0.1GPL-3.0-onlyeldontyrellcorp/Mini-Tone at 5e5d09c
    FMini-11.8.0GPL-3.0-onlyruppert/fmini-1 at ab0f5c8
    Skiff1.4GPL-3.0-onlyilluminus5/skiff at c01fa1e
    GR!MM1.0GPL-3.0-onlyGRiMMBIENT/grimm at 815ca6b
    PIGEON0.4.1GPL-3.0-onlyTheShrimpBlimp/pigeon at 8f34e81
    Tonitor0.55GPL-3.0-onlynzimas/tonitor at a240bc1
    Speak371.0GPL-3.0-onlygenkigenki/Speak37 at a617d60
    FM-1 (emulated)fm1-emu 5fbb066 + 0001+0002+0003+0004MITjoakimeriksson/fm1-emu at 5fbb066

    Remote FM-1 needs the unit on the RemoteFM1 firmware.

    What's new

    • Remote FM-1 over Bluetooth MIDI. A unit on RemoteFM1 0.2 or later, paired with the Mac over Bluetooth (it shows as "FM-1 ..."), can be the panel too: the plugin finds it by that name, and other Bluetooth MIDI gear never gets a message. The status says connected (Bluetooth, N fps).
    • Frames paced for the unit (libremotefm1 from RemoteFM1 0.2.2). Over Bluetooth the plugin sends no more than the unit's radio carries, so the screen no longer updates in random chunks. Changed tiles go in 4 colours first and in their exact colours once the screen has been still for a second.
    • Changes shown whole, about 6x faster with 0.2.2. With a unit on RemoteFM1 0.2.2, each screen change appears at once when all of it has arrived, at about 30 KB/s (0.2.2's faster radio) instead of about 5.5 KB/s for older units. Update the unit to 0.2.2 for both.
    • USB first. A unit connected by USB and Bluetooth at once is driven over USB.
    • The settings sheet's Remote FM-1 diagnostics count, over Bluetooth, the tiles sent in 4 colours, those made exact, and the frames held for whole changes.

    SHA-256 (SHA256SUMS):

    • FM1VST-0.6.2-macOS-arm64.zip: 4116a96d63740f23a5df95140b2b732975c6095845baa7c6d2d974a7a161ec82
    • FM1VST-0.6.2-macOS-arm64.pkg: e587bf167090885952ef6b571548e754674f9284774ff9561ca965a74ae87fea
  2. v0.6.1FM1VST 0.6.13 files

    FM1VST 0.6.1 for macOS 11.0 or later on Apple silicon: AU, VST3 and Standalone, as an installer package (FM1VST-0.6.1-macOS-arm64.pkg: the app into /Applications, the plug-ins into /Library/Audio/Plug-Ins) or a zip to copy by hand (FM1VST-0.6.1-macOS-arm64.zip, with the licences).

    Not signed with a Developer ID nor notarised. The installer: right-click it > Open (macOS 14 or earlier), or open it once, then System Settings > Privacy & Security > Open Anyway (macOS 15 or later); what it installs carries no quarantine flag. The zip's bundles: xattr -dr com.apple.quarantine after copying, or Open Anyway. INSTALL.txt in the zip has the details, and rescanning in Live and Logic.

    The cores in this build

    firmwareversionlicencesource
    ChoralRoot (default)0.26.1GPL-3.0-onlyQuixotic7/ChoralRootFM1 at 7d97982
    Felucca1.6.1GPL-3.0-onlyhugelton/Felucca at a53ecf4
    GHOULBOX2.3.2GPL-3.0-onlyjasonpersinger/ghoulbox-fm1-dungeon-synth at 71ac3f8
    JIANT FM0.9.9GPL-3.0-onlyjuanjiant-bit/JIANT at 0912abb
    PurpleMonkey0.11GPL-3.0-onlyQuixotic7/PurpleMonkeyFM1 at 7590d4a
    CoralFlower0.5GPL-3.0-onlyFicusFicusov/CoralFlower at b5ceb99
    Melodee1.4.5GPL-3.0-onlykeremimo/melodee at 398ada1
    FoMni-10.4GPL-3.0-onlycharlesvestal/fm1-fomni at 6ecd227
    FiMba-10.6.1GPL-3.0-onlyjadamsowers/fm1-fimba at 0485ed0
    AMB-11.3MPL-2.0charlesvestal/fm1-amb at 188b0a4
    OberVave1.5.3GPL-3.0-onlyzvenson/obervave at 7e1ccf9
    Frodhes0.9.4GPL-3.0-onlyleonardoMirabal/frodhes at c82f71e
    LOOM-80.6.1GPL-3.0-onlycharlesvestal/fm1-loom at 3f41391
    DUELL (unofficial build)1.0GPL-3.0-onlyoscillr/DUELL at 33e2e2e
    Mini-Tone1.0.1GPL-3.0-onlyeldontyrellcorp/Mini-Tone at 5e5d09c
    FMini-11.8.0GPL-3.0-onlyruppert/fmini-1 at ab0f5c8
    Skiff1.4GPL-3.0-onlyilluminus5/skiff at c01fa1e
    GR!MM1.0GPL-3.0-onlyGRiMMBIENT/grimm at 815ca6b
    PIGEON0.4.1GPL-3.0-onlyTheShrimpBlimp/pigeon at 8f34e81
    Tonitor0.55GPL-3.0-onlynzimas/tonitor at a240bc1
    Speak371.0GPL-3.0-onlygenkigenki/Speak37 at a617d60
    FM-1 (emulated)fm1-emu 5fbb066 + 0001+0002+0003+0004MITjoakimeriksson/fm1-emu at 5fbb066

    Remote FM-1 needs the unit on the RemoteFM1 firmware.

    What's new

    • Video recording: the big LCD in Device takes. With "Big LCD above the panel" on (the sheet's View, or the ` key), a Device take records that layout: the LCD square above the panel, both drawn from the same moment, so sync is as before. The frame is portrait in the layout's shape, 720 × 1162 (720p) or 1080 × 1744 (1080p): about as many pixels as the 16:9 sizes, with no bars. The setting is read when a take starts; turning it off or on mid-take leaves that take as it is. The sheet's Size row shows the size. Screen and LCD takes are unchanged.
    • Show keyboard shortcuts (the sheet's View section, on by default): turned off, the panel draws no computer-key labels ("F3 2", "TAB", "F5/C") and centres the keys' and buttons' names in the space the labels used. The keys still work. The setting is remembered for every instance, and Device video takes follow it.

    SHA-256 (SHA256SUMS):

    • FM1VST-0.6.1-macOS-arm64.zip: fe8a9fb9e561cbb1bf339ac9dffd787c18cf63392bc44cc5a3853e5a6f22bcf6
    • FM1VST-0.6.1-macOS-arm64.pkg: 5a07aee9f0cc1da04e3759b8df4a57d5b459a4c51b13b9c54370abab0e77efcd
  3. v0.6.0FM1VST 0.6.03 files

    FM1VST 0.6.0 for macOS 11.0 or later on Apple silicon: AU, VST3 and Standalone, as an installer package (FM1VST-0.6.0-macOS-arm64.pkg: the app into /Applications, the plug-ins into /Library/Audio/Plug-Ins) or a zip to copy by hand (FM1VST-0.6.0-macOS-arm64.zip, with the licences).

    Not signed with a Developer ID nor notarised. The installer: right-click it > Open (macOS 14 or earlier), or open it once, then System Settings > Privacy & Security > Open Anyway (macOS 15 or later); what it installs carries no quarantine flag. The zip's bundles: xattr -dr com.apple.quarantine after copying, or Open Anyway. INSTALL.txt in the zip has the details, and rescanning in Live and Logic.

    The cores in this build

    firmwareversionlicencesource
    ChoralRoot (default)0.26.1GPL-3.0-onlyQuixotic7/ChoralRootFM1 at 7d97982
    Felucca1.6.1GPL-3.0-onlyhugelton/Felucca at a53ecf4
    GHOULBOX2.3.2GPL-3.0-onlyjasonpersinger/ghoulbox-fm1-dungeon-synth at 71ac3f8
    JIANT FM0.9.9GPL-3.0-onlyjuanjiant-bit/JIANT at 0912abb
    PurpleMonkey0.11GPL-3.0-onlyQuixotic7/PurpleMonkeyFM1 at 7590d4a
    CoralFlower0.5GPL-3.0-onlyFicusFicusov/CoralFlower at b5ceb99
    Melodee1.4.5GPL-3.0-onlykeremimo/melodee at 398ada1
    FoMni-10.4GPL-3.0-onlycharlesvestal/fm1-fomni at 6ecd227
    FiMba-10.6.1GPL-3.0-onlyjadamsowers/fm1-fimba at 0485ed0
    AMB-11.3MPL-2.0charlesvestal/fm1-amb at 188b0a4
    OberVave1.5.3GPL-3.0-onlyzvenson/obervave at 7e1ccf9
    Frodhes0.9.4GPL-3.0-onlyleonardoMirabal/frodhes at c82f71e
    LOOM-80.6.1GPL-3.0-onlycharlesvestal/fm1-loom at 3f41391
    DUELL (unofficial build)1.0GPL-3.0-onlyoscillr/DUELL at 33e2e2e
    Mini-Tone1.0.1GPL-3.0-onlyeldontyrellcorp/Mini-Tone at 5e5d09c
    FMini-11.8.0GPL-3.0-onlyruppert/fmini-1 at ab0f5c8
    Skiff1.4GPL-3.0-onlyilluminus5/skiff at c01fa1e
    GR!MM1.0GPL-3.0-onlyGRiMMBIENT/grimm at 815ca6b
    PIGEON0.4.1GPL-3.0-onlyTheShrimpBlimp/pigeon at 8f34e81
    Tonitor0.55GPL-3.0-onlynzimas/tonitor at a240bc1
    Speak371.0GPL-3.0-onlygenkigenki/Speak37 at a617d60
    FM-1 (emulated)fm1-emu 5fbb066 + 0001+0002+0003+0004MITjoakimeriksson/fm1-emu at 5fbb066

    Remote FM-1 needs the unit on the RemoteFM1 firmware.

    What's new

    Video recording (Standalone)

    The Standalone app records the firmware playing as a movie: a red record button at the panel's top-left corner (the dot pulses while recording, with the take's time), Cmd+Shift+R, or the settings sheet's new Video section. Takes go to ~/Movies/FM1VST/<firmware>-<version>-<YYYYMMDD-HHMMSS>.mp4; "Show in Finder" after each. Plug-ins leave it out (the DAW records).

    • The picture is drawn by FM1VST itself, never a screen capture: no Screen Recording permission, and covering or moving the window changes nothing. The whole FM-1 (as the device view draws it, pressed keys and buttons lit), the screen view, or the LCD alone pixel for pixel (nearest-neighbour, 720 or 1080 square); 720p or 1080p, 30 or 60 fps; H.264 (the hardware encoder) in .mp4 or .mov.
    • The sound is FM1VST's own output, AAC 48 kHz stereo 256 kbps. An optional mic / line input from the audio device (a mono channel or a stereo pair, a gain, as a second audio track or mixed in, an optional monitor): macOS asks for the microphone permission the first time it is turned on, and the input is opened only while recording or monitoring.
    • One clock: the audio's sample count; every video frame is placed on it, so picture and sound stay in sync over any length (measured: under 0.1 ms off over 30 s, no drift). A firmware switch or restart ends the take cleanly; a crash or a full disk keeps what was written up to the last two seconds.

    LOOM-8, a new core

    loom: Charles Vestal's LOOM-8 (GPL-3.0-only, on fm1-base and felucca-bsp, MPL-2.0), a pocket groovebox: eight tracks on nine engines, a 64-step sequencer with locks, weave, scenes and a song, and a user sample bank loaded over USB. Pinned at v0.6.1 (2026-10-22), LOOM-8's first release without "-beta" (it joined at v0.6-beta, a beta on purpose while every LOOM-8 release was one): chord mode on Steps, the b/w theme, the filter type "off" moved past bp12 (older projects and user presets migrate on load).

    • Built like AMB-1 on the fm1base glue, unmodified; its second core's jobs run in order on the host's thread, as in LOOM-8's own simulator and browser emulator (the same split render, the same sums).
    • The managers answer: the samples page and tools/loom_samples.py (the user sample bank), fm1-base's backup page (backup and restore of the projects and user presets, SEL on the panel to confirm), the installer's identity (FM-1_10000601) and its log readout, a screen reader. "Show to editors" names the port "LOOM-8 FM-1 (FM1VST)" and links the samples page.
    • In the public release (21 cores and the fm1emu engine): its factory 909 hi-hat ships unchanged, the owner's call ("ship the original, it is from the emulated 909 on the schwung firmware for Ableton Move that Charles Vestal made"); the About page's credits name that origin. X0X stays gated (CORES-PLAN.md 6).

    Mini-Tone, FMini-1, Skiff and GR!MM, four new cores; DUELL public

    All four are in the public release, each pinned at its latest stable release (research/cores-2026-10-22/SURVEY.md):

    corefirmwarepinglue
    minitoneMini-Tone by Stephane Schmitz: Felucca 1.5 with six tracks and SID, CHIP, DUALVCO, ANALOG4, BRAIDS, SWARMER, FMTONE, WAVETONE, FMDRUM and TB303 engines1.0.1 (5e5d09c)felucca_web
    fminiFMini-1 by ruppert: a three-oscillator Minimoog-style monosynth on Felucca 1.6.1, 100 factory patches1.8.0 (ab0f5c8)felucca_web (its 3 s splash)
    skiffSkiff by illuminus5: a six-track groovebox, 14 engines, songs, PERFORM scenes (the FM-1 board)1.4 (c01fa1e)felucca_web
    grimmGR!MM by GRiMMBIENT: dark ambient on Dinghy, four tracks, seven sources, granular freeze, reverbs to infinite1.0 (815ca6b)dinghy, on its browser shim
    • Each runs its firmware's own browser unit, unmodified, and matches it (the golden checks: the felucca_web three screen and audio identical to their web/emu/felucca_web.c; GR!MM's screen identical to its tests/host.c).
    • The managers answer: the three felucca_web cores' web editors (INFO, backup LIST / GET / PUT, user presets); GR!MM's editor page (F0 7D 47 52: INFO, GET, PUT of sounds, slots and settings; its sample upload); each installer's identity (Mini-Tone FM-1_910, FMini-1 FM-1_918, Skiff FM-1_714, GR!MM FM-1_966, as their release builds). "Show to editors" names the ports as the units do ("Felucca", FMini-1's "FM-1 Midi") and links the FMini-1, Skiff and GR!MM editors.
    • Mini-Tone's repository lacks the MIT and Apache-2.0 texts its LICENSING.md names: FM1VST supplies them (its About page's credits, and the release's licences/cores/minitone/LICENSES/); tools/package_release.sh now checks that every licence file a core's LICENSING.md names is in the release. Skiff's credits say its SLICE loops BREAK and FUNK are AI-generated (the YuE2 model). FMini-1's few artist-named patch titles are names only.
    • DUELL is public (the owner's call): the core is the unmodified v1.0, named "DUELL (unofficial build)" with its commit, which satisfies its NOTICE.md naming terms; its credits say so and carry NOTICE.md and CREDITS.md.

    PIGEON, a new core

    pigeon: The Shrimp Blimp's PIGEON (GPL-3.0-only, on Felucca 1.5.1), a performance sampler after the SP-404 and the PO-33: two chopped songs (MP3 or IMA ADPCM, up to 32 chops each) and a 16-pad kit, a 64-step sequencer with four notes a step, patterns A-D and an arrangement. Pinned at v0.4.1 (8f34e81), its latest stable release (the Hub offers 0.5.0-beta.1).

    • The firmware's own browser unit on the felucca_web glue, unmodified, with its MP3 decoder (ko_mp3.c and libmad 0.15.1b) built from its tree.
    • The sample bank: as on the FM-1, the 500 KiB bank lives in the 1 MiB NOR (the extents PIGEON's package frees for it), so it is part of the core's flash image: saved with the plugin state and presets, kept across a power cycle. No bank ships with the release, so a fresh PIGEON is silent until one is loaded the device's way: PIGEON's sample loader or tools/ko_bank.py upload (the editor protocol's bank commands). "Show to editors" names the port "PIGEON (FM1VST)" and links the sample loader.
    • The managers answer: the bank (negotiate, upload, export, erase, diagnostics), the editor's backup, the installer's identity (FM-1_900).
    • In the public release. Its credits name the splash logo's artist (Dendy0097), libmad and the ported DSP's notices.

    Tonitor, a new core

    tonitor: Nuno Zimas's Tonitor (GPL-3.0-only, on Felucca and SLOOP), firmware for acousmatic and live-ambient music, built for low vision: six tracks of generated "sound objects" on seven engines (FM, ANIMA, CALIGULA, RUSSOLO, DRUID, BAYAREA, HIVE), free loops with overdubs, a granulator, a reverb, a delay, a modulation matrix per track, sessions and presets. Pinned at a240bc1 (0.55): Tonitor has no tags or releases and publishes several times a day; the pin is the commit holding the Firmware Hub's current package (its "2026.10.22", firmware 0.55; 0.54 and 0.55 changed only the USB audio out, which a core builds out). Expect frequent bumps.

    • Its own glue (core-glue/tonitor): the device's unity build with a host HAL in place of the hardware headers, and main.c's power-on and main loop re-done on the plugin's clock. The loop runs on a coroutine: where the device waits for its interrupts (a new sound waiting for the audio to take it, a reply waiting for room) it yields, and the audio, MIDI and time move on as on the device. The second core's jobs run inline, where the device waits for them (the same sound as Tonitor's own two-core / one-core check).
    • The managers answer: the installer's identity (FM-1_700) and the backup page's sessions and presets (LIST, READ, WRITE, refused when damaged). "Show to editors" names the port "FM-1 Tonitor (FM1VST)" and links the backup page. The update keys are ignored, as on every core.
    • In the public release.

    Speak37, a new core

    speak37: Speak37 by M. Geisler (GPL-3.0-only, on the Felucca platform), the talking synth: every key speaks the next word of a sentence at its pitch, chords speak in harmony, nine voices (CLASSIC .. CHOIR), 20 banks of sentences and songs plus a USER bank of 16, RHYTHM with an 808 and 16 grooves, and MOPE, "a gloomy robot who judges your chords". Pinned at v1.0 (a617d60), its FM-1 build (speak37-fm1-1.0.fwsc: build.py BOARD=fm1speak); the SMK-37 build is a different panel, out of scope.

    • Its own glue, core-glue/speak37: the device's sources unmodified, the FM-1 HAL on the host, the device's power-on and main loop on the plugin's clock, the device's own audio interrupt (sp_main.c).
    • Saves as the unit does: the sound in use, MASTER, the sentence (the autosave; a host's save writes it at once, unless a voice still speaks), the 16 memories (SAVE held), the USER sentences.
    • The installer's identity answers (FM-1_510, the v1.0 package's); Speak37 has no editor. "Show to editors" names the port "Speak37 (FM1VST)" and links its installer page.
    • In the public release: the TMS5220's coding tables and the Speak & Spell chirp are chip constants as MAME tabulates them (BSD-3-Clause), the words are espeak-ng renders (no TI vocabulary); the About page carries MAME's and FM1 Open's (the 808, MIT) notices.

    Firmware updates

    Each pin moved to its firmware's latest stable release:

    corewasnowglue
    ChoralRoot0.25.10.26.1version only
    CoralFlower0.20.5flash_sync writes 0.4's settings log, its sequencer store, the parts' sound edits and (0.5) the patterns' own sounds and their tweak stores; the generate list (no melodee_cz1.h); the golden reference built at CR_VERSION 0.5
    DUELL0.2.20-beta1.0 (its first non-beta release)the generate list (midi_map_defaults.h); the credits carry its new CREDITS.md
    Melodee1.4.41.4.5version only; its USB port is now "Melodee FM-1", and so is the editor port's name
    SLOOP2.7.12.8version only (gated)
    sloopDX4.0 (eeec0a6)4.0 (tag v4.0)none: the tag adds CI and installer changes only (gated)
    No Man Sky FM0.40.5 (32e7f4c, no tag: its README's current version)two more generated headers; projects in format 7 (gated)
    OberVave1.5.11.5.3version only
    Frodhes0.9.20.9.4version only; the Inter Tight font's OFL in its credits
    FM-106Beta4Beta5version only (gated); Beta5 still refuses the commit to flash (the user bank does not fit its 8 KiB), as sysex_test records

    Unchanged, already at their latest stable release: Felucca 1.6.1, GHOULBOX 2.3.2, PurpleMonkey 0.11, X0X 1.1.0, FoMni-1 0.4, FiMba-1 0.6.1, AMB-1 1.3, Fart Machine One 1.0.0, ORBIT 0.7.1, Rainbow Mode 1.1.5-rb (upstream changed only its landing page), JIANT FM 0.9.9 (upstream's installer still calls 0.9.9 stable; its newer builds are beta previews).

    Shift-click to hold

    A mouse holds one control at a time; now several stay down. Shift-click a button (FX .. REC, OCT- / OCT+) or a key and it latches: down on the click, still down after the mouse is up, marked by a ring and a dot. Plain clicks on the others stay momentary (latch HOME, then tap keys); Shift-click latches more. Any click on a latched control lets it go; Esc lets go of all of them (Esc is OCT- again once none is latched), and so do the focus leaving the editor for good, a reboot or a firmware switch, and closing the editor. Right-click / ctrl-click still latch as before. Shift on a knob changes nothing; the computer keys are unchanged. The first time Shift is held over the panel, a toast says "Shift-click to hold" (once: settings.json remembers it). A power-on now lets go of whatever the panel held, so a latched button never reaches a firmware's boot.

    SHA-256 (SHA256SUMS):

    • FM1VST-0.6.0-macOS-arm64.zip: 8c1216b45589d36046f824352159266e4b654cd39ffb20b85fa877b1831a073f
    • FM1VST-0.6.0-macOS-arm64.pkg: 63489cb3850d4ae54e9ce9924ea5d3324d397193bf032029eab360617e537836
  4. v0.5.1FM1VST 0.5.13 files

    FM1VST 0.5.1 for macOS 11.0 or later on Apple silicon: AU, VST3 and Standalone, as an installer package (FM1VST-0.5.1-macOS-arm64.pkg: the app into /Applications, the plug-ins into /Library/Audio/Plug-Ins) or a zip to copy by hand (FM1VST-0.5.1-macOS-arm64.zip, with the licences).

    Not signed with a Developer ID nor notarised. The installer: right-click it > Open (macOS 14 or earlier), or open it once, then System Settings > Privacy & Security > Open Anyway (macOS 15 or later); what it installs carries no quarantine flag. The zip's bundles: xattr -dr com.apple.quarantine after copying, or Open Anyway. INSTALL.txt in the zip has the details, and rescanning in Live and Logic.

    The cores in this build

    firmwareversionlicencesource
    ChoralRoot (default)0.25.1GPL-3.0-onlyQuixotic7/ChoralRootFM1 at 15ca8d0
    Felucca1.6.1GPL-3.0-onlyhugelton/Felucca at a53ecf4
    GHOULBOX2.3.2GPL-3.0-onlyjasonpersinger/ghoulbox-fm1-dungeon-synth at 71ac3f8
    JIANT FM0.9.9GPL-3.0-onlyjuanjiant-bit/JIANT at 0912abb
    PurpleMonkey0.11GPL-3.0-onlyQuixotic7/PurpleMonkeyFM1 at 7590d4a
    CoralFlower0.2GPL-3.0-onlyFicusFicusov/CoralFlower at 4542beb
    Melodee1.4.4GPL-3.0-onlykeremimo/melodee at 4f5fb6d
    FoMni-10.4GPL-3.0-onlycharlesvestal/fm1-fomni at 6ecd227
    FiMba-10.6.1GPL-3.0-onlyjadamsowers/fm1-fimba at 0485ed0
    AMB-11.3MPL-2.0charlesvestal/fm1-amb at 188b0a4
    OberVave1.5.1GPL-3.0-onlyzvenson/obervave at b91d9c1
    Frodhes0.9.2GPL-3.0-onlyleonardoMirabal/frodhes at e49a49d
    FM-1 (emulated)fm1-emu 5fbb066 + 0001+0002+0003+0004MITjoakimeriksson/fm1-emu at 5fbb066

    Remote FM-1 needs the unit on the RemoteFM1 firmware.

    What's new

    Copy the screen

    The firmware's screen can now go straight into an image editor (Photoshop, Figma, Affinity, Pixelmator, Preview's File > New from Clipboard) for mock-ups: exactly the 240 × 240 frame the plugin shows, pixel for pixel, in the colours it draws them.

    • Right-click (or ctrl-click) the screen, in the device view (the panel's screen or the big LCD) and in the screen view, for its menu: Copy screen (240 × 240), Copy screen ×2 / ×4 (480 / 960, each pixel a sharp block), Save screen as PNG (×1, ×2 or ×4; the file chooser starts at ~/Desktop/<firmware>-<version>-<date>-<time>.png), Advanced (the raw frame), Freeze screen and Settings…. It works in the clean views too, with the settings out of sight. A right-click elsewhere off the controls still opens the settings.
    • Option + right-click copies at once, without the menu.
    • Shift + Cmd + C copies while the plugin has the keyboard focus. The Standalone app always gets it; some hosts keep the key for themselves.
    • The settings sheet has a Screen row under View: Copy, and the scale (×1, ×2, ×4) that Copy and the shortcut use, with Save as PNG, the raw frame and Freeze in its menu.
    • On the clipboard: a PNG (public.png) and a TIFF (public.tiff), both sRGB with no gamma or colour conversion, so apps that paste only one kind still get it. A short note over the screen confirms each copy ("Screen copied (240×240)").
    • Freeze screen holds the shown frame while the firmware and the sound run on, so you can pick the moment to copy. Choose it again to unfreeze.
    • Advanced: Copy raw RGB565 (.bin) puts the framebuffer itself on the clipboard: 115,200 bytes, RGB565 little-endian, row by row. Save raw RGB565 as .bin… writes the same bytes to a file.

    SHA-256 (SHA256SUMS):

    • FM1VST-0.5.1-macOS-arm64.zip: 7a9e97a07f7341dab420ad69b9b483717da53ee703d5267a88862dc159265b78
    • FM1VST-0.5.1-macOS-arm64.pkg: 4e36d3f3bb19e98b975bddea2e05a356bc3d2833dde4f1f148c4b3336423d2c2
  5. v0.5.0FM1VST 0.5.03 files

    FM1VST 0.5.0 for macOS 11.0 or later on Apple silicon: AU, VST3 and Standalone, as an installer package (FM1VST-0.5.0-macOS-arm64.pkg: the app into /Applications, the plug-ins into /Library/Audio/Plug-Ins) or a zip to copy by hand (FM1VST-0.5.0-macOS-arm64.zip, with the licences).

    Not signed with a Developer ID nor notarised. The installer: right-click it > Open (macOS 14 or earlier), or open it once, then System Settings > Privacy & Security > Open Anyway (macOS 15 or later); what it installs carries no quarantine flag. The zip's bundles: xattr -dr com.apple.quarantine after copying, or Open Anyway. INSTALL.txt in the zip has the details, and rescanning in Live and Logic.

    The cores in this build

    firmwareversionlicencesource
    ChoralRoot (default)0.25.1GPL-3.0-onlyQuixotic7/ChoralRootFM1 at 15ca8d0
    Felucca1.6.1GPL-3.0-onlyhugelton/Felucca at a53ecf4
    GHOULBOX2.3.2GPL-3.0-onlyjasonpersinger/ghoulbox-fm1-dungeon-synth at 71ac3f8
    JIANT FM0.9.9GPL-3.0-onlyjuanjiant-bit/JIANT at 0912abb
    PurpleMonkey0.11GPL-3.0-onlyQuixotic7/PurpleMonkeyFM1 at 7590d4a
    CoralFlower0.2GPL-3.0-onlyFicusFicusov/CoralFlower at 4542beb
    Melodee1.4.4GPL-3.0-onlykeremimo/melodee at 4f5fb6d
    FoMni-10.4GPL-3.0-onlycharlesvestal/fm1-fomni at 6ecd227
    FiMba-10.6.1GPL-3.0-onlyjadamsowers/fm1-fimba at 0485ed0
    AMB-11.3MPL-2.0charlesvestal/fm1-amb at 188b0a4
    OberVave1.5.1GPL-3.0-onlyzvenson/obervave at b91d9c1
    Frodhes0.9.2GPL-3.0-onlyleonardoMirabal/frodhes at e49a49d
    FM-1 (emulated)fm1-emu 5fbb066 + 0001+0002+0003+0004MITjoakimeriksson/fm1-emu at 5fbb066

    Remote FM-1 needs the unit on the RemoteFM1 firmware.

    What's new

    Show to editors (macOS)

    A new switch in the settings sheet, Show to editors, makes a virtual MIDI port named like the loaded firmware's USB port with " (FM1VST)" after it: "Felucca (FM1VST)", "ChoralRoot FM-1 (FM1VST)", "Melodee (FM1VST)", "JIANT FM (FM1VST)" and so on. A firmware's own web editor or manager in Chrome finds FM1VST as if it were an FM-1 and talks to the firmware running in the plugin: its info, its backup (list, download, restore) and its preset stores. The sheet links the firmware's manager page where one is known. A second instance gets "(FM1VST 2)". The switch is saved with the project.

    • The firmwares answer. The cores now run their own SysEx services, as on the device: the ChoralRoot family's device manager and backup, Felucca's editor and backup page and those of its forks (JIANT, GHOULBOX, Rainbow, DUELL), Melodee's editor and shared library, the SLOOP family's editors (SLOOP, sloopDX, ORBIT, NoMansky), X0X's backup page, FM-106's Librarian, and the M-UPGRADE identity the installers and fm1-editor.com ask for.
    • Also while the host is stopped. When no audio block has come for 50 ms, the port runs the firmware's clock itself, so a manager is answered (in a few ms) with the transport stopped, and a press on the plugin's panel still reaches the firmware (X0X's restore asks for SEL). A firmware's own reboot (ChoralRoot's RESTART) powers it on again from its flash.
    • Kept apart from the DAW. The port's traffic never appears in the track's MIDI, and the firmware's SysEx goes to the port only while it is on.
    • No updates through it. The update keys an installer sends (UBOOT, OTA start) are dropped, and the cores ignore them: an installer page pointed at the port cannot halt the firmware.

    SHA-256 (SHA256SUMS):

    • FM1VST-0.5.0-macOS-arm64.zip: befae16553130aa6371ee36da8b8a61db1830273c92dc865e1b6d779f1607224
    • FM1VST-0.5.0-macOS-arm64.pkg: 6157c06ef2e69707751ad792b9e87dac9a27af7cc979666bb8e0090386a4aeb1
  6. v0.4.0FM1VST 0.4.03 files

    FM1VST 0.4.0 for macOS 11.0 or later on Apple silicon: AU, VST3 and Standalone, as an installer package (FM1VST-0.4.0-macOS-arm64.pkg: the app into /Applications, the plug-ins into /Library/Audio/Plug-Ins) or a zip to copy by hand (FM1VST-0.4.0-macOS-arm64.zip, with the licences).

    Not signed with a Developer ID nor notarised. The installer: right-click it > Open (macOS 14 or earlier), or open it once, then System Settings > Privacy & Security > Open Anyway (macOS 15 or later); what it installs carries no quarantine flag. The zip's bundles: xattr -dr com.apple.quarantine after copying, or Open Anyway. INSTALL.txt in the zip has the details, and rescanning in Live and Logic.

    The cores in this build

    firmwareversionlicencesource
    ChoralRoot (default)0.25.1GPL-3.0-onlyQuixotic7/ChoralRootFM1 at 15ca8d0
    Felucca1.6.1GPL-3.0-onlyhugelton/Felucca at a53ecf4
    GHOULBOX2.3.2GPL-3.0-onlyjasonpersinger/ghoulbox-fm1-dungeon-synth at 71ac3f8
    JIANT FM0.9.9GPL-3.0-onlyjuanjiant-bit/JIANT at 0912abb
    PurpleMonkey0.11GPL-3.0-onlyQuixotic7/PurpleMonkeyFM1 at 7590d4a
    CoralFlower0.2GPL-3.0-onlyFicusFicusov/CoralFlower at 4542beb
    Melodee1.4.4GPL-3.0-onlykeremimo/melodee at 4f5fb6d
    FoMni-10.4GPL-3.0-onlycharlesvestal/fm1-fomni at 6ecd227
    FiMba-10.6.1GPL-3.0-onlyjadamsowers/fm1-fimba at 0485ed0
    AMB-11.3MPL-2.0charlesvestal/fm1-amb at 188b0a4
    OberVave1.5.1GPL-3.0-onlyzvenson/obervave at b91d9c1
    Frodhes0.9.2GPL-3.0-onlyleonardoMirabal/frodhes at e49a49d
    FM-1 (emulated)fm1-emu 5fbb066 + 0001+0002+0003+0004MITjoakimeriksson/fm1-emu at 5fbb066

    Remote FM-1 needs the unit on the RemoteFM1 firmware.

    What's new

    Every Firmware Hub firmware, emulated

    A new core, fm1emu ("FM-1 (emulated)"), runs Joakim Eriksson's fm1-emu (MIT): an emulation of the FM-1's chip that runs a firmware's own update package (.fwsc), so any firmware on The Firmware Hub plays in FM1VST, not just the ones built as native cores. The settings sheet has one firmware list for both kinds, with an All / Native / Emulated filter and engine badges; a firmware with both offers an Engine switch. Picking a Hub firmware downloads its package once, checks its SHA-256 and size against the Hub's catalog and keeps it in ~/Library/Application Support/FM1VST/hub/ (offline: the cached catalog, or a bundled list). "Your own .fwsc" loads a local package, the stock M-VAVE firmware included. FM1VST bundles no firmware for this: each package is downloaded at your request.

    • Emulated clock: Auto, 240, 320, 360, 480 or 640 MHz. The FM-1 runs at about 320-360 MHz; Auto starts at 360 and steps down when this Mac can't keep up. In a DAW it waits for the transport to stop, since a step reboots the firmware.
    • Saves: the emulated flash is kept in the project (about 0.5 MB, gzipped) with the package's id and SHA-256; a project whose package isn't cached fetches it again.
    • Source link for each firmware, in the sheet.
    • fm1-emu carries RemoteFM1's patches: the P33 power block (Melodee boots), the TIMER4 count, and the JIT and pacing work, so emulation renders steadily (100 ms LED averaging, as on the website).

    ChoralRoot and Melodee in the public build

    ChoralRoot 0.25.1 and Melodee are no longer gated (the owner's call, 2026-10-19): the public build carries 12 cores, and ChoralRoot is its default firmware (it was Felucca while ChoralRoot was left out). Their CZ-1 tones (Casio) and Prophet-5 programs (Sequential) ship compiled into the firmware, as the firmwares' own packages carry them, and the cores' credits name both owners. No raw .syx goes out: tools/package_release.sh fails a release that holds a .syx, anything from a core's assets/cz1-factory or assets/prophet5-factory, or a file with the content of any core's .syx. Melodee: 1.4.3 -> 1.4.4 (a release-tooling update; the firmware's only change is its version string).

    SHA-256 (SHA256SUMS):

    • FM1VST-0.4.0-macOS-arm64.zip: 464d3e69a8233d603ccacdf022d3b84ba731e5d909fff9d28580f5dd0b876c11
    • FM1VST-0.4.0-macOS-arm64.pkg: 4d6450e68423d6b94f8c2b5407a6bf0ae564d7b0ad55d8400c10824252e2f62b
  7. v0.3.1FM1VST 0.3.13 files

    FM1VST 0.3.1 for macOS 11.0 or later on Apple silicon: AU, VST3 and Standalone, as an installer package (FM1VST-0.3.1-macOS-arm64.pkg: the app into /Applications, the plug-ins into /Library/Audio/Plug-Ins) or a zip to copy by hand (FM1VST-0.3.1-macOS-arm64.zip, with the licences).

    Not signed with a Developer ID nor notarised. The installer: right-click it > Open (macOS 14 or earlier), or open it once, then System Settings > Privacy & Security > Open Anyway (macOS 15 or later); what it installs carries no quarantine flag. The zip's bundles: xattr -dr com.apple.quarantine after copying, or Open Anyway. INSTALL.txt in the zip has the details, and rescanning in Live and Logic.

    The cores in this build

    firmwareversionlicencesource
    Felucca (default)1.6.1GPL-3.0-onlyhugelton/Felucca at a53ecf4
    GHOULBOX2.3.2GPL-3.0-onlyjasonpersinger/ghoulbox-fm1-dungeon-synth at 71ac3f8
    JIANT FM0.9.9GPL-3.0-onlyjuanjiant-bit/JIANT at 0912abb
    PurpleMonkey0.11GPL-3.0-onlyQuixotic7/PurpleMonkeyFM1 at 7590d4a
    CoralFlower0.2GPL-3.0-onlyFicusFicusov/CoralFlower at 4542beb
    FoMni-10.4GPL-3.0-onlycharlesvestal/fm1-fomni at 6ecd227
    FiMba-10.6.1GPL-3.0-onlyjadamsowers/fm1-fimba at 0485ed0
    AMB-11.3MPL-2.0charlesvestal/fm1-amb at 188b0a4
    OberVave1.5.1GPL-3.0-onlyzvenson/obervave at b91d9c1
    Frodhes0.9.2GPL-3.0-onlyleonardoMirabal/frodhes at e49a49d

    Remote FM-1 needs the unit on the RemoteFM1 firmware.

    What's new

    An installer package

    The release now has FM1VST-0.3.1-macOS-arm64.pkg beside the zip: a macOS installer with a choice of the Desktop app (FM1VST.app into /Applications), the VST3 (into /Library/Audio/Plug-Ins/VST3) and the Audio Unit (into /Library/Audio/Plug-Ins/Components), all three on by default. It replaces an older FM1VST in those places (the bundles are not relocatable, so a copy elsewhere is left alone) and refreshes the Audio Unit cache after installing. It is unsigned, like the zip: right-click > Open, or System Settings > Privacy & Security > Open Anyway (INSTALL.txt). What it installs carries no quarantine flag, so there is no xattr step. A 0.3.0 copied by hand into ~/Library/Audio/Plug-Ins is not touched: delete it, or a DAW lists FM1VST twice. The zip stays, for copying by hand.

    Licences

    licences/JUCE/AGPL-3.0.txt: the full text of the AGPLv3, the licence JUCE 8 is used under (the FSF's text).

    SHA-256 (SHA256SUMS):

    • FM1VST-0.3.1-macOS-arm64.zip: ccb223d53cb415c37818d9b4a606c75bdc6f1e2e734fddc208df811e0ce0e8a0
    • FM1VST-0.3.1-macOS-arm64.pkg: 4d6af72972f9902f61575e717913665dd77a8e2675e75ba13483e391eae7946f
  8. v0.3.0FM1VST 0.3.02 files

    FM1VST 0.3.0 for macOS 11.0 or later on Apple silicon: AU, VST3 and Standalone in one zip. Not notarised: see INSTALL.txt in the zip for allowing it (xattr -dr com.apple.quarantine or System Settings > Privacy & Security), and for rescanning in Live and Logic.

    The cores in this build

    firmwareversionlicencesource
    Felucca (default)1.6.1GPL-3.0-onlyhugelton/Felucca at a53ecf4
    GHOULBOX2.3.2GPL-3.0-onlyjasonpersinger/ghoulbox-fm1-dungeon-synth at 71ac3f8
    JIANT FM0.9.9GPL-3.0-onlyjuanjiant-bit/JIANT at 0912abb
    PurpleMonkey0.11GPL-3.0-onlyQuixotic7/PurpleMonkeyFM1 at 7590d4a
    CoralFlower0.2GPL-3.0-onlyFicusFicusov/CoralFlower at 4542beb
    FoMni-10.4GPL-3.0-onlycharlesvestal/fm1-fomni at 6ecd227
    FiMba-10.6.1GPL-3.0-onlyjadamsowers/fm1-fimba at 0485ed0
    AMB-11.3MPL-2.0charlesvestal/fm1-amb at 188b0a4
    OberVave1.5.1GPL-3.0-onlyzvenson/obervave at b91d9c1
    Frodhes0.9.2GPL-3.0-onlyleonardoMirabal/frodhes at e49a49d

    Remote FM-1 needs the unit on the RemoteFM1 firmware.

    What's new

    The first build published as a download: macOS 11 or later, Apple silicon, AU, VST3 and Standalone, ad-hoc signed (not notarised: INSTALL.txt in the zip says how to allow it).

    21 firmware cores

    FM1VST runs FM-1 firmwares as loadable core modules (.fm1core), each built from its firmware's own unmodified source (a pinned submodule), and switches between them in place. 21 firmwares build as cores (CORES-PLAN.md):

    familycores
    felucca_webFelucca 1.6.1, GHOULBOX 2.3.2, JIANT FM 0.9.9 (0912abb), Rainbow Mode 1.1.5-rb, DUELL 0.2.20-beta
    choralrootChoralRoot 0.25.1, PurpleMonkey 0.11, CoralFlower 0.2
    plat / fm1baseFoMni-1 0.4, FiMba-1 0.6.1, AMB-1 1.3, X0X 1.1.0, Fart Machine One 1.0.0
    dinghyOberVave 1.5.1, Frodhes 0.9.2, FM-106 Beta4
    sloopSLOOP 2.7.1, sloopDX 4.0, ORBIT 0.7.1, No Man Sky FM 0.4
    melodeeMelodee 1.4.3

    The public build (-DFM1_PUBLIC_BUILD=ON) carries the 10 whose licensing is settled: Felucca (the default firmware), GHOULBOX, JIANT FM, PurpleMonkey, CoralFlower, FoMni-1, FiMba-1, AMB-1, OberVave and Frodhes. The other 11 are gated (third-party sound data, artwork or naming terms not yet cleared: CORES-PLAN.md 6) and build only for personal use.

    Remote FM-1

    A real M-VAVE FM-1 running the RemoteFM1 firmware can be the panel of the core inside the plugin: its keys, buttons, knobs and MASTER play the core, the core's screen and LEDs show on the unit. Vendor bulk over libusb (linked statically), SysEx as the fallback; discovery talks only to what can be an FM-1; one instance on the Mac drives the unit at a time; the FM-1's own MIDI is filtered out of the track.

    The editor: the FM-1 alone, settings in a sheet

    The editor is the FM-1 panel itself (LEDs, LCD, mouse and computer keyboard, colour themes). Everything else moved into a settings sheet behind a corner button: the firmware browser, presets, Remote FM-1, playing, host control, themes, view, device and About.

    Core ABI 6

    The core ABI (core-api/fm1core.h) owns its panel struct (fm1panel_t, ABI 5: no firmware header in the ABI; key velocity and aftertouch in, the LED brightness out) and carries each firmware's credits and notices (ABI 6), shown in the About page.

    Also since 0.2.0

    • The eight physical knobs as host parameters that follow the firmware's screen (the Roto-Control map), with Stepped mode for controllers whose knobs click in steps; the firmware's own parameters by name as an opt-in (-DFM1_TIER2_SLOTS=79).
    • The panel's buttons as host parameters with Tap, Hold and Toggle-hold modes.
    • One conformance test every core passes, golden checks against each firmware's own host build, core_bench.

    SHA-256: fa832e7461add0868fb2fcc0b726a1b0b97af13862390faa050415b597535f51 (SHA256SUMS)

    Show all 2 files