FM-1 firmware · V12
M-VAVE FM-1 Open
Open gives the FM-1 eight tracks with DX7 FM, BASS 303, DRUM 808, PSG, PLUCK and SAMPLER source choices. It suits someone building patterns across several kinds of sound, with editing and mixing on the panel. This guide traces the published APP; the native sound engine is a closed binary. Parameter descriptions below identify the values the APP sends, rather than measured sound behavior. No unit was tested, and this draft awaits independent checking.
- Turns it into
- M-VAVE’s eight-track groovebox, with FM, acid bass, drums, PSG, pluck, samples and Bluetooth controls
- Best for
- An official alternative to stock, with sequencing and a browser Workbench
- Install
- V12 Workbench or official site
Where everything is on M-VAVE FM-1 Open
TapSwipe across the panel, then tap any control to see what it does on M-VAVE FM-1 Open.
Start here
The modes
| Mode | How to get there |
|---|---|
| Track overview | HOME from another page |
| Whole-project browser | HOME while the overview is showing |
| SEQ Basic, Step Details, Rhythm/Record, Locks, Sync/Loop | SEQ, then ALGORITHM selects one of five pages |
| Persistent mixer | Tap and release GLO within 600 ms without using anything else |
| Temporary mixer | Hold GLO for 600 ms, or use a key or encoder while holding it; release GLO to close the layer |
| Source chooser | Turn ALGORITHM or KNOB 2 on the overview; HOME + PRESETS also opens it |
| DX7 quick edit | EDIT on a DX7 track |
| DX7 full edit | Hold EDIT for 600 ms on a DX7 track |
| Other source edit | EDIT on a non-FM track; hold for 600 ms to enable more pages |
| Source envelope | ENV; press again to return |
| Source LFO | LFO; press again to return |
| Track sends / shared effects | FX, then PRESETS selects the page; FX again returns |
| Arp Notes / Swing and Hold | Hold ARP for 600 ms, then ALGORITHM selects the page |
| Edit actions | Hold SEQ for 600 ms, or press SEQ with EDIT |
| Save project | SAVE outside Source, Actions and Bluetooth |
| DX7 patch name | EDIT + REC on a DX7 track, or choose its Actions command |
| Bluetooth settings | HOME + GLO, or choose Bluetooth / Clock in Actions |
| MIDI host list | In Bluetooth settings enable the radio, choose HOST, select the device-list action and press SAVE |
| Startup logo | Power on; it lasts up to 1.2 seconds and gives way to panel input |
The JSON separates page families, their parameter pages, the note-playing context and recording/held states. These are overlapping contexts, not 49 different top-level screens. A more specific assignment takes priority. White keys below are counted from 1 to 16, left to right; physical pitch names identify positions, not a promise of the note the engine assigns.
Play, choose tracks and load projects
| Do this | What happens |
|---|---|
| Play keys on the overview, sound, effects or arp pages | The APP posts the engine-assigned note at velocity 100; releasing sends note-off |
| Play keys in a navigation menu | No keyboard note is posted; the white keys have the menu jobs listed below |
| Turn SELECT on the overview or a basic sound, ENV, non-FM LFO, effects, arp or SEQ page | Chooses track 1–8; full sound editors use SELECT for pages instead |
| OCT- / OCT+ outside SEQ and Actions | Moves the keyboard octave within −2 to +2 |
| Turn MASTER | Sends the pot reading to the global output control and briefly shows the resulting level; it is excluded from project storage |
| Turn PRESETS on the overview | Immediately loads a whole project from the last browser bank, preserving whether playback was running |
| Use PRESETS before any browser load | A positive turn begins at the low end of the factory bank; a negative turn begins at its high end |
| In the browser, turn SELECT or PRESETS | Changes slot and immediately loads that whole project |
| In the browser, turn KNOB 1 | Switches USER / FACTORY and loads the selected slot when the bank changes |
| In the browser, press white key 1–16 | Loads that slot directly and returns to the overview on success |
| In the browser, press PLAY | Loads the selected project and posts Start on success |
| Loading fails | The browser shows the error and keeps the current working project |
PRESETS on the overview is a whole-project loader. It does not merely pick a sound for one track. The APP asks for an undo checkpoint during loading but shows no unsaved-edits question. Save or export work you need before browsing.
Record and edit a pattern
| Do this | What happens |
|---|---|
| Overview: tap REC alone | A release within 600 ms toggles the record request |
| Overview: hold REC and turn SELECT | After 600 ms seeks the record cursor without changing the prior recording state; an earlier turn is consumed and prevents a tap toggle |
| Other pages: REC | Toggles recording; enabling it moves navigation and detailed-step pages to SEQ Basic when necessary |
| PLAY | Posts Stop when running, otherwise Continue; at rewind with recording and count-in enabled it posts Start |
| HOME + PLAY, either order | Posts reset, releases tracked notes, turns recording off and returns to the overview |
| Press SEQ | Opens Basic and resumes playhead following |
| Turn ALGORITHM in SEQ | Chooses one of the five parameter pages and pins the view when changing pages |
| Turn PRESETS in SEQ | Moves the edit cursor, pins the view and ends recording if the cursor moves |
| SEQ Basic: KNOB 2 | Also moves the cursor and ends recording if it moves |
| SEQ Basic: KNOB 3 | Selects a drum/sample pad, or changes the selected melodic cell’s pitch while retaining its velocity; an empty melodic cell changes the next insertion pitch |
| SEQ or Actions: OCT- / OCT+ | Moves among sixteen-step regions within the track length instead of changing octave |
| With recording off, white keys in Basic, Rhythm/Record or Sync/Loop | Request step toggles in the visible page of the selected note or drum lane |
| With recording off, white keys in Step Details or Locks | Select the corresponding cell without toggling it |
| Keys while recording in a playable context | Post their engine-assigned notes; the closed engine handles recording |
| Enter Step Details, Locks or Actions | Ends the APP’s recording request |
| Overview: KNOB 1 / 3 / 4 | Track level / edit cursor / tempo; KNOB 2 opens Source |
| SEQ page | KNOB 1 | KNOB 2 | KNOB 3 | KNOB 4 |
|---|---|---|---|---|
| 1 Basic | Track level | Step cursor | Note/pad | Tempo |
| 2 Step Details | Velocity | Gate | Probability | Chord |
| 3 Rhythm/Record | Swing | Metronome | Count-in | Loop length |
| 4 Locks | Tie | Lock target | Lock value | Note |
| 5 Sync/Loop | Internal/MIDI clock | Tempo | Loop length | Unused |
Loop-length controls request 16, 32, 48 or 64 steps. The engine interface describes a running change as taking effect at the next track loop boundary, with shortened cells retained. The APP labels drum gate, chord, tie and note fields unavailable; exact acceptance is inside the engine except that the Locks Note handler explicitly does nothing on drum tracks. On melodic tracks that handler sends the note edit without an unavailable/full-table notice. MIDI-clock tempo can be shown as waiting or lost; Basic’s tempo knob posts an external-clock notice, while Sync/Loop still passes its tempo delta without that notice.
White-key positions are F3, G3, A3, B3, C4, D4, E4, F4, G4, A4, B4, C5, D5, E5, F5 and G5. Their step, browser-slot and action-destination numbers run 1–16 in that order. Black keys have no step-navigation job with recording off. Changing pages releases tracked notes and blocks keys already held until release.
Switching from your firmware
Pick the firmware on your FM-1 now to see what installing M-VAVE FM-1 Open 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)
- stock Bluetooth data
- stock voices (128 user patches, banks A-D)
(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.)
(weakest evidence: reported)
Everything else on M-VAVE FM-1 Open
Pick a source and shape a sound
| Do this | What happens |
|---|---|
| Overview: turn ALGORITHM or KNOB 2 | Opens Source with a neighboring source previewed |
| Hold HOME and turn PRESETS | Opens Source using the current source plus the turn delta |
| Source: turn SELECT, ALGORITHM, PRESETS or KNOB 2 | Changes the preview; nothing is applied yet |
| Source: SAVE | Requests the new source and returns on success; the APP warns that switching between drum and pitched sources clears incompatible pattern cells |
| Source: HOME | Cancels to the overview |
| Tap EDIT | Opens quick editing; from quick or full sound editing it returns to the remembered overview or SEQ page |
| Hold EDIT for 600 ms | Opens full DX7 editing or advanced non-FM editing; SEQ, REC or HOME held with EDIT prevents this hold action |
| Press SEL on DX7 | Opens the selected operator’s scaling page, alternating with curves when already on scaling |
| Press SEL on another source | Opens advanced editing at 303 page 2, or page 1 for the other sources |
| Turn SELECT in full DX7 edit | Moves one page by direction within the selected operator, pitch or common context |
| Turn SELECT in advanced non-FM edit | Moves one page by direction through the engine’s groups of four descriptors |
| Turn PRESETS in DX7 quick/full edit | Sends a voice/program delta for that track |
| Turn PRESETS in melodic non-FM edit | Sends a program delta for that track |
| Turn PRESETS in drum or sampler edit | Chooses a drum, sample pad or, for 808 outside ENV, the kit controls |
| Play a mapped drum or sample key in its tone/ENV editor | Selects that part for editing and also posts its note |
| Turn ALGORITHM in sound, envelope, LFO or effects editing | On DX7 sends patch algorithm index 134; on other sources sends the engine’s cutoff-control argument |
Continuous FM and unnamed numeric tone values accelerate during fast repeated turns. Page selectors and named options use their selector movement instead. The APP asks the engine for non-FM parameter names and limits; the native tables are unavailable, so this guide does not borrow their names or page counts from the separate web engine.
| Page | KNOB 1 | KNOB 2 | KNOB 3 | KNOB 4 |
|---|---|---|---|---|
| DX7 Quick | Algorithm | Feedback | Transpose | Track level |
| Operator Tune/Level | Detune | Coarse | Fine | Output level |
| Operator Rates | Rate 1 | Rate 2 | Rate 3 | Rate 4 |
| Operator Levels | Level 1 | Level 2 | Level 3 | Level 4 |
| Operator Sens/Osc | AM sensitivity | Velocity sensitivity | Oscillator mode | Blank |
| Operator Scaling | Left depth | Right depth | Breakpoint | Blank |
| Operator Curves | Left curve | Right curve | Rate scaling | Blank |
| Pitch Rates | Rate 1 | Rate 2 | Rate 3 | Rate 4 |
| Pitch Levels | Level 1 | Level 2 | Level 3 | Level 4 |
| Common | Algorithm | Feedback | Oscillator sync | Transpose |
| DX7 ENV overlay | Attack | Decay | Sustain | Release |
| DX7 LFO page 1 | Wave | Speed | Pitch depth | Amplitude depth |
| DX7 LFO page 2 | Delay | Pitch sensitivity | LFO sync | Oscillator sync |
| Non-FM track LFO | Rate | Depth | Volume/pan target | Wave |
| 303 page 1 | Cutoff | Resonance | Envelope amount | Decay |
| 303 page 2 | Accent | Wave | Tune | Volume |
| 303 page 3 | Drive | Drive type | Slide | Accent decay |
| 303 ENV | Envelope amount | Decay | Accent decay | Cutoff |
| PSG ENV | Release (guide name; index 3) | Blank | Blank | Blank |
| PLUCK ENV | Parameter index 0 | Parameter index 3 | Parameter index 1 | Blank |
| SAMPLER ENV | Length, index 2 | Choke, index 3 | Blank | Blank |
| 808 ENV | Descriptor named Decay | Descriptor named Attack | Descriptor named Tone | Descriptor named Tune |
| Other source edit | Current page index × 4 | That index + 1 | That index + 2 | That index + 3 |
The PSG Release name is graded vendor-doc because its native descriptor is closed. The 808 ENV positions are available only when the selected part supplies the named descriptor. Other non-FM ENV positions also require a descriptor. A blank DX7 full-editor position still passes index 255 to its patch API; the closed native API’s response is not known.
On DX7 ENV, turn PRESETS clockwise to request the overlay enabled or counterclockwise to bypass it. The drawing is an illustrative amplitude envelope, separate from the operator rate/level editor. DX7 LFO uses SELECT to choose its two pages; on a non-FM track SELECT instead changes tracks.
| Physical black key in full DX7 edit | Job |
|---|---|
| F#3 | Select OP1; hold 500 ms to request its on/off toggle |
| G#3 | Select OP2; hold 500 ms to request its on/off toggle |
| A#3 | Select OP3; hold 500 ms to request its on/off toggle |
| C#4 | Select OP4; hold 500 ms to request its on/off toggle |
| D#4 | Select OP5; hold 500 ms to request its on/off toggle |
| F#4 | Select OP6; hold 500 ms to request its on/off toggle |
| G#4 | Select PITCH, with two envelope pages |
| A#4 | Select GLOBAL, the Common page |
| C#5 | Request MONO |
| D#5 | Request POLY |
| F#5 | Keeps its ordinary engine-assigned note job |
The ten assigned black keys post no notes in full DX7 editing. On 303 tone editing, C#5 and D#5 become MONO and POLY and post no notes; its other keys keep their normal jobs.
Use edit actions
SELECT chooses one of twenty commands. PRESETS or KNOB 2 moves the target cell; white keys select a position in its sixteen-step region, and OCT buttons move the target by sixteen cells. Moving the target or changing the command cancels confirmation. SAVE executes; HOME cancels an armed confirmation before leaving.
| Command | What the APP requests |
|---|---|
| Step Details; Rhythm / Record | Open SEQ pages 2 or 3 |
| Copy Step / Page / Track | Copy the selected scope, then select the corresponding Paste command |
| Paste Step / Page | Paste only a matching one-cell or sixteen-cell clipboard, with no second SAVE |
| Paste Track | Confirm with another SAVE, then require a sixty-four-cell clipboard |
| Clear Step / Page / Track | Confirm, then clear the selected scope |
| Repeat to 32 / 48 / 64 | Confirm, then repeat the track to that length |
| Undo / Redo | Swap the engine’s undo state; HOME + SAVE also requests this and returns to the music page |
| Copy Timbre | Export the current track timbre to a RAM clipboard |
| Paste Timbre | Confirm, then import its timbre and source type if ready; the guide warns that crossing between drum and pitched sources clears incompatible steps |
| DX7 Patch Name | Open its name editor only on a DX7 track |
| Bluetooth / Clock | Open settings |
| Stop All / Rewind | Post reset, clear tracked notes, end recording and return to the overview |
Clipboard and undo work stay in RAM. This menu’s implementation is a set of requests to the closed engine; the public APP does not establish all paste, chord, lock or recording semantics.
Mix, effects and arpeggiate
| Do this | What happens |
|---|---|
| In either mixer, SELECT | Chooses the track and its four-track level bank |
| Mixer KNOB 1–4 | Adjust track volumes for tracks 1–4 or 5–8, according to the selected track’s bank |
| Mixer white keys 1–8 | Request mute toggles for tracks 1–8 |
| Mixer white keys 9–16 | Request solo toggles for tracks 1–8 |
| Mixer ALGORITHM or PRESETS | No assigned turn action |
| Tap ARP | Toggles the selected track’s arp on release and clears tracked held notes |
| Hold ARP for 600 ms | Opens settings without that toggle |
| Arp ALGORITHM | Chooses Notes or Swing/Hold |
| Arp SELECT | Chooses track |
| Page | KNOB 1 | KNOB 2 | KNOB 3 | KNOB 4 |
|---|---|---|---|---|
| Track effects | Reverb send | Delay send | Track level | Shared return |
| Shared effects | Reverb time | Delay time | Delay feedback | Shared return |
| Arp Notes | Rate | Direction | Octave range | Gate |
| Arp Swing/Hold | Swing | Chord hold | Unused | Unused |
The arp screen names four rates and four directions. Drum tracks do not accept range/gate edits through these controls. Arp settings and enable state are project data; held notes are not. The native timing and sound behavior were not inspectable.
Save, name and back up
| Do this | What happens |
|---|---|
| SAVE | Opens the project-save page on the last USER slot loaded or saved |
| Save page: SELECT or PRESETS | Chooses USER 1–16 |
| Save page: KNOB 1 / KNOB 2 | Moves the twelve-character working-name cursor / changes its character |
| Save page: SAVE | Writes the chosen slot; the remembered USER slot asks nothing, even after a factory load or file import; a different valid occupied USER slot requires another SAVE |
| Save page: HOME | Leaves for the overview; editing the working name already changed RAM |
| DX7 patch-name page: SELECT / KNOB 1 | Moves its ten-character cursor / changes the character |
| Patch-name page: SAVE | Opens project saving, where the name is stored with the project |
| Matching Workbench: export project | Saves the current working project as .fm1; load and export each saved USER project you need |
| Workbench: back up device samples | Connect, use Read device sample bank, wait for completion, then Back up browser sample bank to save .fm1s |
| Workbench: restore device samples | Load the .fm1s into the browser, then use Write device sample bank and confirm |
| Workbench: export track / DX7 patch | Offers .fm1t / .syx for the selected track |
The save page remembers the last USER load or save, not the origin of the working project. A factory load or file import leaves it unchanged, so SAVE followed by SAVE can replace a different saved song without a warning; choose the destination deliberately. Startup attempts to reload that remembered USER project into RAM.
The name editors use spaces, uppercase letters, digits and a hyphen. Project import replaces the working area in RAM; save it separately to retain it on the unit. Loading a sample-bank file changes the browser only; writing it to the device is a separate confirmed action. The browser starts with demo samples, so exporting before reading the device backs up those demos. A project file does not contain its audio.
Bluetooth and clock
| Do this | What happens |
|---|---|
| Settings KNOB 1 | Positive enables the radio master; negative disables it |
| Settings KNOB 2 | Positive enables Bluetooth audio; negative disables it |
| Settings KNOB 3 | Chooses DEVICE or HOST; MIDI follows the master radio switch |
| Settings KNOB 4 | Positive selects MIDI clock; negative selects internal clock |
| Settings PRESETS | Chooses the device-list or forget-pairs action |
| Device-list action: SAVE | With radio enabled and HOST selected, opens the list and requests a scan if idle |
| Forget-pairs action: SAVE twice | Requests BLE pair clearing; the SDK interface says classic audio pairs remain |
| Host list SELECT | Chooses a discovered device |
| Host list PRESETS, then SAVE | Chooses and executes Connect, Scan, Disconnect or Settings |
| HOME during pair-clear confirmation | Cancels confirmation; otherwise returns to the overview |
These preferences save automatically after 1.5 seconds following a change. Loading or saving a different USER slot also queues an immediate remembered-slot preference write. Link status, progress and errors appear on the screen. Native pairing-key storage locations are unknown.
Read the lights and screen
| Light or screen area | Meaning |
|---|---|
| White key lights in SEQ, recording off | Active cells in the selected lane; the visible playhead position inverts its light |
| White key lights in browser | Selected slot |
| White key lights in mixer | Lower eight: muted tracks; upper eight: soloed tracks |
| Other key lights | Notes still tracked by the APP, with the editor exceptions below |
| DX7 editor black lights | Enabled operators light when their mute bits are clear; the selected OP/PITCH/GLOBAL key alternates in 250 ms phases; MONO/POLY shows the selected mode |
| 303 tone editor MONO/POLY light | Engine-reported mono/poly mode |
| OCT lights in SEQ / Actions | An earlier/later sixteen-step page exists |
| OCT lights elsewhere | Negative/positive octave offset |
| HOME, FX, GLO, ENV, LFO, EDIT | Their corresponding visible pages |
| SEL | DX7 full-edit scaling or curves |
| SEQ | Sequence editing or Actions |
| ARP | Selected track’s arp enabled, regardless of the visible page |
| REC / PLAY | APP recording request / engine-reported transport running |
| SAVE | Project-save page, Source chooser or an Actions replacement confirmation |
The music header’s \* marks engine-reported unsaved project changes. PLAY / PAUSE / STOP distinguishes running, paused away from rewind and stopped at rewind. The input badge shows CNT 1–4 for count-in, REC for live recording or STEP for stopped step recording; outside recording it shows ARP or LIVE. FOLLOW / EDIT distinguishes following playback from a pinned view. Clock labels are BPM internally or EXT / WAIT / LOST for MIDI clock. A small progress bar fills over 600 ms while a GLO, EDIT, SEQ or ARP hold is pending.
The APP writes one PLAY output and supplies no separate green-transport-light behavior. Full DX7 editing draws the selected algorithm or a schematic envelope; non-FM editing draws descriptor values or part tiles. The overview shows all eight lanes and meters, while SEQ shows sixteen cells with its current parameter strip. Error notices include audio overload, dropped MIDI and recording/chord limits reported by the SDK.
Before you switch firmware
- Back up first. Export each working or loaded USER project as .fm1 in the matching Workbench. To back up device audio, connect and use Read device sample bank before Back up browser sample bank to save .fm1s; the browser initially holds demo audio, not your unit’s audio. To restore audio, load the .fm1s into the browser, then use Write device sample bank and confirm. File loading alone does not write the unit. Track .fm1t and DX7 .syx exports are also available. Project imports stay in RAM until separately saved. Preferences and pairing keys have no identified backup export. Installing stock V15 (including through Open’s own Workbench) or another mapped firmware with a verified install footprint wipes Open’s sixteen USER projects, preferences, shared staging copy and sample header, including the first 24 KiB of the sample bank. Baud Girl’s installer is not public, so assume the same loss when switching to it. Export projects and device samples before leaving Open. See the switching advice in this section for risks and evidence.
- 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 M-VAVE FM-1 Open does to the firmware you had before.
Show the detail
install through the official Workbench: Installs Open’s program and bundled resources. Saved projects and samples have their own reserved USER area in this package; the native loader is closed, so its exact erase footprint is not verified (after you acknowledge the backup warning and start installation; a forced install asks again). start-up without Workbench: Loads the remembered USER project and preferences and checks the sample bank, using defaults or an empty state when data is missing. The APP does not save projects, complete pending saves or create factory samples at boot. Private SDK writes remain unknown (before any later edit, save or host sample initialization). Workbench sample initialization after install: Right after Workbench successfully installs Open over another mapped firmware, it uploads factory audio without a separate confirmation. The source-built V12 bank erases 0x8D000–0x9FFFF before any project save, overwriting the previous firmware’s data there. The shipped Workbench asset was not compared with the source. Updating Open itself can retain a ready bank; a read or CRC error is not automatically repaired (after a successful Workbench installation of Open from another mapped firmware). Workbench return to stock V15: Installs bundled stock V15, then restores its 128 factory voices over all four voice banks. The incoming program image covers Open’s USER projects, preferences, staging and sample header, including the first 24 KiB of sample storage. If the device already runs V15, it skips reflashing and restores only the voice banks. The native loader’s exact erases and physical voice-bank addresses remain unverified (when you acknowledge backup and confirm stock recovery) [inferred]. Workbench stock recovery while already on V15: Restores all four factory voice banks without reflashing the firmware; their physical flash addresses are not established by this handler (after confirmation, when the connected device is already stock V15).
- Stock V15: Possibly at risk (layout reported or inferred): stock settings (and possibly patterns); stock Bluetooth data; stock voices (128 user patches, banks A-D). 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.
- Baud Girl FM-1+VA: Possibly at risk (layout reported or inferred): Baud Girl presets (128); Baud Girl patterns (16, with locks). 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.
- Felucca: At risk by itself: project slot A; project slot B; project slot C; project slot D; FM6 patches of the FM6 user presets. At risk when you act: user sample slot USR1; user sample slot USR2; user sample slot USR3; user presets 1-16; user presets 17-32; the autosave (the music as you left it); FM6 voice bank B1-B32; settings, button calibration, favourites, MIDI LEARN map. 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.
- 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); the music in progress (autosave). At risk when you act: user sample slot USR1 (header at 0xA0000); user sample slot USR2 (header at 0xB4000); user sample slot USR3 (header at 0xC8000); user sounds U01-U16; user sounds U17-U32; FM6 patch bank B1-B27; user sample slot USR4 (header at 0xE7000); settings, calibration, song order, SYN1-4 kits, MIDI LEARN, theme and favourites. 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.
- X0X: 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.
- 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); FM6 patches of the FM6 user sounds. At risk when you act: song 2: four sections (whole projects); song 3: four sections (whole projects); song 4: four sections (whole projects); 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; user sounds U17-U32; the music in progress (RESTORE LAST); FM6 voice bank B1-B32; settings, calibration, favourites, MENU options. 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.
- Melodee: At risk by itself: shared user presets U289-U378; shared user presets U379-U384; shared user presets U109-U126. 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; shared user presets U019-U036; shared user presets U037-U054; shared user presets U055-U072; shared user presets U127-U144; settings, factory favourites, calibration, saved template. 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.
- FoMni: At risk when you act: FoMni button calibration; FoMni setup (pages, chord buttons, lights).
- AMB-1: At risk when you act: AMB-1 panel calibration; AMB-1 pieces and setup.
- ChoralRoot: At risk by itself: 32 imported DX7 voices. 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; options, playing setup and panel 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.
- GHOULBOX: At risk by itself: project A; project B; project C; project D; FM6 patches for user sounds. At risk when you act: user sample slot USR1; user sample slot USR2; user sample slot USR3; user sounds 1–16; user sounds 17–32; music in progress (RESTORE LAST); FM6 voice bank B1–B32; settings and panel 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: older stored user bank, if present (Beta4 does not store new edits). At risk when you act: 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. At risk when you act: user samples USR1; user samples USR2; user samples USR3; settings and panel calibration.
- OberVave: At risk when you act: pattern 1; pattern 2; pattern 3; pattern 4; pattern 5; pattern 6; pattern 7; pattern 8; saved programs and global settings.
- Polly: At risk by itself: Optional QY70 style bank; All four Polly songs; Polly shared memory 1; Polly shared memory 2; Polly shared memory 3; Polly shared memory 4. At risk when you act: 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; Polly setup and channel sounds.
- Skiff: At risk by itself: project A; project B; project C; project D; user sounds’ own FM6 patches; user sound bank 1 (only FM6 sounds can lose their own patches and fall back to a factory patch or the initial voice; other sounds remain; other writes can also erase it); user sound bank 2 (only FM6 sounds can lose their own patches and fall back to a factory patch or the initial voice; other sounds remain; other writes can also erase it). At risk when you act: user sample USR1; user sample USR2; user sample USR3; last session; shared 64-pattern pool; settings, calibration and favourites.
- What the next firmware does to M-VAVE FM-1 Open's data.
- Stock V15: 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; Open shared sample audio. 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.
- Baud Girl FM-1+VA: Possibly at risk (layout reported or inferred): 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; Open shared sample audio. Open’s sixteen USER projects and device preferences are likely to be lost when installing Baud Girl, and its sample bank is also at risk. Her installer and package footprint have not been read, so these losses remain possible rather than source-proven. Export all projects and device samples before leaving Open.
- Felucca: 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.
- SLOOP: 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.
- X0X: 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.
- JIANT: 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. After M-VAVE Open, if no readable JIANT/Felucca-family settings copy remains, JIANT starts with RESTORE LAST OFF; its autosave writes only after you enable RESTORE LAST.
- Melodee: 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.
- FoMni: 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.
- AMB-1: 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.
- ChoralRoot: 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.
- GHOULBOX: 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: 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.
- Hortator: 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.
- OberVave: 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.
- Polly: 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.
- Skiff: 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.
- Who reads whose data. No other firmware reads M-VAVE FM-1 Open's data, and M-VAVE FM-1 Open reads none of theirs.
- 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.
Installing stock V15 (including through Open’s own Workbench) or another mapped firmware with a verified install footprint wipes Open’s sixteen saved projects, preferences, shared staging copy and sample header, including the first 24 KiB of sample storage. The confirmed losses follow from the overlapping installation layouts. Baud Girl’s installer is not public, so assume the same loss when switching to it. Save and export before leaving Open; the switching advice in this section lists these risks and their evidence.
Export each project as .fm1. For audio backup, connect and use Read device sample bank, wait for completion, then Back up browser sample bank to save .fm1s. The browser starts with demos: export alone does not read your unit. To restore, load the .fm1s into the browser, then choose Write device sample bank and confirm. A project file contains no audio. All projects share one sample bank, with no second bank for an interrupted upload. Project staging is transaction recovery, not a backup.
Installing Open can also overwrite the firmware you are leaving before any project save. If no recognized sample header remains, the source-built V12 Workbench uploads its 76,436-byte factory bank, erasing 0x8D000–0x9FFFF without another sample prompt. This includes Felucca projects, JIANT song 1’s sections A–D, SLOOP sections A–D, X0X sound/stream data, overlapping FM6 or working-project copies, and Melodee bank data. The install’s backup checkbox is the warning. A valid bank is kept; read/CRC errors require restoring by hand. The computed length describes this tag’s source-generated bank; equivalence of the shipped Workbench module was not checked.
Open’s own Workbench stock-return action installs V15 and then replaces four stock voice banks with 128 factory voices, after confirmation. On a unit already running V15 it skips the firmware install and restores only those voices.
Open’s package places projects at 0x7C000–0x8BFFF, preferences within slot 16 at 0x8B000, shared staging at 0x8C000, and sample capacity at 0x8D000–0xFEFFF. Physical addresses are calculated from the package descriptor and relative SDK API. Preferences save automatically after edits and remembered-slot changes. Firmware startup reads records and reloads the remembered USER project into RAM without an APP storage write. Native loader details and private pairing-key writes remain closed.
V12 accepts the older 4048-byte Open project format, adds arp defaults in RAM, and writes the new 4064-byte format on the next save. A preference write can also migrate the project sharing its sector. The Workbench refuses a new project for an older device that reports only the old size; no reverse converter was found. Keep version-matched exports before going backward.
Where the docs and the firmware disagree
The Workbench contains the main ten-chapter user guide, with English text in sdk/I18n.js; README is the release/build overview. The remaining discrepancies concern its wording and the APP’s screen help:
| Screen hint | Handler behavior |
|---|---|
| Generic sound footer says SEL PAGE | SELECT turns full-edit pages; SEL jumps to scaling/curves or the non-FM advanced starting page |
| Guide describes SCL as opening scaling without a source restriction | On non-FM tracks SEL opens advanced tone editing, at 303 page 2 or the other sources’ page 1 |
What remains unverified
The native engine’s DSP, sequencer, recording, arp, undo implementation, non-FM descriptor tables and exact key-to-note/pad assignments are closed. APP request paths and displayed labels are mapped; their hidden implementation is not claimed as source-read evidence. STEP_EDIT and RHYTHM enum values have no separate physical entry path at this tag, so this map uses the reachable SEQ pages instead. The JSON and storage fragment identify these gaps explicitly.
Mapped from m-vave/fm1_open at V12 (3be7fbd), 2026-10-16. Every control line is traced against the published APP source; the pinned sources are in [mvaveopen.json](mvaveopen.json). APP licence: GPL-3.0-only with the FM1 SDK linking permission; native SDK and other components retain separate terms. This independently written guide copies no firmware tables or figures and is not affiliated with M-VAVE.
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.