X0X-RMX, image 1 from its README
1/9
Firmware

X0X-RMX

Rising64/100

Remix of the X0X groovebox adding extra pattern generators.

forM-VAVE FM-1·by@Mr-Roboto

Unclaimed. Is this yours? Sign in with GitHub as @Mr-Roboto to claim it.

Downloads
0
Stars
3
Forks
0
Commits
190
Last commit
Download v1.1.0

x0x-1.1.0.fwsc· 595 KB· +1 file

GPL-3.0· Mr-Roboto/fm1-x0x-rmx·mr-roboto.github.io/fm1-x0x-rmx/·downloads come from the creator’s GitHub releases

189
Commits
3
Releases
189 commits and 3 releases in the last year
Activity · last 12 months

X0X-RMX — Orb-inspired Remix for the FM-1

X0X-RMX is an independent fork of Charles Vestal's X0X, a stereo groovebox with a 909, an 808, two 303s, a breakbeat player, song mode, knob motion, reverb, tape delay and master compression.

Latest published release: X0X-RMX v1.1.0 Stable. The maintainer completed successful physical FM-1 validation, including USB project backup/restore, and reported no audio glitches or regressions.

USB Project Backup & Restore — create and restore project backups in Chrome or Edge through Web MIDI/SysEx. Only compatible X0X-RMX project backups are accepted. Uploaded user loops must be backed up separately. Calibration, Undo history and session-only Grids controls are excluded. Restore requires explicit confirmation on the FM-1; HOME cancels.

v1.1.0 adds four features:

  • G.711 µ-law TR-909 cymbal compression.
  • BREAK FILTER with LP/OFF/HP operation.
  • ENV + KNOB parameter reset.
  • USB project backup/restore, through the browser page and Python CLI.

Official website · Web Installer · Online Manual · Browser Emulator · Version History

Release source for developers: use the published v1.1.0 tag (commit a4e78f3a6e16fa310b7614e5876d07e16a0020f9). The default branch, orb-remix, contains older firmware source; this README update does not bring its code up to v1.1.0. See the v1.1.0 release notes and physical validation record.

Saved-direction compatibility for upgrades from v1.0.0: v1.0.1 introduced FWD=0, REV=1, MREV=2, PING=3, RND=4 without direction migration. Old PING becomes MREV; old RND becomes PING. Reselect and save affected directions. Projects already using v1.0.1 keep their direction values.

X0X-RMX browser emulator in Cream & Lilac, with a 909 pattern and Device color selector

The default Cream & Lilac exterior, shown with the WHITE LILAC LCD scheme.

This fork adds:

  • Orb-inspired Remix: independent Bank A–P / Pattern 1–16 selections for 909, 808, 303A and 303B; A1 is sequential and BREAK is unaffected.
  • Grids MAP/EUCLID drum generation: write or mutate kick, snare and closed-hat rhythms for 909/808, with FILL, OFFSET, CHAOS and Undo.
  • Extended TB-3PO: 22 scales and additional phrasing and mutation controls.
  • 303 Morph waveform: Sharkfin through Trapezoid to Notch-Trapezoid, with independent Morph values; only one 303 can use Morph at a time. Both voices have TONE, VOICE and EXTRA EDIT pages for their sound controls.
  • Six LCD color schemes, plus Cream & Lilac, Classic Dark, Sunset Orange and Pink Lilac device finishes in the browser emulator.

Charles' hosted emulator, installer and releases belong to upstream and do not contain this fork.

Install v1.1.0 with Chrome or Edge, download the firmware, or read the GitHub release. Historical releases remain available: v1.0.1 and v1.0.0. You can also build and preview the website locally.

Watch X0X-RMX

Watch the X0X-RMX musical browser-emulator demonstration, featuring the Cream & Lilac device

Watch the 84-second musical demonstration: Remix, Grids, TB-3PO and Morph, with real stereo emulator audio. This is an earlier browser-emulator recording, not physical FM-1 footage. Its outro was updated for v1.0.0 to state successful real-device validation; the recording and audio remain an emulator demonstration.

A closer look

RemixGrids
909 Remix with Bank B, Pattern 3, Remix ON and APPLY BAR909 Grids MAP page with X, Y, CHAOS and MODE controls
Reorder playback while keeping the stored steps.Generate kick, snare and closed-hat rhythms.
TB-3PO303 Morph
303A TB-3PO GENERATE page with density, accent, slide and octave controls303A EXTRA page with MORPH 64, ACCDEC, DRVTYPE and TUNE
Generate and mutate bass lines.Shape the experimental waveform on the EXTRA page.

Four emulator device colors

Choose Cream & Lilac (default), Classic Dark, Sunset Orange or Pink Lilac with the emulator's Device color selector. It changes the exterior immediately and remembers that browser preference separately from your project. The firmware's GLO → SCHEME setting controls LCD colors independently. New projects and factory reset select WHITE LILAC; existing saved projects keep their selected LCD scheme.

