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
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 this | What happens |
|---|---|
| Turn ALGORITHM | Picks the part: 909, 808, 303A, 303B, BREAK (it stops at the ends) |
| Turn SELECT | Previous or next page of this screen |
| Press SEL | This screen as a list; extra settings sit under MORE |
| In a list: SELECT / ALGORITHM / SEL / HOME | Move / change the value / run an action row / close |
| In a question: SEL or HOME | Yes 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 HOME | Opens and closes the settings |
Play and pick patterns
| Do this | What happens |
|---|---|
| PLAY | Start or stop, the instant you press it |
| HOME, then a white key | That pattern for all five parts (at the bar's end if playing) |
| HOME, hold one white key, press another | All 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 screen | Picks that pattern for all five parts, in whichever bank (1-16 or 17-32) HOME last showed |
| Turn PRESETS on EDIT, SEQ or TB-3PO | Next or previous pattern for that part only |
| Turn PRESETS on any other screen | Next or previous pattern for all five parts |
| HOME, black keys 1-5 | Mute or unmute 909, 808, 303A, 303B, BREAK |
| Hold HOME + turn SELECT | Tempo, 20-275 BPM |
| On HOME: KNOB 1-4 | TEMPO, SWING (50-75%), FILTER, PUMP |
Write drum beats (909 or 808, on EDIT or SEQ)
| Do this | What happens |
|---|---|
| Black key 1-11 | Picks 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 key | Step on; a quick tap on a lit step turns it off |
| Hold ENV + white keys | Switches accents on those steps (the key lights show accents while ENV is down) |
| Hold ENV + black key | That track plays louder, when it sounds at all (stopped, REC on, or KEY SOUND ALWAYS) |
| REC on, playing, black keys | Records hits on the step playing now (with ENV: accented) |
| OCT+ / OCT- | Next or previous 16 steps (up to 64) |
| Hold HOME + black key | Mutes or unmutes that track (not saved) |
| SEQ: KNOB 1, KNOB 2 | LENGTH (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 else on X0X
The modes
| Screen | How to get there | What it is for |
|---|---|---|
| EDIT | EDIT (X0X starts here, on the 909) | The selected part's sound, a few pages |
| BREAK SOUND | BREAK selected, EDIT again or SELECT to SOUND | Filter and level for the break |
| USB restore | Send an .x0b backup from the computer | Progress, then SEL to replace the project or HOME to cancel |
| Restore progress | Before the question and after SEL | Percentage while staging inactive copies, checking and committing |
| SEQ | SEQ | The part's step settings: length, rate, and more on the 303 and the break |
| TB-3PO | ARP, with 303A or 303B selected | Writing 303 lines for you |
| HOME | HOME | All 32 patterns, part mutes, tempo and swing |
| SONG | HOME, then HOME again | The song, bar by bar |
| FX | FX | The shared reverb and delay |
| Mixer | LFO (pages PARTS, 909 MIX, 808 MIX, MASTER) | Levels, pans, sends, master bus |
| GLOBAL | GLO | Settings, saving, factory reset, performance |
| A list | SEL on any screen | Every value on the screen, including ones on no page |
| Help card | Hold any one button for about a second | What 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 this | What 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 / 4 | Its note / gate (rest, note, tie) / accent / slide |
| Hold a step + OCT- or OCT+ | Moves its note an octave |
| REC | All 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 + key | Writes the note accented, or with a slide |
| REC on: hold ENV + OCT, or LFO + OCT | Writes a rest, or a tie |
| OCT- / OCT+ with the keyboard on | Keyboard octave, -2 to +3 (0 at power-on: the lowest key is F2) |
| SEQ, then SEQ again to KEYS, KNOB 1 | FREE PLAY: the keys play the 303 without writing |
| SEQ: KNOB 1-4 | LENGTH, 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-4 | GENERATE: 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 this | What happens |
|---|---|
| White key | Lets the break play on that step; a quick tap stops it |
| Hold black key 1-8 | Plays that slice now and while held |
| Hold black key 9 / 10 / 11 | Backwards / half speed / stutter, while held |
| Hold a white key + black key 1-8 | Fixes that slice on the step (again to free it) |
| EDIT, LOOPS: KNOB 1-4 | LOOP A, LOOP B, B CHANCE, PITCH (±12) |
| EDIT again to SOUND: KNOB 1 / 2 | FILTER / 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-4 | GROOVE: COMPLEXITY, ANCHOR, ROLL, FILL; RETRIG: 2X, 3X, 4X, 8X |
Shape a sound, step by step
| Do this | What happens |
|---|---|
| EDIT, KNOB 1-4 | The 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 knob | That step gets its own value (a p-lock) |
| Hold the step + SAVE + turn the knob | Removes that lock |
| Hold a step (EDIT or SEQ) + turn SELECT left | Its chance: 95% down to 5%, then fixed cycles 1:2 to 8:8 |
| REC on, playing, turn a sound knob | Records the knob's moves into the pattern |
| Turn a knob with motion, REC off | The knob wins for one pass |
| Hold SAVE + turn a knob | Forgets that knob's recorded motion |
| Hold ENV + turn KNOB 1-4 | Uses 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 this | What happens |
|---|---|
| White key | Sets the selected bar's pattern for all five parts, moves to the next bar |
| Black keys 1-5 | Mute a part in this bar |
| KNOB 1 | Selects the bar |
| KNOB 2-4 | Page 1: 909, 808, 303A patterns; page 2 (SELECT): 303B, BREAK, REPEAT (x1-x8) |
| PLAY | Plays the song from the selected bar; it keeps going on other screens |
| REC, then PLAY | Records the song: your pattern picks and part mutes go in bar by bar |
| SEL | LENGTH, 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 this | What happens |
|---|---|
| FX: KNOB 1-4 | REVERB: DECAY, TONE; DELAY: TIME, FEEDBACK, TONE, TAPE (DIGI at the far left, then worn tape) |
| LFO (PARTS): black keys 1-5, then KNOB 1-4 | Picks a part; LEVEL, PAN, REV, DLY |
| LFO to 909 MIX or 808 MIX: black key, then KNOB 1-4 | Picks a track; LEVEL, PAN, REV, DLY |
| On those pages: hold HOME + black key | Mutes that part or track |
| LFO to MASTER: KNOB 1-4 | DRIVE, COMP (0 is off), PUMP, FILTER (centre off, left low-pass, right high-pass) |
| Turn ALGORITHM on the mixer | Jumps to that part's mixer page |
| MASTER knob | Volume (and of USB audio, unless GLO > USB AUDIO is FULL) |
Save, copy, undo
| Do this | What happens |
|---|---|
| SAVE | Saves 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 key | Pastes 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 + REC | Asks, then clears the selected part in its pattern |
| Hold HOME + REC / HOME + PLAY | Undo (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 RESET | Clear 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
| Light | Meaning |
|---|---|
| PLAY (green) | Flashes on each beat while playing |
| PLAY's own LED | Takes over the beat flash while REC is on |
| REC | Recording |
| EDIT, SEQ, ARP, FX, LFO, GLO, HOME | The screen you are on; HOME blinks elsewhere while the song plays |
| SEL | A 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, faint | LIGHTS is ON (the default) |
| Keys, drums | Bright: the track's hits (the playing step flips); black: the track, dim: other tracks with hits |
| Keys, 303 | Notes bright, ties dim; with the keyboard on, the two Cs glow to help you find your place |
| Keys, HOME | The pattern playing bright, patterns with notes dim, a cued one blinks; black 1-5: parts on |
Back up and restore over USB
| Do this | What happens |
|---|---|
| Stop playback, connect USB, open the author's backup page in Chrome or Edge, choose Back up | Downloads 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 playing | Reads 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 Restore | A 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 SEL | A fresh press commits the replacement project and loads it; undo starts over from there |
| At that question, press HOME or wait 60 s | Keeps 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 this | What happens |
|---|---|
| Hold OCT- + OCT+ for 5 s | Update mode for the installer (a countdown from 2 s; let go to cancel) |
| Hold OCT- + OCT+ while switching on | Hardware calibration: press each button and turn each knob as asked |
| After two failed starts | SAFE MODE: no sound, USB on; PLAY tries again |
| In SAFE MODE, hold OCT- + OCT+ for 5 s | Same 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.
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.
How to use the arpeggiator0:37 · 4 STEPS
How to make a deep bass0:38 · 4 STEPS
How to make an evolving pad0:44 · 4 STEPS
How the Mod Matrix works0:39 · 3 STEPS
How to morph between two versions of a pad0:40 · 4 STEPS
How the two wave knobs on a PolyBrute oscillator work0:42 · 4 STEPS
How to add swing0:34 · 2 STEPS
How to change the bells on the FM-1 AMB-10:36 · 3 STEPS · AMB-1
How to turn the FM-1 AMB-1 into a drone0:37 · 3 STEPS · AMB-1
How to steer the melody on the FM-1 AMB-10:36 · 3 STEPS · AMB-1
How to use the arpeggiator0:41 · 4 STEPS · STOCK
How to play a dominant 7th on the FM-1 with ChoralRoot0:33 · 3 STEPS · CHORALROOT
How to play minor 9th chords with one finger on the FM-1 with ChoralRoot0:37 · 3 STEPS · CHORALROOT
How to play a I-vi-IV-V on the FM-1 with ChoralRoot0:39 · 4 STEPS · CHORALROOT
How to get the Casio CZ sound on the FM-1 with Melodee0:34 · 3 STEPS · MELODEE
How to get a Prophet-5 sound on the FM-1 with Melodee0:40 · 4 STEPS · MELODEE
How to record without quantize on the FM-1 with Melodee0:28 · 2 STEPS · MELODEE
Every firmware, every controlPick the firmware on yours, then tap any control to see what it does.
How to add glide to one step0:38 · 3 STEPS
How to play a random sequence0:28 · 2 STEPS
Les is independent and not affiliated with M-VAVE or the firmware authors. M-VAVE and FM-1 are trademarks of their owners.