README from GitHub, GPL-3.0
WT-2 for the M-Vave FM-1
WT-2 is wavetable synth firmware for the M-Vave FM-1 keyboard, made by Dedrich. It replaces the FM-1's own firmware with a full wavetable synth that has 206 parameters, and it installs and updates through Felucca's update loader, so you put it on with M-VAVE's own M-UPGRADE app.
Home: ThatSoundsHot.com
What you get
The synth
- Two wavetable oscillators with up to 5 unison voices each, wavetable position, table to table morph, warp (bend, sync, mirror, plus ASYM, QUANT and PWM), FM and phase distortion between A and B.
- A sub oscillator, and a noise oscillator with a sample layer.
- A multimode filter plus a VOWEL (formant) filter that sings A E I O U.
- Three envelopes, two LFOs with tempo sync, four macros and an 8 slot modulation matrix with lots of destinations (envelope times, LFO rates, chorus mix, delay and reverb sends, noise and sub level, master).
- An LFO shape editor right on the keyboard: draw 8 shapes of your own with up to 16 points each and a curve on every segment.
- POLY 2 to POLY 7 voice modes, unison on the top note only, and chord headroom so big chords don't clip.
Effects
- Synth distortion, CHORUS and HYPER (a stereo widener), a one knob compressor, delay (digital or tape), reverb and a 3 band EQ.
Play and sequence
- A step sequencer with 16 patterns of up to 64 steps: accent, slide, long notes, chance, swing, direction, transpose, bar looping and a pattern generator.
- An arpeggiator, scale mode, MIDI and clock sync.
- One button per place: SEL is oscillator A, EDIT is oscillator B, HOME is the filter, sub and noise, then LFO, ENV, ARP, FX, SEQ, GLOBAL and SAVE.
- 11 factory patches (including reece1) plus your own patch slots, and patch transfer over USB.
Good to know
- WT-2 has no drum machine. The drums from WT-1 were taken out to make room for the synth.
- There are three wavetables on the device (BASIC SHP, FOLD-SINE, ODD-EVEN) and three noise sample loops.
- Your 8 drawn LFO shapes are shared by every patch, not stored inside a patch, and they aren't sent over USB.
The full manual is in docs/WT-2-FM1-manual.md.
Install
- Get the WT-2 package,
wt2f.fwsc, from this repo's Releases page once it's published (or build it yourself, see below). - Open M-VAVE's M-UPGRADE app, choose the package and install it, just like a normal FM-1 update.
- At power on the screen says WT-2, and over USB the MIDI port is called WT-2.
M-UPGRADE only installs a package whose identity is different from the one already on the keyboard. To install a newer WT-2 build over an older one, give it a new number first:
python3 tools/rename_pkg.py wt2f.fwsc wt2g.fwsc "FM-1_923"
Go back to the factory firmware
- Install M-VAVE's own FM-1 firmware with M-UPGRADE the same way. M-VAVE's factory V16 firmware is in official/ for exactly this.
- If the FM-1 gets stuck, hold OCT- and OCT+ for 5 seconds while it's running to enter the chip's update mode, then install again.
- If it's stuck in a crash loop and no tool can reach it,
tools/fm1_rescue.sh(Mac) ortools/fm1_rescue.pywrites M-VAVE's factory V15 package through the chip's update mode. It only accepts the exact V15 file, backs up the whole flash first, and needssudoon the Mac. Run it without--writefirst to check and back up, then with--write.
Compatibility
- Keyboard: M-Vave FM-1.
- Package identity:
FM-1_922. - Testing on a real FM-1 is in progress.
Saved projects
WT-2 can't open projects saved by other firmwares, and saving in WT-2 may overwrite them. Back up anything you want to keep before installing.
Editor and manual
- Browser editor: https://fm1.thatsoundshot.com (coming soon). It isn't part of this repo.
- Manual: docs/WT-2-FM1-manual.md. The FM-1 manual from WT-1 covers the shared parts it points to.
Build it yourself
You need Docker (or OrbStack on a Mac), the JieLi toolchain and three files from the JieLi AC79 SDK (see tools/get_toolchain.sh and build-fw.sh). Then:
VARIANT=wt2 ./build-fw.sh
That makes build/wt2.fwsc with the identity FM-1_922. Host tests run with sh tests/run_tests.sh.
License and credits
WT-2 is free software under the GPL-3.0 (GPL-3.0-only, see LICENSE). It stands on the work of:
- Felucca by Leo Kuroshita (@kurogedelic), Hügelton Instruments: the platform code and the update loader.
- X0X (GPL-3.0-only): the effects chain, the sequencer design, and the input and storage code.
- 9W9 by A Thousand Details - https://github.com/athousanddetails/schwung-9W9 (Copyright (C) 2026 A Thousand Details, GPL-3.0 with section 7 additional terms), itself after ER-99 by Matthew Cieplak. WT-2's effects are a modified port of 9W9's (changed for the FM-1, via X0X). This is not the original 9W9 and is not made or endorsed by A Thousand Details.
- 8W8 by A Thousand Details - https://github.com/athousanddetails/schwung-8W8: a modified port of its 808 engine sits in
core/drums/, not linked into the WT-2 firmware. - The SMK-37 Pro port by M. Geisler.
- Fonts: Barlow Semi Condensed and Terminus (SIL OFL 1.1).
All the details are in LICENSING.md. The factory firmware in official/ belongs to M-VAVE and isn't covered by the GPL.
No warranty
WT-2 comes with no warranty of any kind. Installing custom firmware is at your own risk.