Rainbow mode for the FM-1
Unofficial SMK-37 build of Rainbow mode by
joshbartlettband-web. Offered upstream as
joshbartlettband-web/felucca-rainbow#1; once merged,
use the original project and this repo will be archived. All credit to joshbartlettband-web.
Install: in Chrome or Edge at https://genkigenki.github.io/smk37/ (picks the build for your model). Packages: Releases.
A music toy for little hands: this fork of Felucca starts the M-VAVE FM-1 as a toy for a
four-year-old. 73 friends, each with its own picture, sound, sky and favorite beat; a color for every note; 13 beats with a
bass line that always fits; and a knob for big and small, day and night, echo and wiggle.
- The website (the link under About on this page) has a demo video and two buttons: Try it in your browser, no FM-1
needed, and Put it on an FM-1 (Chrome or Edge, USB).
- Every control, and how it is built: RAINBOW.md
- On the M-Vave SMK-37: controls, build, install and roll back: SMK37.md
Installing firmware is at your own risk; the installer can put the official firmware back. This is an independent fan project, not
made or endorsed by M-VAVE. Everything below is Felucca's own README, by Leo Kuroshita and Hügelton Instruments (GPL-3.0).
Felucca
TL;DR: Felucca 1.1.5 — Big New Features, field testing. Connect your FM-1 to a computer by USB,
open the web installer in Chrome or Edge, and press Install;
no extra hardware is needed. Installing is at your own risk: M-VAVE's updater or the installer's
Return to official V15 takes you back. Want to look around first?
Try it in your browser, no FM-1 needed.
Multi-engine synthesizer firmware for the M-VAVE FM-1. Please report what you find in
Issues.
Features
- Thirteen engines (below), each with its own factory presets
- Four tracks, one synth part each with its own engine and sound (drums are the DRUM engine);
8 voices shared between them. ALGORITHM selects the track on every page
- Sequencer: 64 steps per track with chords, ties, accent, slide, per-step chance and ratchets
(a step played 2, 3 or 4 times in its length); a piano roll of the steps; a drum grid (white keys =
steps, black keys = lanes); automation (formerly motion):
recording of knob moves per step (an automation icon marks the cards it drives); live loop recording
with overdub; step recording at the cursor (REC on SEQ > STEP while stopped: each key writes the step
under the cursor and moves on; without REC the keys only play); divisions listed by length, 4 bars
to 1/32; loading a sound never touches your patterns
- Parameter locks: hold a step on SEQ > STEP (or the drum grid) and turn a knob to set that
parameter for that step only; EDIT with the step held clears its locks. SEQ > AUTO LIST lists the
track's locks and automation, step by step, to change their step, parameter or value, turn a lock into
automation or back, add or delete one. SAVE held undoes lock edits. Loading another sound keeps the locks
that still mean the same (all of them for the same engine)
- SEQ TOOLS: hold SEQ on STEP, PATTERN, CHANCE or AUTOMATION for tools on the keys: CLEAR, REVERSE,
SHIFT < / >, RANDOM (a new beat, or new notes in the scale on the same rhythm) and COOK (changes
the pattern a little each press); on a DRUM track also BEAT and each lane's CLEAR, REVERSE, FILL and
RANDOM. Each tool is one undo (SAVE held); OCT− puts the track back as the layer found it
- Metronome and count-in: CLICK (OFF, while recording, or always) with three levels, and a count-in
of 1 or 2 bars before recording from stop; the click goes to the headphones and speaker only, never to
USB audio or into a pattern
- Songs: chain patterns A–D
- Chord keys: one finger plays an in-key chord (triads or sevenths of the scale, or fixed chord
shapes), with voicings; on the keys, MIDI in, recording and the arpeggiator
- Arpeggiator with UP, DN, UPDN, RND, ORD, REPEAT and, for chords, DNUP, UP+8, CONV, DIVG,
PINKY, THUMB, WALK and CHORD; a beat LED; 16 scales with a white-key mode, glide,
MONO / LEGATO / UNISON
- Modulation matrix: 4 slots per track, MIDI controllers as sources
- Effects: distortion and the SLICER per track; chorus, delay and reverb sends (the reverb as
ROOM or SPRING); master limiter
- FX layer: hold FX for repeat, reverse, filter sweeps, tape stop, freeze and a harmonizer
(OCT UP / OCT DN with shimmer), and mutes on the black keys; MENU > FX LATCH makes them toggle, so
nothing has to stay held
Controls
- Tap a page button for its page, again for the next; HOME returns home
- Hold FX, GLO, SCL or EDIT for its quick layer; hold SAVE to undo, HOME for the menu, SEQ for the song
(on STEP, PATTERN, CHANCE and AUTOMATION, SEQ held opens SEQ TOOLS instead)
- Hold REC on any page for the REC layer: F3 clears the track's sequence (SAVE held undoes it), G3 CLICK,
A3 COUNT-IN, B3 CLICK LEVEL. A tap of REC arms the track as before
- Double-tap FX, GLO, SCL, EDIT, REC or SEQ (TOOLS) to keep its layer open without holding; tap it again to close
- On SEQ > STEP, hold a step and turn KNOB 1–4 to lock those parameters on that step
- On action pages and in dialogs, OCT+ does it and OCT− goes back; in the menu, OCT+ / OCT− change the value and HOME closes it
- Save a sound: stop, tap SAVE, pick a slot with KNOB 1, then OCT+ and OCT+ again (name it with the keys)
Menu
Hold HOME for the menu. Since 1.0.5 it is in four tabs: DISPLAY (COLOR to LEDS, SCREEN OFF),
CONTROL (HOLD to BPM LOCK, SCALE LEDS), AUDIO (SPEAKER EQ, USB LEVEL, CLICK, CLICK LEVEL, COUNT-IN) and
SYSTEM (USB SERIAL, RESTORE LAST, HARDWARE CALIBRATION, ABOUT).
ALGORITHM moves between the tabs and PRESETS through the rows of one; any of KNOB 1–4, or OCT+ / OCT−,
changes the value (OCT+ opens HARDWARE CALIBRATION and ABOUT); press HOME to close the menu. Every new
setting defaults to the earlier behaviour. From 1.0.4 the web editor's Settings tab reads and changes them
too (COLOR to USB SERIAL), saved the same way as from the menu; with 1.0.5 it groups them in the same tabs.
- COLOR: the palette. GREY (grayscale, called MONO up to 1.0.1), GREEN, AMBER, ICE, VIOLET, ROSE,
PAPER (light), HI-CON (high contrast), NIGHT (the 0.9 look: true black, green-tinted text) and MONO
(black and white)
- STYLE: FLAT (filled cards) or LINE (areas divided by thin lines)
- LARGE: OFF or ON: on HOME and the value pages the four knob cards grow tall, marked K1–K4, with
larger labels and values about twice the size; the graph below becomes a strip. Lists, the piano roll,
the drum grid and the quick layers keep their layout with larger labels
- ANIM: ON or OFF; OFF shows every change at once, without rolling digits, a gliding piano roll or
the LED sweep at power-on
- LEDS: OFF (no glow), DIM LO, DIM HI (default) or INV (the idle LEDs lit, the active ones dark).
What can be pressed breathes up to about 60 % of a lit LED, about 30 % with DIM LO
- SCREEN OFF: NEVER, 5 MIN, 15 MIN, 30 MIN (default) or 60 MIN: after that long with no button, key or
knob touched, the screen and its backlight go off; the sound, the sequencer, MIDI and USB go on. The next
button, key or knob only turns the screen back on
- HOLD: how long FX, GLO, SCL or EDIT is held before its map shows
- KNOB ACCEL: OFF (one step per click) or ON: a fast, steady turn of a wide value moves 2 to 4 steps
per click, up to 8 on values of more than 64 steps, the FX and GLO layers' knobs included; lists never
jump. ON or OFF, every click of a fast turn counts
- FX LATCH: ON, FX + an effect key turns the effect on until pressed again, the knob macros stay
where you leave them, and FX + OCT− turns everything off
- BPM LOCK: ON, SELECT no longer changes the tempo; hold GLO and turn SELECT, tap F4 in the GLO
layer or use GLO > GLOBAL instead
- SCALE LEDS: OFF or ON: the keys show the selected track's scale all the time (the root a little
brighter); not on DRUM or SLICE tracks
- SPEAKER EQ: FLAT, LOWCUT or BASS+, a tone setting for the built-in speaker (not a switch). It also
shapes the headphone out and USB audio, so keep it on FLAT when recording. The firmware cannot turn
the speaker off, but headphones in the jack do
- USB LEVEL: MASTER (the MASTER knob sets the USB audio level too) or FIXED (USB always at full
level, MASTER sets only the speaker and headphones)
- CLICK: OFF (default), REC (while a track is armed) or ON: a click on every beat while playing, the
bar's first beat higher. CLICK LEVEL: LOW, MID (default) or HIGH; MASTER sets it too
- COUNT-IN: OFF (default), 1 BAR or 2 BARS: with a track armed, PLAY counts in first (clicking even with
CLICK OFF), and a note played in the last half beat lands on step 1. Not with an external clock
Engines
In the order the device lists them:
- ANALOG: virtual analog; two oscillators, noise, drive, resonant low-pass filter
- FM6: classic 6-operator FM (Dexed-based): 32 algorithms, a full patch per track edited in the
web editor (which imports .syx files), macros on the device, an algorithm chart on screen; SLOT
picks a factory patch (F1–F8) or the track's own (OWN)
- PHASE: phase distortion (ported from CrispyZebra)
- LOFI: chiptune; pulse, triangle, saw, noise and a 4-bit wave RAM, stepped envelope, sweep, arpeggio
- SAMPLE: multisampled instruments and 3 user sample slots
- VOICE: formant oscillator, sung vowels
- TRIO: 3 oscillators with ring modulation and sync, multimode filter
- WHEEL: tonewheel-style organ; drawbar registrations, percussion, key click, drive, rotary speaker
- GRAIN: granular textures from the built-in samples or a user slot
- PHYS: physical models: modal resonators, strings, struck membranes, sympathetic strings
- NOISE: noise from analog to digital: colours, crackle, shift-register and metallic tones
- SLICE: a drum break, a piano note (both built in) or your own sample cut into slices, one per key;
set the slices by hand on the SLICES page
- DRUM: an 8-lane kit of Felucca's own drum voices on the General MIDI key map. KIT picks the
standard kit or one of five virtual-analog (VA) kits in the manner of
classic analog drum machines (the numbers are a hint), every lane its own voice: 80 (deep sine kick with a long decay, noisy snare,
six-square hats), 10 (swept kick, white-noise snare, long-tailed claps, a cymbal), 66 (soft
round kick, bright snare, noise hats, a conga), 55 (dropping kick, high metal hats, a metal bell)
and 77 (swelling kick, multi-burst claps, claves, a cymbal). All of them are synthesized by
Felucca, no samples. EDIT > LANES and LANES 2 set each lane's level
The DIGITAL engine of 0.9 has been replaced by FM6: projects and presets with DIGITAL sounds load
as FM6 sounds converted from them. The SAMPLE engine's PERC kit was removed in 1.0.2: sounds and
projects that used it load as the DRUM engine's kit, on the same key map. FM6's patch bank (the B
slots) was removed in 1.0.3: user presets keep their own FM6 patch, and presets that used a B slot get
that patch on the first start of 1.0.3. SLICE gained a second built-in sound in 1.0.4, PIANO (the SAMPLE
engine's middle C), next to BREAK. Since 1.0.4 a missing sample (an empty user slot, or a set missing
from the build) plays a plain sine at the note's pitch on SAMPLE, GRAIN and SLICE, and the screen says
NO SAMPLE once. DRUM's KIT variants HAND, CYM and H+CYM were retired in 1.0.5: sounds and projects that
used them play the 66, 10 and 77 kits.
SLICER (FX page, every track): a tempo-synced 16-step gate or stutter, with 16 patterns.
Scale keyboard
On the SCL page, set QNT to WHITE to play the selected scale using only the
white keys (SNAP keeps every key and rounds it down to the scale). C4 plays ROOT; consecutive white keys play consecutive scale notes
above and below it. Black keys are silent, including during live recording and
step entry. TRN transposes the resulting notes; the octave buttons shift them
by full octaves. Set QNT to OFF for the normal chromatic keyboard. QNT SEQ snaps the keys like SNAP and
also maps the sequenced notes onto the current ROOT / SCALE as they play (the steps are not changed; drum
kits are never quantized).
Available scales: chromatic (CHR), major (MAJ), natural minor (MIN), Dorian (DOR),
Mixolydian (MIX), major pentatonic (PEN), minor pentatonic (MPEN), harmonic minor
(HARM), Phrygian (PHRY), Lydian (LYD), Locrian (LOC), ascending melodic minor (MEL),
minor blues (BLUES), whole tone (WHOLE), half-whole diminished (DIMHW), and
whole-half diminished (DIMWH). Scales with other than seven notes continue across
the white keys without repeating notes; their roots need not fall on every C key.
Drum kits and incoming MIDI keep their own note mapping.
Press SCL again for the CHORD page: CHRD picks the chord keys (OFF, the scale's triads or
sevenths, or a fixed shape) and VOIC the voicing.
Layout
| Path | What |
|---|
firmware/ | firmware sources: src/ app, hal/ hardware layer, loader/ update loader |
tools/ | build script, generators, package maker, installer and sample uploader |
assets/ | UI font, icon names, CC0 instrument samples |
web/ | the web installer, the earlier editor and the browser emulator (web/emu/); the new editor: Felucca-WebApp |
tests/ | tests that run on the build machine |
LICENSES/ | licence texts of the bundled fonts, icons, ported DSP and SDK files |
If the FM-1 does not start
If an update is interrupted and the FM-1 stays black, check whether a computer sees it as a USB device named
WL80UBOOT (or a USB mass-storage device with ID 4C4A:8057). That is the chip's built-in boot mode, and
the FM-1 can be brought back:
- First try another USB data cable, and close every other app that uses MIDI, then run the web installer again.
- If it stays in boot mode, FM-1 Transporter reads and
writes the FM-1's flash from a Mac through a Seeed XIAO RP2040 (three wires to the FM-1's USB lines). Back up
the flash first, then write the official firmware (M-VAVE's FM-1.fwsc).
- Questions: Issues.
Support
If Felucca is useful to you, sponsoring on GitHub or a donation
on itch.io helps keep its development going.
Issues are for reproducible bugs (one per issue). Ideas and requests go to
Discussions, and feature requests posted as issues will be
moved there. Pull requests are welcome: see CONTRIBUTING.md.
Credits
Licence
Free software: GPL-3.0-only, the Hügelton Sample Pack included. The bundled fonts and the
ported DSP keep their own licences (LICENSES/); details in LICENSING.md.
M-VAVE and FM-1 are trademarks of their respective owners. Felucca is not affiliated with or endorsed by them.
Copyright (C) 2026 Leo Kuroshita (@kurogedelic), Hügelton Instruments