
FM1VST
Loud90/100VST 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.
FM1VST-0.6.2-macOS-arm64.pkg· 42 MB· +2 files
GPL-3.0· Quixotic7/FM1VST·downloads come from the creator’s GitHub releases
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.quarantineafter copying, or Open Anyway. INSTALL.txt in the zip has the details, and rescanning in Live and Logic.The cores in this build
firmware version licence source ChoralRoot (default) 0.26.1 GPL-3.0-only Quixotic7/ChoralRootFM1 at 7d97982Felucca 1.6.1 GPL-3.0-only hugelton/Felucca at a53ecf4GHOULBOX 2.3.2 GPL-3.0-only jasonpersinger/ghoulbox-fm1-dungeon-synth at 71ac3f8JIANT FM 0.9.9 GPL-3.0-only juanjiant-bit/JIANT at 0912abbPurpleMonkey 0.11 GPL-3.0-only Quixotic7/PurpleMonkeyFM1 at 7590d4aCoralFlower 0.5 GPL-3.0-only FicusFicusov/CoralFlower at b5ceb99Melodee 1.4.5 GPL-3.0-only keremimo/melodee at 398ada1FoMni-1 0.4 GPL-3.0-only charlesvestal/fm1-fomni at 6ecd227FiMba-1 0.6.1 GPL-3.0-only jadamsowers/fm1-fimba at 0485ed0AMB-1 1.3 MPL-2.0 charlesvestal/fm1-amb at 188b0a4OberVave 1.5.3 GPL-3.0-only zvenson/obervave at 7e1ccf9Frodhes 0.9.4 GPL-3.0-only leonardoMirabal/frodhes at c82f71eLOOM-8 0.6.1 GPL-3.0-only charlesvestal/fm1-loom at 3f41391DUELL (unofficial build) 1.0 GPL-3.0-only oscillr/DUELL at 33e2e2eMini-Tone 1.0.1 GPL-3.0-only eldontyrellcorp/Mini-Tone at 5e5d09cFMini-1 1.8.0 GPL-3.0-only ruppert/fmini-1 at ab0f5c8Skiff 1.4 GPL-3.0-only illuminus5/skiff at c01fa1eGR!MM 1.0 GPL-3.0-only GRiMMBIENT/grimm at 815ca6bPIGEON 0.4.1 GPL-3.0-only TheShrimpBlimp/pigeon at 8f34e81Tonitor 0.55 GPL-3.0-only nzimas/tonitor at a240bc1Speak37 1.0 GPL-3.0-only genkigenki/Speak37 at a617d60FM-1 (emulated) fm1-emu 5fbb066 + 0001+0002+0003+0004 MIT joakimeriksson/fm1-emu at 5fbb066Remote 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:4116a96d63740f23a5df95140b2b732975c6095845baa7c6d2d974a7a161ec82FM1VST-0.6.2-macOS-arm64.pkg:e587bf167090885952ef6b571548e754674f9284774ff9561ca965a74ae87fea
Show all 3 filesHide 1 files
Other filesv0.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.quarantineafter copying, or Open Anyway. INSTALL.txt in the zip has the details, and rescanning in Live and Logic.The cores in this build
firmware version licence source ChoralRoot (default) 0.26.1 GPL-3.0-only Quixotic7/ChoralRootFM1 at 7d97982Felucca 1.6.1 GPL-3.0-only hugelton/Felucca at a53ecf4GHOULBOX 2.3.2 GPL-3.0-only jasonpersinger/ghoulbox-fm1-dungeon-synth at 71ac3f8JIANT FM 0.9.9 GPL-3.0-only juanjiant-bit/JIANT at 0912abbPurpleMonkey 0.11 GPL-3.0-only Quixotic7/PurpleMonkeyFM1 at 7590d4aCoralFlower 0.5 GPL-3.0-only FicusFicusov/CoralFlower at b5ceb99Melodee 1.4.5 GPL-3.0-only keremimo/melodee at 398ada1FoMni-1 0.4 GPL-3.0-only charlesvestal/fm1-fomni at 6ecd227FiMba-1 0.6.1 GPL-3.0-only jadamsowers/fm1-fimba at 0485ed0AMB-1 1.3 MPL-2.0 charlesvestal/fm1-amb at 188b0a4OberVave 1.5.3 GPL-3.0-only zvenson/obervave at 7e1ccf9Frodhes 0.9.4 GPL-3.0-only leonardoMirabal/frodhes at c82f71eLOOM-8 0.6.1 GPL-3.0-only charlesvestal/fm1-loom at 3f41391DUELL (unofficial build) 1.0 GPL-3.0-only oscillr/DUELL at 33e2e2eMini-Tone 1.0.1 GPL-3.0-only eldontyrellcorp/Mini-Tone at 5e5d09cFMini-1 1.8.0 GPL-3.0-only ruppert/fmini-1 at ab0f5c8Skiff 1.4 GPL-3.0-only illuminus5/skiff at c01fa1eGR!MM 1.0 GPL-3.0-only GRiMMBIENT/grimm at 815ca6bPIGEON 0.4.1 GPL-3.0-only TheShrimpBlimp/pigeon at 8f34e81Tonitor 0.55 GPL-3.0-only nzimas/tonitor at a240bc1Speak37 1.0 GPL-3.0-only genkigenki/Speak37 at a617d60FM-1 (emulated) fm1-emu 5fbb066 + 0001+0002+0003+0004 MIT joakimeriksson/fm1-emu at 5fbb066Remote 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:fe8a9fb9e561cbb1bf339ac9dffd787c18cf63392bc44cc5a3853e5a6f22bcf6FM1VST-0.6.1-macOS-arm64.pkg:5a07aee9f0cc1da04e3759b8df4a57d5b459a4c51b13b9c54370abab0e77efcd
Show all 3 filesHide 1 files
Other filesv0.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.quarantineafter copying, or Open Anyway. INSTALL.txt in the zip has the details, and rescanning in Live and Logic.The cores in this build
firmware version licence source ChoralRoot (default) 0.26.1 GPL-3.0-only Quixotic7/ChoralRootFM1 at 7d97982Felucca 1.6.1 GPL-3.0-only hugelton/Felucca at a53ecf4GHOULBOX 2.3.2 GPL-3.0-only jasonpersinger/ghoulbox-fm1-dungeon-synth at 71ac3f8JIANT FM 0.9.9 GPL-3.0-only juanjiant-bit/JIANT at 0912abbPurpleMonkey 0.11 GPL-3.0-only Quixotic7/PurpleMonkeyFM1 at 7590d4aCoralFlower 0.5 GPL-3.0-only FicusFicusov/CoralFlower at b5ceb99Melodee 1.4.5 GPL-3.0-only keremimo/melodee at 398ada1FoMni-1 0.4 GPL-3.0-only charlesvestal/fm1-fomni at 6ecd227FiMba-1 0.6.1 GPL-3.0-only jadamsowers/fm1-fimba at 0485ed0AMB-1 1.3 MPL-2.0 charlesvestal/fm1-amb at 188b0a4OberVave 1.5.3 GPL-3.0-only zvenson/obervave at 7e1ccf9Frodhes 0.9.4 GPL-3.0-only leonardoMirabal/frodhes at c82f71eLOOM-8 0.6.1 GPL-3.0-only charlesvestal/fm1-loom at 3f41391DUELL (unofficial build) 1.0 GPL-3.0-only oscillr/DUELL at 33e2e2eMini-Tone 1.0.1 GPL-3.0-only eldontyrellcorp/Mini-Tone at 5e5d09cFMini-1 1.8.0 GPL-3.0-only ruppert/fmini-1 at ab0f5c8Skiff 1.4 GPL-3.0-only illuminus5/skiff at c01fa1eGR!MM 1.0 GPL-3.0-only GRiMMBIENT/grimm at 815ca6bPIGEON 0.4.1 GPL-3.0-only TheShrimpBlimp/pigeon at 8f34e81Tonitor 0.55 GPL-3.0-only nzimas/tonitor at a240bc1Speak37 1.0 GPL-3.0-only genkigenki/Speak37 at a617d60FM-1 (emulated) fm1-emu 5fbb066 + 0001+0002+0003+0004 MIT joakimeriksson/fm1-emu at 5fbb066Remote 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
.mp4or.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):
core firmware pin glue minitoneMini-Tone by Stephane Schmitz: Felucca 1.5 with six tracks and SID, CHIP, DUALVCO, ANALOG4, BRAIDS, SWARMER, FMTONE, WAVETONE, FMDRUM and TB303 engines 1.0.1 (5e5d09c) felucca_web fminiFMini-1 by ruppert: a three-oscillator Minimoog-style monosynth on Felucca 1.6.1, 100 factory patches 1.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 infinite 1.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 itstests/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.cand 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, andmain.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:
core was now glue ChoralRoot 0.25.1 0.26.1 version only CoralFlower 0.2 0.5 flash_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 DUELL 0.2.20-beta 1.0 (its first non-beta release) the generate list (midi_map_defaults.h); the credits carry its new CREDITS.md Melodee 1.4.4 1.4.5 version only; its USB port is now "Melodee FM-1", and so is the editor port's name SLOOP 2.7.1 2.8 version only (gated) sloopDX 4.0 (eeec0a6) 4.0 (tag v4.0) none: the tag adds CI and installer changes only (gated) No Man Sky FM 0.4 0.5 (32e7f4c, no tag: its README's current version) two more generated headers; projects in format 7 (gated) OberVave 1.5.1 1.5.3 version only Frodhes 0.9.2 0.9.4 version only; the Inter Tight font's OFL in its credits FM-106 Beta4 Beta5 version 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:8c1216b45589d36046f824352159266e4b654cd39ffb20b85fa877b1831a073fFM1VST-0.6.0-macOS-arm64.pkg:63489cb3850d4ae54e9ce9924ea5d3324d397193bf032029eab360617e537836
Show all 3 filesHide 1 files
Other files- 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
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.quarantineafter copying, or Open Anyway. INSTALL.txt in the zip has the details, and rescanning in Live and Logic.The cores in this build
firmware version licence source ChoralRoot (default) 0.25.1 GPL-3.0-only Quixotic7/ChoralRootFM1 at 15ca8d0Felucca 1.6.1 GPL-3.0-only hugelton/Felucca at a53ecf4GHOULBOX 2.3.2 GPL-3.0-only jasonpersinger/ghoulbox-fm1-dungeon-synth at 71ac3f8JIANT FM 0.9.9 GPL-3.0-only juanjiant-bit/JIANT at 0912abbPurpleMonkey 0.11 GPL-3.0-only Quixotic7/PurpleMonkeyFM1 at 7590d4aCoralFlower 0.2 GPL-3.0-only FicusFicusov/CoralFlower at 4542bebMelodee 1.4.4 GPL-3.0-only keremimo/melodee at 4f5fb6dFoMni-1 0.4 GPL-3.0-only charlesvestal/fm1-fomni at 6ecd227FiMba-1 0.6.1 GPL-3.0-only jadamsowers/fm1-fimba at 0485ed0AMB-1 1.3 MPL-2.0 charlesvestal/fm1-amb at 188b0a4OberVave 1.5.1 GPL-3.0-only zvenson/obervave at b91d9c1Frodhes 0.9.2 GPL-3.0-only leonardoMirabal/frodhes at e49a49dFM-1 (emulated) fm1-emu 5fbb066 + 0001+0002+0003+0004 MIT joakimeriksson/fm1-emu at 5fbb066Remote 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:7a9e97a07f7341dab420ad69b9b483717da53ee703d5267a88862dc159265b78FM1VST-0.5.1-macOS-arm64.pkg:4e36d3f3bb19e98b975bddea2e05a356bc3d2833dde4f1f148c4b3336423d2c2
Show all 3 filesHide 1 files
Other files- 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
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.quarantineafter copying, or Open Anyway. INSTALL.txt in the zip has the details, and rescanning in Live and Logic.The cores in this build
firmware version licence source ChoralRoot (default) 0.25.1 GPL-3.0-only Quixotic7/ChoralRootFM1 at 15ca8d0Felucca 1.6.1 GPL-3.0-only hugelton/Felucca at a53ecf4GHOULBOX 2.3.2 GPL-3.0-only jasonpersinger/ghoulbox-fm1-dungeon-synth at 71ac3f8JIANT FM 0.9.9 GPL-3.0-only juanjiant-bit/JIANT at 0912abbPurpleMonkey 0.11 GPL-3.0-only Quixotic7/PurpleMonkeyFM1 at 7590d4aCoralFlower 0.2 GPL-3.0-only FicusFicusov/CoralFlower at 4542bebMelodee 1.4.4 GPL-3.0-only keremimo/melodee at 4f5fb6dFoMni-1 0.4 GPL-3.0-only charlesvestal/fm1-fomni at 6ecd227FiMba-1 0.6.1 GPL-3.0-only jadamsowers/fm1-fimba at 0485ed0AMB-1 1.3 MPL-2.0 charlesvestal/fm1-amb at 188b0a4OberVave 1.5.1 GPL-3.0-only zvenson/obervave at b91d9c1Frodhes 0.9.2 GPL-3.0-only leonardoMirabal/frodhes at e49a49dFM-1 (emulated) fm1-emu 5fbb066 + 0001+0002+0003+0004 MIT joakimeriksson/fm1-emu at 5fbb066Remote 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:befae16553130aa6371ee36da8b8a61db1830273c92dc865e1b6d779f1607224FM1VST-0.5.0-macOS-arm64.pkg:6157c06ef2e69707751ad792b9e87dac9a27af7cc979666bb8e0090386a4aeb1
Show all 3 filesHide 1 files
Other filesv0.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.quarantineafter copying, or Open Anyway. INSTALL.txt in the zip has the details, and rescanning in Live and Logic.The cores in this build
firmware version licence source ChoralRoot (default) 0.25.1 GPL-3.0-only Quixotic7/ChoralRootFM1 at 15ca8d0Felucca 1.6.1 GPL-3.0-only hugelton/Felucca at a53ecf4GHOULBOX 2.3.2 GPL-3.0-only jasonpersinger/ghoulbox-fm1-dungeon-synth at 71ac3f8JIANT FM 0.9.9 GPL-3.0-only juanjiant-bit/JIANT at 0912abbPurpleMonkey 0.11 GPL-3.0-only Quixotic7/PurpleMonkeyFM1 at 7590d4aCoralFlower 0.2 GPL-3.0-only FicusFicusov/CoralFlower at 4542bebMelodee 1.4.4 GPL-3.0-only keremimo/melodee at 4f5fb6dFoMni-1 0.4 GPL-3.0-only charlesvestal/fm1-fomni at 6ecd227FiMba-1 0.6.1 GPL-3.0-only jadamsowers/fm1-fimba at 0485ed0AMB-1 1.3 MPL-2.0 charlesvestal/fm1-amb at 188b0a4OberVave 1.5.1 GPL-3.0-only zvenson/obervave at b91d9c1Frodhes 0.9.2 GPL-3.0-only leonardoMirabal/frodhes at e49a49dFM-1 (emulated) fm1-emu 5fbb066 + 0001+0002+0003+0004 MIT joakimeriksson/fm1-emu at 5fbb066Remote 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:464d3e69a8233d603ccacdf022d3b84ba731e5d909fff9d28580f5dd0b876c11FM1VST-0.4.0-macOS-arm64.pkg:4d6450e68423d6b94f8c2b5407a6bf0ae564d7b0ad55d8400c10824252e2f62b
Show all 3 filesHide 1 files
Other filesv0.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.quarantineafter copying, or Open Anyway. INSTALL.txt in the zip has the details, and rescanning in Live and Logic.The cores in this build
firmware version licence source Felucca (default) 1.6.1 GPL-3.0-only hugelton/Felucca at a53ecf4GHOULBOX 2.3.2 GPL-3.0-only jasonpersinger/ghoulbox-fm1-dungeon-synth at 71ac3f8JIANT FM 0.9.9 GPL-3.0-only juanjiant-bit/JIANT at 0912abbPurpleMonkey 0.11 GPL-3.0-only Quixotic7/PurpleMonkeyFM1 at 7590d4aCoralFlower 0.2 GPL-3.0-only FicusFicusov/CoralFlower at 4542bebFoMni-1 0.4 GPL-3.0-only charlesvestal/fm1-fomni at 6ecd227FiMba-1 0.6.1 GPL-3.0-only jadamsowers/fm1-fimba at 0485ed0AMB-1 1.3 MPL-2.0 charlesvestal/fm1-amb at 188b0a4OberVave 1.5.1 GPL-3.0-only zvenson/obervave at b91d9c1Frodhes 0.9.2 GPL-3.0-only leonardoMirabal/frodhes at e49a49dRemote 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.pkgbeside 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 noxattrstep. 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:ccb223d53cb415c37818d9b4a606c75bdc6f1e2e734fddc208df811e0ce0e8a0FM1VST-0.3.1-macOS-arm64.pkg:4d6af72972f9902f61575e717913665dd77a8e2675e75ba13483e391eae7946f
Show all 3 filesHide 1 files
Other filesv0.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.quarantineor System Settings > Privacy & Security), and for rescanning in Live and Logic.The cores in this build
firmware version licence source Felucca (default) 1.6.1 GPL-3.0-only hugelton/Felucca at a53ecf4GHOULBOX 2.3.2 GPL-3.0-only jasonpersinger/ghoulbox-fm1-dungeon-synth at 71ac3f8JIANT FM 0.9.9 GPL-3.0-only juanjiant-bit/JIANT at 0912abbPurpleMonkey 0.11 GPL-3.0-only Quixotic7/PurpleMonkeyFM1 at 7590d4aCoralFlower 0.2 GPL-3.0-only FicusFicusov/CoralFlower at 4542bebFoMni-1 0.4 GPL-3.0-only charlesvestal/fm1-fomni at 6ecd227FiMba-1 0.6.1 GPL-3.0-only jadamsowers/fm1-fimba at 0485ed0AMB-1 1.3 MPL-2.0 charlesvestal/fm1-amb at 188b0a4OberVave 1.5.1 GPL-3.0-only zvenson/obervave at b91d9c1Frodhes 0.9.2 GPL-3.0-only leonardoMirabal/frodhes at e49a49dRemote 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):family cores felucca_web Felucca 1.6.1, GHOULBOX 2.3.2, JIANT FM 0.9.9 (0912abb), Rainbow Mode 1.1.5-rb, DUELL 0.2.20-beta choralroot ChoralRoot 0.25.1, PurpleMonkey 0.11, CoralFlower 0.2 plat / fm1base FoMni-1 0.4, FiMba-1 0.6.1, AMB-1 1.3, X0X 1.1.0, Fart Machine One 1.0.0 dinghy OberVave 1.5.1, Frodhes 0.9.2, FM-106 Beta4 sloop SLOOP 2.7.1, sloopDX 4.0, ORBIT 0.7.1, No Man Sky FM 0.4 melodee Melodee 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 filesHide 1 files
Other files- 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
(