Les

FM-1 firmware · v1.1.0

X0X

X0X turns the FM-1 into a ReBirth-style groovebox: 909 and 808 drum machines, a pair of 303 bass lines fed by the TB-3PO line generator, and a breakbeat that is sliced and reshuffled as it plays, all at once. Each part plays its own pattern, patterns string into a song, and knob moves can be recorded. It suits anyone who wants acid lines and big-beat drums from the FM-1 rather than an FM synth.

Turns it into
A ReBirth-style box: 909, 808, two 303s with a pattern generator, a sliced breakbeat, song mode
Best for
Acid lines and classic drum-machine beats
Install
GitHub release (the author prefers it to mirrors) or hub

Where everything is on X0X

X0X v1.1.0 on the M-VAVE FM-1 On all 14 buttons: LONG HELP. MUTE 909 MUTE 808 MUTE 303A MUTE 303B MUTE BREAK P1/P17 P2/P18 P3/P19 P4/P20 P5/P21 P6/P22 P7/P23 P8/P24 P9/P25 P10/P26 P11/P27 P12/P28 P13/P29 P14/P30 P15/P31 P16/P32 VOLUME PAGE HOME+TEMPO GLO:MOVE TEMPO SAVE+FORGET MOT ENV+DEFAULT SWING SAVE+FORGET MOT ENV+DEFAULT FILTER SAVE+FORGET MOT ENV+DEFAULT PUMP SAVE+FORGET MOT ENV+DEFAULT PATTERN PART LFO:MIX PART P1-16 ELSE STEPS -16 P17-32 ELSE STEPS +16 FX FX:FX NEXT PG LIST HOLD ACCENT MIXER SOUND SETTINGS GLO:CLOSE HOME AGAINSONG SAVE LONGCOPY HOLD: COPY TB-3PO STEPS PLAY/ STOP REC HOME+UNDO

TapSwipe across the panel, then tap any control to see what it does on X0X.

On every button on X0X: LONG HELP. Held alone about 0.9 s (SAVE 0.4 s): a card explains the button on this screen; letting go then does nothing.

Start here

How to read this: white keys are numbered 1-16 and black keys 1-11, left to right. "Hold X + Y" means keep X down, then use Y. In the normal screens, every button except PLAY and REC acts when you let go of it, and does nothing on release if you used it with something else or held it long enough to see its help card. The USB restore question is different: SEL and HOME act on a fresh press.

Get around

Do thisWhat happens
Turn ALGORITHMPicks the part: 909, 808, 303A, 303B, BREAK (it stops at the ends)
Turn SELECTPrevious or next page of this screen
Press SELThis screen as a list; extra settings sit under MORE
In a list: SELECT / ALGORITHM / SEL / HOMEMove / change the value / run an action row / close
In a question: SEL or HOMEYes or no (nothing else responds)
Hold one button about 1 s (SAVE: 0.4 s)A card explains it on this screen
Press GLO, then GLO or HOMEOpens and closes the settings

Play and pick patterns