The same 909 pattern with matching device and LCD colors: Cream & Lilac / WHITE LILAC, Classic Dark / DEFAULT, Sunset Orange / SUNSET ORANGE and Pink Lilac / PINK LILAC

Four browser device finishes with coordinated LCD schemes, selected separately in GLO → SCHEME. These are visual interpretations, not color-matched hardware photographs.

What's inside

PartWhat it isBased on
90911 voices: modelled kick, snare, toms, rim and clap, with sampled hats and cymbals9W9 (samples from ER-99)
80811 tracks, including the 808's tom/conga, rim/claves and clap/maracas switches8W8
303AOpen303-derived bass synth with Devilfish-style ranges and a TB-3PO line generatorschwung-303, schwung-tb3po
303BA second independent 303 sound and line, with the same controlsSame 303 and TB-3PO sources
BREAKA loop cut into eight slices and rearranged as it playsBB Gen

909, 808, 303A and 303B each have their own length (1–64 steps) and rate, so parts can drift against each other. BREAK uses a fixed 16-step sequence at 1/16 rate. Pattern changes wait for the end of the bar, and patterns can be chained.

Experimental Wave 3 in this fork

Each 303's WAVE offers Saw, Square and Morph. On EDIT's EXTRA page, KNOB 1 (MORPH) blends continuously from 0 = Sharkfin, through 64 = Trapezoid, to 127 = Notch-Trapezoid. Each voice keeps its own Morph value; new sounds default to 64.

Only 303A or 303B may use Morph at a time. A conflicting selection is rejected and keeps the previous accepted Wave; it does not change the other voice or wait to acquire Morph later. Select Saw or Square on the current Morph voice before transferring Morph to the other voice.

Morph remains experimental. Dedicated Morph worst-case timing and listening tests were not separately reported; the successful release hardware run is not a universal benchmark. See the manual for the three EDIT pages, parameter behavior and ownership rules; the waveform specification retains the DSP mathematics and known quality limits.

Original X0X is a fork of Felucca by Leo Kuroshita (Hügelton Instruments). It keeps Felucca's foundations (the hardware layer, USB, the update loader, the web installer and the storage) and replaces the instrument on top.

Your own breaks

X0X-RMX ships with no recorded breaks, two loops rendered by its own engines: 909 GR and 808 GR. In the browser, load your files in Your breaks below the device; they stay in that browser. The retained hardware tooling can load your loops into the FM-1's three sample slots, which hold about nine one-bar loops in total. The break loops page preserves the Chrome/Edge uploader for a compatible FM-1. Retention of existing user breaks across a regular update was confirmed on hardware. The command-line tool is also retained for developers:

tools/upload_breaks.py --bars amen.wav think.wav ...   # take one bar of each and upload them
tools/upload_breaks.py --dry-run OUTDIR ...            # see what fits, without the FM-1

Recorded breaks belong to whoever made them and aren't covered by this project's licence.

Building and testing

BUILDING.md explains development builds and test prerequisites. Check out the v1.1.0 tag for the published release implementation. An arbitrary local development build is not automatically the tested v1.1.0 release. Use the checksum-verified official package for installation; the commands below are for development:

tests/run_tests.sh      # the maths, the sequencer, every engine against its original, the app in a simulator
./build.sh              # build/x0x.fwsc

build/host/x0x_host runs the whole app on a computer from a script (tests/scenarios/*.x0x). Button presses, keys, knob turns and MIDI go in; audio and screenshots come out. That's how most of X0X is tested before it reaches the FM-1.

Original X0X – upstream demonstration

Charles Vestal’s original X0X video (YouTube) shows the upstream project on an FM-1. It is a reference for the inherited foundations; the X0X-RMX features shown above are demonstrated by our browser emulator.

Licence and credits

X0X-RMX project code is GPL-3.0-only; component notices retain their own terms. Open303 (by Robin Schmidt) is MIT. BB Gen is ported from mestela's schwung-breakbeat with the author's permission. The 909's hi-hat, ride and crash samples come from ER-99 (Matthew Cieplak, GPL-3.0). The firmware fonts are Barlow Semi Condensed and Terminus (SIL OFL 1.1); web pages also use Barlow. The retained Fukiai web icon font is MIT-licensed.

Grids MAP data and arithmetic are by Emilie Gillet / Mutable Instruments (GPL-3.0-or-later), cross-checked against DEADACTIVE's Hortator port. See LICENSING.md and Grids source attribution for component provenance, notices and records still to confirm.

Felucca's own assets that aren't under its GPL (the icon set, the panel photo and the Hügelton drum pack) aren't part of this fork.

M-VAVE and FM-1 are trademarks of their owners. TR-808, TR-909 and TB-303 are Roland trademarks, used here only to describe what the parts are modelled on. X0X-RMX is an independent fork, without implied endorsement by Charles Vestal. It isn't affiliated with or endorsed by M-VAVE, Roland or Hügelton Instruments.