Do thisWhat happens
PLAYStart or stop, the instant you press it
HOME, then a white keyThat pattern for all five parts (at the bar's end if playing)
HOME, hold one white key, press anotherAll five parts chain through that range, a bar each
HOME, OCT+ or OCT-White keys show patterns 17-32 or 1-16
Hold HOME + a white key, from any screenPicks that pattern for all five parts, in whichever bank (1-16 or 17-32) HOME last showed
Turn PRESETS on EDIT, SEQ or TB-3PONext or previous pattern for that part only
Turn PRESETS on any other screenNext or previous pattern for all five parts
HOME, black keys 1-5Mute or unmute 909, 808, 303A, 303B, BREAK
Hold HOME + turn SELECTTempo, 20-275 BPM
On HOME: KNOB 1-4TEMPO, SWING (50-75%), FILTER, PUMP

Write drum beats (909 or 808, on EDIT or SEQ)

Do thisWhat happens
Black key 1-11Picks that track (909: BD SD LT MT HT RS CP CH OH CR RD; 808: BD SD LT MT HT RS CP CB CY OH CH); heard when stopped
White keyStep on; a quick tap on a lit step turns it off
Hold ENV + white keysSwitches accents on those steps (the key lights show accents while ENV is down)
Hold ENV + black keyThat track plays louder, when it sounds at all (stopped, REC on, or KEY SOUND ALWAYS)
REC on, playing, black keysRecords hits on the step playing now (with ENV: accented)
OCT+ / OCT-Next or previous 16 steps (up to 64)
Hold HOME + black keyMutes or unmutes that track (not saved)
SEQ: KNOB 1, KNOB 2LENGTH (1-64 steps), RATE (1/16, 1/16T, 1/32, 1/8T)

Switching from your firmware

Pick the firmware on your FM-1 now to see what installing X0X does to its data.

1 · Back up first, on Stock V15

  • Stock V15 has no way to back up your voices or patterns. The FM-1 only sends notes over MIDI, never voice data.
  • One indirect way to back up, from Baud Girl's own docs (not tested by us): installing her FM-1+VA keeps your saved stock presets and patterns, and its browser Device Manager can then save all 128 presets and 16 patterns as files. FM-1+VA is closed source; install it at your own risk.

2 · What happens to your Stock V15 data

Possibly at risk

(the layout is reported or inferred, not read in code)

  • stock settings (and possibly patterns)

(weakest evidence: reported)

Everything about leaving Stock V15

Everything else on X0X

The modes

ScreenHow to get thereWhat it is for
EDITEDIT (X0X starts here, on the 909)The selected part's sound, a few pages
BREAK SOUNDBREAK selected, EDIT again or SELECT to SOUNDFilter and level for the break
USB restoreSend an .x0b backup from the computerProgress, then SEL to replace the project or HOME to cancel
Restore progressBefore the question and after SELPercentage while staging inactive copies, checking and committing
SEQSEQThe part's step settings: length, rate, and more on the 303 and the break
TB-3POARP, with 303A or 303B selectedWriting 303 lines for you
HOMEHOMEAll 32 patterns, part mutes, tempo and swing
SONGHOME, then HOME againThe song, bar by bar
FXFXThe shared reverb and delay
MixerLFO (pages PARTS, 909 MIX, 808 MIX, MASTER)Levels, pans, sends, master bus
GLOBALGLOSettings, saving, factory reset, performance
A listSEL on any screenEvery value on the screen, including ones on no page
Help cardHold any one button for about a secondWhat that button does here

ALGORITHM picks which part (909, 808, 303A, 303B, BREAK) EDIT, SEQ and ARP show. Press EDIT, SEQ, ARP, FX or LFO again on its own screen for the next page; SELECT also steps through pages.

Write 303 lines

Do thisWhat happens
White key (REC off)Step on as a note; a quick tap makes it a rest
On SEQ, hold a step + KNOB 1 / 2 / 3 / 4Its note / gate (rest, note, tie) / accent / slide
Hold a step + OCT- or OCT+Moves its note an octave
RECAll 27 keys become a keyboard; stopped, each key fills the next step from step 1; playing, it writes on the step now
REC on, stopped: hold ENV or LFO + keyWrites the note accented, or with a slide
REC on: hold ENV + OCT, or LFO + OCTWrites a rest, or a tie
OCT- / OCT+ with the keyboard onKeyboard octave, -2 to +3 (0 at power-on: the lowest key is F2)
SEQ, then SEQ again to KEYS, KNOB 1FREE PLAY: the keys play the 303 without writing
SEQ: KNOB 1-4LENGTH, RATE, DIRECTION (forward, reverse, ping-pong, random), TRANSPOSE (±24)
ARP, then OCT+A brand new line from the TB-3PO settings
ARP, then OCT-Mutates the line (each step has a 1 in 4 chance to change)
TB-3PO: KNOB 1-4GENERATE: DENS, ACCENT, SLIDE, OCTS; SCALE: ROOT, SCALE, OCTAVE, MUTATE. All but MUTATE only set up the next OCT+/OCT-; MUTATE at 1-16 rewrites the playing line by itself every that many passes, unasked

Notes you play legato slide as you hear them, but the recording writes plain notes. To keep a slide, write one step at a time (REC on, transport stopped) with LFO held, or set it on SEQ with KNOB 4.

Play the break (BREAK, on EDIT or SEQ)

Do thisWhat happens
White keyLets the break play on that step; a quick tap stops it
Hold black key 1-8Plays that slice now and while held
Hold black key 9 / 10 / 11Backwards / half speed / stutter, while held
Hold a white key + black key 1-8Fixes that slice on the step (again to free it)
EDIT, LOOPS: KNOB 1-4LOOP A, LOOP B, B CHANCE, PITCH (±12)
EDIT again to SOUND: KNOB 1 / 2FILTER / LEVEL of the break. FILTER is off in the centre, low-pass to the left, high-pass to the right; KNOB 3 and 4 do nothing
SEQ: KNOB 1-4GROOVE: COMPLEXITY, ANCHOR, ROLL, FILL; RETRIG: 2X, 3X, 4X, 8X

Shape a sound, step by step

Do thisWhat happens
EDIT, KNOB 1-4The part's sound. 303: TONE (CUTOFF, RESO, ENVMOD, DECAY), VOICE (ACCENT, WAVE, DRIVE, SLIDE). Drums: the track's own settings, then KIT: ACCENT
On EDIT, hold a step + turn a knobThat step gets its own value (a p-lock)
Hold the step + SAVE + turn the knobRemoves that lock
Hold a step (EDIT or SEQ) + turn SELECT leftIts chance: 95% down to 5%, then fixed cycles 1:2 to 8:8
REC on, playing, turn a sound knobRecords the knob's moves into the pattern
Turn a knob with motion, REC offThe knob wins for one pass
Hold SAVE + turn a knobForgets that knob's recorded motion
Hold ENV + turn KNOB 1-4Uses the value from that parameter's default table; it can differ from the factory sound or saved value. Held-step edits and SAVE take precedence; a question or performance test ignores the turn. A changed sound value can be recorded as motion

ENV resets HOME PUMP to 0 (off), MASTER COMP to 0 (off), 303 CUTOFF to 64 and 303 DRIVE to 0. The factory project uses 21, 95, 48 and 45 for those values. The 909 mixer LEVEL resets to 100 (factory 75), and BREAK LEVEL to 100 (factory 127).

Build a song (SONG: HOME twice)

Do thisWhat happens
White keySets the selected bar's pattern for all five parts, moves to the next bar
Black keys 1-5Mute a part in this bar
KNOB 1Selects the bar
KNOB 2-4Page 1: 909, 808, 303A patterns; page 2 (SELECT): 303B, BREAK, REPEAT (x1-x8)
PLAYPlays the song from the selected bar; it keeps going on other screens
REC, then PLAYRecords the song: your pattern picks and part mutes go in bar by bar
SELLENGTH, INSERT BAR, DELETE BAR, CLEAR SONG

While the song plays, it sets the patterns every bar, so picks on HOME or PRESETS don't stick.

Mix and effects

Do thisWhat happens
FX: KNOB 1-4REVERB: DECAY, TONE; DELAY: TIME, FEEDBACK, TONE, TAPE (DIGI at the far left, then worn tape)
LFO (PARTS): black keys 1-5, then KNOB 1-4Picks a part; LEVEL, PAN, REV, DLY
LFO to 909 MIX or 808 MIX: black key, then KNOB 1-4Picks a track; LEVEL, PAN, REV, DLY
On those pages: hold HOME + black keyMutes that part or track
LFO to MASTER: KNOB 1-4DRIVE, COMP (0 is off), PUMP, FILTER (centre off, left low-pass, right high-pass)
Turn ALGORITHM on the mixerJumps to that part's mixer page
MASTER knobVolume (and of USB audio, unless GLO > USB AUDIO is FULL)

Save, copy, undo

Do thisWhat happens
SAVESaves the project when released; playback and USB backup delay the write until they finish. MEMORY FULL means nothing was written
(nothing)AUTOSAVE is on by default: saves changed objects after 4 s untouched while stopped with REC off, at most once per 20 s, outside questions or performance tests; waits during a USB backup
Hold SAVE + white keyPastes what all five parts play now onto that pattern, in the current bank (asks only if the target has notes)
Hold SAVE + OCT+ / OCT-Moves the bank to 17-32 / 1-16. The bank is shared: OCT on HOME or SONG and PRESETS move it too, and SAVE's help card shows it
Hold SAVE + RECAsks, then clears the selected part in its pattern
Hold HOME + REC / HOME + PLAYUndo (up to 32 steps) / redo. One change bigger than undo's 20 KB store is not kept and wipes the whole history; settings and tempo are never covered; all of it is gone at power-off
GLO: CLEAR PATTERN, FACTORY RESETClear all five parts / back to the factory project (both ask). The reset is then autosaved over your saved project: see below

Five editing actions ask first: pasting onto a pattern with notes, SAVE + REC, CLEAR PATTERN, FACTORY RESET and CLEAR SONG. USB restore has a separate confirmation too. These don't: OCT+ on TB-3PO (replaces the whole line), OCT- there (mutates it), DELETE BAR, a shorter song LENGTH, SAVE + a knob (forgets its motion), recording over steps or song bars, TB-3PO's MUTATE at 1-16 (rewrites the line as it plays), and a paste onto a pattern with no notes (its lengths, swing, motion, locks and chances still go).

Settings, MIDI and USB (GLO)

MIDI: CLOCK OUT, NOTES OUT, each part's channel (909 10, 808 11, 303A 2, 303B 3, BREAK 4, or OFF). AUDIO: OUTPUT (LOUD adds 6 dB), USB AUDIO (FOLLOWS KNOB or FULL). KEYS AND SCREEN: LIGHTS, KEY SOUND, THEME. PROJECT: SAVE PROJECT, AUTOSAVE, CLEAR PATTERN, FACTORY RESET. SYSTEM: PERFORMANCE, 2ND CORE, ABOUT X0X, BATTERY. While GLOBAL is open the four knobs are HOME's (TEMPO, SWING, FILTER, PUMP).

On 2ND CORE, turn ALGORITHM to choose ON or OFF. Save the setting, then switch off and on to apply it. A crash beside the second core, bad job reads or an 8 ms job timeout bars that core; the next warm restart saves OFF if needed. After a failed start, X0X uses one core for that start even with this setting ON. PERFORMANCE shows the core status and the two supply voltages (1.38 / 1.60 V); its normal view keeps the last crash numbers until power-off.

Over USB the FM-1 appears as a MIDI device and a stereo audio input, both "X0X FM-1". The MIDI IN jack is read the same way as USB MIDI, and X0X follows incoming clock.

The FM-1 Screen Reader can receive X0X's page and knob text, lists, help, ordinary questions, messages and play/stop over USB. Step updates cover white-key on/off edits on drums or 303s and ENV drum-accent toggles; live drum recording and 303 keyboard writes have no per-step announcement. Open it in Chrome or Edge and connect. The computer speaks; the FM-1 sends no reader text until a reader listens. BREAK step changes, the safe-mode screen, USB restore progress and its hardware question are outside that spoken path. PERFORMANCE sends its page and knob text, rather than all its statistics.

What the lights mean

LightMeaning
PLAY (green)Flashes on each beat while playing
PLAY's own LEDTakes over the beat flash while REC is on
RECRecording
EDIT, SEQ, ARP, FX, LFO, GLO, HOMEThe screen you are on; HOME blinks elsewhere while the song plays
SELA list or question is open
OCT+You are past the first 16 steps, or on patterns 17-32
SAVE (blinking, on GLOBAL)Unsaved changes
Unlit buttons, faintLIGHTS is ON (the default)
Keys, drumsBright: the track's hits (the playing step flips); black: the track, dim: other tracks with hits
Keys, 303Notes bright, ties dim; with the keyboard on, the two Cs glow to help you find your place
Keys, HOMEThe pattern playing bright, patterns with notes dim, a cued one blinks; black 1-5: parts on

Back up and restore over USB

Do thisWhat happens
Stop playback, connect USB, open the author's backup page in Chrome or Edge, choose Back upDownloads an .x0b file with the sounds, 32 patterns, song, motion, tempo and settings; X0X first tries to save pending edits, even with REC on or AUTOSAVE off
Back up while playingReads the saved project; unsaved edits may be missing. The file flags omitted edits; a failed save while stopped can set that flag too
Stop playback, choose the .x0b file and RestoreA browser confirmation comes first, then the FM-1 shows a percentage while receiving, erasing and writing inactive copies, and checking the project
At RESTORE FROM USB?, press SELA fresh press commits the replacement project and loads it; undo starts over from there
At that question, press HOME or wait 60 sKeeps the active saved project; older inactive flash copies may already have been erased during transfer

The file excludes the three break-loop audio slots and hardware calibration. Keep the original WAVs and reload loops separately after switching firmware. The command-line tool can make and restore the same file. Restore's hardware question is not sent to the screen reader.

Back up before FACTORY RESET. A stopped backup taken afterwards saves the reset project over the previous save if it succeeds, even with REC on; REC blocks autosave but does not block this backup save.

After restore, the next save can replace remaining older flash copies, but it does not always rewrite all six objects: unchanged objects remembered during reloading can be skipped. Keep the file backup.

There is no save as you switch off. Stop, save, and keep a file backup before leaving X0X. If power cuts off a packed-stream save, v1.1.0 tries previous flash copies before using defaults; this does not replace a file backup. A confirmed restore interrupted during its commit can finish at the next startup. Startup can also save 2ND CORE off after a retained core crash, bad reads or an 8 ms job timeout.

Startup and recovery

Do thisWhat happens
Hold OCT- + OCT+ for 5 sUpdate mode for the installer (a countdown from 2 s; let go to cancel)
Hold OCT- + OCT+ while switching onHardware calibration: press each button and turn each knob as asked
After two failed startsSAFE MODE: no sound, USB on; PLAY tries again
In SAFE MODE, hold OCT- + OCT+ for 5 sSame update mode for the installer; releasing either early cancels. Safe mode has no countdown

Before you switch firmware

  • Back up in the firmware you are leaving first, with its own tool (above). Anything below marked at risk can be written over; whether an older saved copy survives depends on how often you saved, so do not count on it.
  • What installing X0X does to the firmware you had before. install (update loader): Writes the program area (every install or update). install (update loader): Erases every 4 KiB sector in this range whose last 256 bytes hold a valid update record (in practice 0xE4000, and 0xE8000 coming from stock). Unlike Felucca's and JIANT's loaders it does not skip 0x97000-0xDFFFF (only sectors whose tail is a valid update record). every start-up: Tries to finish a confirmed USB project restore interrupted by power loss; after success, removes its recovery record. Also removes unusable restore records and detected leftover firmware-update data (only if startup checks find a restore record or leftover update data). every start-up: Ordinary project, calibration and sample loading only reads saved data. Saves 2ND CORE OFF in settings so the next session runs on one core (only if the restart remembers a second-core failure and two cores were enabled). update (leaving through an installer's upgrade command): Erases the five staging sectors, stages the incoming firmware's loader there and writes its update record at 0xE4F00 (only when an installer starts an update from this firmware).
    • Stock V15: Possibly at risk (layout reported or inferred): stock settings (and possibly patterns).
    • Baud Girl FM-1+VA: Possibly at risk (layout reported or inferred): Baud Girl presets (128); Baud Girl patterns (16, with locks).
    • Felucca: At risk by itself: project slot A; project slot B; project slot C; project slot D; user presets 17-32; settings, button calibration, favourites, MIDI LEARN map. At risk when you act: user presets 1-16. Carried over: user sample slot USR1; user sample slot USR2; user sample slot USR3.
    • SLOOP: At risk by itself: song section A (a whole project); song section B (a whole project); song section C (a whole project); song section D (a whole project); user sounds U17-U32; settings, calibration, song order, SYN1-4 kits, MIDI LEARN, theme and favourites. At risk when you act: user sounds U01-U16. Carried over: user sample slot USR1 (header at 0xA0000); user sample slot USR2 (header at 0xB4000); user sample slot USR3 (header at 0xC8000).
    • JIANT: At risk by itself: song 1 section A (a whole project); song 1 section B (a whole project); song 1 section C (a whole project); song 1 section D (a whole project); user sounds U17-U32; settings, calibration, favourites, MENU options. At risk when you act: song 2: four sections (whole projects); song 3: four sections (whole projects); song 4: four sections (whole projects) (some of it lost); song 5: four sections (whole projects); song 6: four sections (whole projects); song 7: four sections (whole projects); song 8: four sections (whole projects); which song is current, every song's rows and scenes; user sounds U01-U16.
    • Melodee: At risk by itself: shared user presets U289-U378 (some of it lost); shared user presets U379-U384; shared user presets U019-U036; settings, factory favourites, calibration, saved template. At risk when you act: project A: patterns, song, sounds, motion, recordings; project B: patterns, song, sounds, motion, recordings; project C: patterns, song, sounds, motion, recordings; project D: patterns, song, sounds, motion, recordings; shared user presets U145-U288; shared user presets U073-U090; shared user presets U091-U108; shared user presets U001-U018.
    • FoMni: At risk by itself: FoMni setup (pages, chord buttons, lights). At risk when you act: FoMni button calibration.
    • AMB-1: At risk by itself: AMB-1 pieces and setup. At risk when you act: AMB-1 panel calibration.
    • ChoralRoot: At risk by itself: options, playing setup and panel calibration. At risk when you act: CZ-1 bank A (16 tones); CZ-1 bank B (16 tones); CZ-1 bank C (16 tones); CZ-1 bank D (16 tones); CZ-1 bank E (16 tones); CZ-1 bank F (16 tones); CZ-1 bank G (16 tones); CZ-1 bank H (16 tones); last global-save session; favourite marks, chord/bass type and filter; 128 saved sounds with their complete engine patches; recorded loop 1; recorded loop 2; recorded loop 3; recorded loop 4; recorded loop 5; recorded loop 6; recorded loop 7; recorded loop 8; recorded loop 9; recorded loop 10.
    • GHOULBOX: At risk by itself: project A; project B; project C; project D; user sounds 17–32; settings and panel calibration. At risk when you act: user sounds 1–16. Carried over: user sample slot USR1; user sample slot USR2; user sample slot USR3.
    • M-VAVE FM-1 Open: At risk by itself: Open shared sample audio. At risk when you act: Open USER project 1; Open USER project 2; Open USER project 3; Open USER project 4; Open USER project 5; Open USER project 6; Open USER project 7; Open USER project 8; Open USER project 9; Open USER project 10; Open USER project 11; Open USER project 12; Open USER project 13; Open USER project 14; Open USER project 15; Open USER project 16; Open device preferences. Installing this firmware replaces Open’s sixteen USER projects, preferences and sample header before its first start, including the first 24 KiB of sample storage. This follows Open’s source-defined USER layout and the incoming program range; export projects and device samples before leaving Open.
    • FM-106: At risk by itself: older stored user bank, if present (Beta4 does not store new edits); octave, last selected preset and MIDI preferences. A valid user bank stored by an earlier FM-106 build can still be present and readable in Beta4; the bank risks listed here, if any, apply if it exists. FM-106 Beta4’s new user-sound edits are only in memory: panel save, delete and librarian bank commit do not store them, even when they report success. Read the unit into the librarian and export both user banks before switching or powering off; those exports omit sequence notes, locks and extended controls.
    • Hortator: At risk by itself: project A; project B; project C; project D; settings and panel calibration. Carried over: user samples USR1 (Sample bytes carry over; X0X’s break-loop playback uses its own zone and loop selection rather than the previous firmware’s sound or one-shot behaviour. No unit switch was tested); user samples USR2 (Sample bytes carry over; X0X’s break-loop playback uses its own zone and loop selection rather than the previous firmware’s sound or one-shot behaviour. No unit switch was tested); user samples USR3 (Sample bytes carry over; X0X’s break-loop playback uses its own zone and loop selection rather than the previous firmware’s sound or one-shot behaviour. No unit switch was tested).
    • OberVave: At risk by itself: saved programs and global settings; pattern 1 (its B-track sound can change if it uses a saved program; its pattern notes remain); pattern 2 (its B-track sound can change if it uses a saved program; its pattern notes remain); pattern 3 (its B-track sound can change if it uses a saved program; its pattern notes remain); pattern 4 (its B-track sound can change if it uses a saved program; its pattern notes remain); pattern 5 (its B-track sound can change if it uses a saved program; its pattern notes remain); pattern 6 (its B-track sound can change if it uses a saved program; its pattern notes remain); pattern 7 (its B-track sound can change if it uses a saved program; its pattern notes remain); pattern 8 (its B-track sound can change if it uses a saved program; its pattern notes remain).
    • Polly: At risk by itself: All four Polly songs; Polly shared memory 1; Polly shared memory 2; Polly shared memory 3; Optional QY70 style bank; Polly setup and channel sounds. At risk when you act: Polly shared memory 4; Polly shared memory 5; Polly shared memory 6; Polly shared memory 7; Polly shared memory 8; Polly shared memory 9; Polly shared memory 10; Polly shared memory 11; Polly shared memory 12; Polly shared memory 13; Polly shared memory 14; Polly shared memory 15; Polly shared memory 16; Polly button and encoder calibration.
    • Skiff: At risk by itself: project A; project B; project C; project D; user sound bank 2; settings, calibration and favourites. At risk when you act: user sound bank 1. Carried over: user sample USR1 (Sample bytes carry over; X0X uses its own zone and break-loop playback rather than Skiff’s sound and hand-set slice behaviour); user sample USR2 (Sample bytes carry over; X0X uses its own zone and break-loop playback rather than Skiff’s sound and hand-set slice behaviour); user sample USR3 (Sample bytes carry over; X0X uses its own zone and break-loop playback rather than Skiff’s sound and hand-set slice behaviour).
  • What the next firmware does to X0X's data.
    • Stock V15: Possibly at risk (layout reported or inferred): the whole X0X project (settings, sound, all 32 patterns, song, knob motion); break loops slot 1; break loops slot 2; break loops slot 3; X0X button calibration.
    • Baud Girl FM-1+VA: Possibly at risk (layout reported or inferred): the whole X0X project (settings, sound, all 32 patterns, song, knob motion); break loops slot 1; break loops slot 2; break loops slot 3; X0X button calibration.
    • Felucca: At risk by itself: the whole X0X project (settings, sound, all 32 patterns, song, knob motion). At risk when you act: X0X button calibration. Carried over: break loops slot 1; break loops slot 2; break loops slot 3.
    • SLOOP: At risk by itself: the whole X0X project (settings, sound, all 32 patterns, song, knob motion). At risk when you act: X0X button calibration. Carried over: break loops slot 1; break loops slot 2; break loops slot 3.
    • JIANT: At risk by itself: the whole X0X project (settings, sound, all 32 patterns, song, knob motion); break loops slot 3. At risk when you act: break loops slot 1; break loops slot 2; X0X button calibration.
    • Melodee: At risk by itself: the whole X0X project (settings, sound, all 32 patterns, song, knob motion). At risk by itself, under a condition: break loops slot 3; X0X button calibration. At risk when you act: break loops slot 1; break loops slot 2.
    • FoMni: At risk by itself: the whole X0X project (settings, sound, all 32 patterns, song, knob motion). At risk when you act: X0X button calibration.
    • AMB-1: At risk by itself: the whole X0X project (settings, sound, all 32 patterns, song, knob motion). At risk when you act: X0X button calibration.
    • ChoralRoot: At risk by itself: the whole X0X project (settings, sound, all 32 patterns, song, knob motion); break loops slot 2; break loops slot 3. At risk when you act: break loops slot 1; X0X button calibration.
    • GHOULBOX: At risk by itself: the whole X0X project (settings, sound, all 32 patterns, song, knob motion). At risk when you act: X0X button calibration. Carried over: break loops slot 1; break loops slot 2; break loops slot 3.
    • M-VAVE FM-1 Open: At risk by itself: the whole X0X project (settings, sound, all 32 patterns, song, knob motion). At risk when you act: break loops slot 1; break loops slot 2; break loops slot 3; X0X button calibration. The factory-sample write runs by itself right after the Workbench installs Open, before any project save. The source-built V12 bank erases 0x8D000–0x9FFFF without another sample question. The shipped Workbench asset was not compared with the source.
    • FM-106: At risk by itself: the whole X0X project (settings, sound, all 32 patterns, song, knob motion).
    • Hortator: At risk by itself: the whole X0X project (settings, sound, all 32 patterns, song, knob motion). Carried over: break loops slot 1 (Sample bytes remain on the unit; playback follows Hortator’s one-shot engines, so loop and slice behaviour can differ. Valid header and zone bounds are required; no unit switch was tested); break loops slot 2 (Sample bytes remain on the unit; playback follows Hortator’s one-shot engines, so loop and slice behaviour can differ. Valid header and zone bounds are required; no unit switch was tested); break loops slot 3 (Sample bytes remain on the unit; playback follows Hortator’s one-shot engines, so loop and slice behaviour can differ. Valid header and zone bounds are required; no unit switch was tested).
    • OberVave: At risk by itself: the whole X0X project (settings, sound, all 32 patterns, song, knob motion).
    • Polly: At risk by itself: the whole X0X project (settings, sound, all 32 patterns, song, knob motion); break loops slot 1; break loops slot 2. At risk when you act: break loops slot 3; X0X button calibration.
    • Skiff: At risk by itself: the whole X0X project (settings, sound, all 32 patterns, song, knob motion). At risk when you act: X0X button calibration. Carried over: break loops slot 1; break loops slot 2; break loops slot 3.
  • Who reads whose data.
    Show the detail

    Other firmwares reading X0X's data: Felucca reads and uses X0X's break loops slot 1; break loops slot 2; break loops slot 3; SLOOP reads and uses X0X's break loops slot 1; break loops slot 2; break loops slot 3; GHOULBOX reads and uses X0X's break loops slot 1; break loops slot 2; break loops slot 3; Hortator reads and uses X0X's break loops slot 1; break loops slot 2; break loops slot 3 (Sample bytes remain on the unit; playback follows Hortator’s one-shot engines, so loop and slice behaviour can differ. Valid header and zone bounds are required; no unit switch was tested); Skiff reads and uses X0X's break loops slot 1; break loops slot 2; break loops slot 3. What X0X reads of other firmwares' data: X0X reads and uses Felucca's user sample slot USR1; user sample slot USR2; user sample slot USR3; X0X reads and uses SLOOP's user sample slot USR1 (header at 0xA0000); user sample slot USR2 (header at 0xB4000); user sample slot USR3 (header at 0xC8000); X0X reads and uses GHOULBOX's user sample slot USR1; user sample slot USR2; user sample slot USR3; X0X reads and uses Hortator's user samples USR1; user samples USR2; user samples USR3 (Sample bytes carry over; X0X’s break-loop playback uses its own zone and loop selection rather than the previous firmware’s sound or one-shot behaviour. No unit switch was tested); X0X reads and uses Skiff's user sample USR1; user sample USR2; user sample USR3 (Sample bytes carry over; X0X uses its own zone and break-loop playback rather than Skiff’s sound and hand-set slice behaviour). Everything else of another firmware's looks empty or foreign to the reader.

  • Every way each write can happen, for all mapped firmwares: the flash atlas's table. Read in each firmware's source (closed ones: their docs or third-party reports); nothing was tested on a unit.
  • Kept: newer X0X reads and converts older X0X projects. The new break FILTER loads as off for an older sound. The three break-loop slots remain until something writes over them.
  • Lost: another firmware may overwrite the project and loops. An .x0b file can restore the project after reinstalling X0X; it does not hold loops or calibration. Mutes, FREE PLAY, keyboard octave and undo history are never saved.
  • Going back a version: the release notes put 2ND CORE in 1.0.7, ENV reset and the safe-mode update hold in 1.0.8, and break FILTER plus project backup/restore in 1.0.9. Versions 1.0-1.0.6 lack the last two features; 1.0-1.0.5 also lack USB AUDIO. Re-saving in a version without a newer field may replace it, so back up first. Restore .x0b files in a version with backup support (1.0.9 onward in the notes). A 0.x beta starts fully factory, sounds included, and its first autosave can overwrite the newer project.
  • Back up first: stop playback and download an .x0b file from the author's USB backup page or command-line tool. Save failures can leave edits out, so heed the backup warning. Keep break WAVs separately. Back up the firmware you are leaving with its own tools before installing X0X.

Where the docs and the firmware disagree

  • FACTORY RESET and your saved project. The reset keeps your saved project until you save over it. The reset marks the project changed and switches AUTOSAVE back on, even if you had turned it off, so once the pattern is stopped, REC is off and nothing has been touched for 4 s (and 20 s have passed since the last autosave) the reset project is saved over the old one. Turning AUTOSAVE off again does not stop it: switching it off allows one last autosave. Undo can't be counted on either: one change bigger than undo's 20 KB store, which a reset of a full project can be, is not kept and empties the whole history. To keep the old on-unit save, switch off before that autosave fires; the next start loads it from memory. A project file backed up before the reset can also restore the project afterwards. A stopped USB backup also tries to save pending reset edits immediately, even with REC on or AUTOSAVE off, so make the backup before resetting.
  • Undo and big changes. The docs say undo keeps as many as 32 steps, with fewer left after large edits, and that it can take back CLEAR PATTERN and FACTORY RESET. Undo keeps its history in a 20,480-byte store. A single change larger than that is not kept and wipes the whole history. In practice only FACTORY RESET of a well-filled project gets that big (CLEAR PATTERN or a song clear stays far smaller), so after such a reset HOME + REC can say NOTHING TO UNDO.
  • Questions before losing notes. The docs' section on lists says X0X asks before anything that would lose notes. Five editing actions ask; restoring from USB asks too. OCT+ on TB-3PO rewrites the whole 303 line, OCT- mutates it, MUTATE set to 1-16 changes it as it plays, DELETE BAR and a shorter song LENGTH drop bars, SAVE + a knob forgets recorded motion, and pasting onto a pattern with no notes replaces its other settings, all without a question.
  • FACTORY RESET and settings (detail of the above). The docs list what the reset brings back: the stock sounds, blank patterns, an empty song and no recorded knob moves; they say nothing about settings. project_defaults also sets THEME to amber, LIGHTS to ON, KEY SOUND to STOPPED and AUTOSAVE to ON.
  • ENV as an accent on every key. The controls table says holding ENV while pressing keys gives an accent; the on-screen help card says so for the break and for 303 steps too. ENV only acts on drum keys and on the 303 keyboard (REC or FREE PLAY). On the break's keys and on 303 step keys it is never read.
  • LFO as a slide, and legato slides while recording. The controls table says holding LFO while pressing keys gives a slide; the docs also say playing a key while holding another makes the 303 slide. LFO adds a slide only in stopped step recording. Holding one keyboard note while playing another slides the sound, but that legato gesture writes no slide or tie: live recording writes an accented or plain note, and stopped step recording needs LFO held to write a slide.
  • FREE PLAY writes nothing. With FREE PLAY on, nothing is written until you press REC. With FREE PLAY on and REC off, ENV + OCT still writes a rest and LFO + OCT a tie into the line at the step-writing position.
  • PRESETS on screens other than HOME. PRESETS changes one part on its own screens and all five on HOME. On every screen that is not EDIT, SEQ or TB-3PO (SONG, FX, the mixer, GLOBAL too) it moves all five parts.
  • LIGHTS OFF. LIGHTS OFF turns off both the key lights and the button glow. Keys you hold still light with LIGHTS OFF.
  • FX help card (on-device text, not the docs). The FX help card says FX holds the reverb, delay, tape and kit drive. FX's pages are REVERB and DELAY (TAPE is on DELAY); DRIVE is on the mixer's MASTER page.
  • Web docs: processor supply voltages. The web docs still describe one supply at 1.50 V, raised from 1.40 V. At start-up X0X sets the two supplies to 1.38 V and 1.60 V, and PERFORMANCE shows both. The docs' Markdown file has the current values; their web page has older text.
  • Web docs: the break's SOUND page. The web docs describe the break's EDIT knobs as LOOP A, LOOP B, B CHANCE and PITCH, then points to SEL's list for LEVEL. EDIT has two break pages: LOOPS with those four settings, then SOUND with FILTER on KNOB 1 and LEVEL on KNOB 2. The docs' Markdown file describes the second page; their web page has the older layout.
  • USB restore writes before asking. The docs say the complete backup is checked before anything changes, then the FM-1 asks whether to restore it. Before the final file check and the question, restore erases and fills each object's inactive flash copy. It leaves their headers blank, so cancelling or a failed check keeps the active saved project in use, but older backup copies or another firmware's bytes in those inactive sectors can already be gone. SEL commits the staged project; HOME does not commit it.
  • Screen reader and the USB restore question. The screen reader section includes questions among the things read aloud. The ordinary editing questions are sent to the reader. RESTORE FROM USB? is drawn by a separate loop, which reads SEL and HOME directly and sends no announcement. The reader does not get that hardware question from X0X.
  • Screen reader and BREAK steps. The screen reader section includes step changes among its spoken updates without limiting them to particular parts. White-key on/off edits on drums and 303s, plus ENV drum-accent toggles, are announced. Live drum recording and notes written from the 303 keyboard have no per-step announcement. BREAK step edits are also silent, and the full-screen request leaves BREAK's step list out.
  • ENV reset and the startup sound (source comment). The input handler comment describes returning the knob to the value used at power-on. The handler assigns the default from the parameter table. Factory sounds override several of those values: PUMP resets to 0 instead of 21, COMP to 0 instead of 95, 303 CUTOFF to 64 instead of 48, 303 DRIVE to 0 instead of 45, 909 mixer LEVEL to 100 instead of 75, and BREAK LEVEL to 100 instead of 127. It does not retrieve the saved startup value.

Mapped from charlesvestal/fm1-x0x at v1.1.0 (27f6fac), 2026-10-16. Behavior was read in the firmware's source, without testing on a unit; the sources are in x0x.json. X0X is GPL-3.0-only, by Charles Vestal, built on Felucca by Leo Kuroshita. This is an independent guide, written in our own words, and is not affiliated with or endorsed by the X0X author, M-VAVE or Roland.

Les is in closed beta

Ask about your own setup

Say what you're after and what else is on your desk. Les takes you there one step at a time, on your gear, and shows you why each step works.

Get an invite to the open beta.

We add the gear people name here first.

We'll email you when the open beta opens, plus an occasional note on what's new in Les. Unsubscribe anytime. Privacy

Les is independent and not affiliated with M-VAVE or the firmware authors. M-VAVE and FM-1 are trademarks of their owners.