LXR02XXL, image 1 from its README
Firmware

LXR02XXL

Loud88/100

The Sonic Potions + Erica Synths LXR-02 drum machine, modded, as a plugin instrument for the Akai Force / MPC: the whole panel on one page, LXR02Open’s voices, randomizers and the Hrtl DLC presets.

LXR02XXL is custom firmware for the Akai Professional MPC Live, by @sunskiefer. Latest release v0.6.1 (October 2026), 6 stars on GitHub.

forAkai Professional MPC Live·by@sunskiefer

Unclaimed. Is this yours? Sign in with GitHub as @sunskiefer to claim it.

Downloads
0
Stars
6
Forks
2
Commits
29
Last commit
Download v0.6.1

LXRXXL-0.6.1-mpc-armv7.zip· 10 MB· +1 file

Custom license· sunskiefer/LXR02XXL·downloads come from the creator’s GitHub releases

29
Commits
13
Releases
29 commits and 13 releases in the last year
Activity · last 12 months

LXRXXL v0.6.0

LXRXXL on MPC

Tested on an Akai Force (see tested.json). Downloads: Releases.

The LXR-02 drum synthesizer's open-source sound engine on the Akai Force and MPC (MPC OS 3.x, VST2 through mpc-vst-plugins), inspired by the Erica Synths LXR-02. The whole panel on one page: display, four pots, data encoder, the 7 faders, every button with its LED, and the 16 step keys, playable from the touchscreen and from the Force's pads.

Sound

Since 0.6 the sound is the LXR-02's own: the sound engine of the LXR firmware Erica Synths open-sourced in October 2026 (erica-synths/lxr-desktop-app, GPL-3.0), compiled for MPC OS (third_party/lxr-desktop-app, the few changes in PATCHES.md). The six voices (DRUM1-3, SNARE, CLAP/CYMBAL, HIHAT) with their oscillators (Sin Tri Saw Rec Noi PWM, with pulse width), the transient generator, the filters, envelopes, LFOs, velocity and LFO modulation (pulse width and the FX unit included), FM, decimation, the mixer, and the FX unit: drive (tube, fold, clip), ring modulator, compressor (1:1 to 8:1), delay and ping-pong delay, plus the firmware's plate reverb, which is in its code but off on the hardware. Parameters go through the firmware's own handler, at the machine's rate in its 64-sample blocks. Kits are the LXR-02's own 247-byte kits, so kits from an LXR-02 play as they do there.

Around it, LXRXXL's own: the sequencer: 64 patterns of 7 tracks x 64 steps (4 bars), per-track length, step velocity, note, probability and two parameter locks per step, manual rolls, shuffle, songs, recording, the euclidean pattern generator, kit morphing and kit change with the pattern; per-step parameters show while a step is held. The faders keep LXRXXL's log curve (from LXR02Open, the engine LXRXXL used up to 0.5).

User manual: every key, page and function, step by step.

The page

The panel by Suns Kiefer, laid out like the LXR-02's, at MPC's full height on the right, the PARAMETERS column on the left.

AreaWhat
Displaythe LXR's two LCD lines, in the panel's display window
PARAMETERSthe values of the menu page shown on the display, named as the LXR names them, each with a bar to drag; a page with fewer values shows fewer rows
4 potsthe LXR's pots: values 1-4 of the page (or 5-8, after selecting one of those). Each stands on the value it edits, full left = its minimum, full right = its maximum, and turns as the value changes; the value is printed in its white centre
DATA encodermoves the selection / edits; it turns with the selection, from the first value of the page to the last (or the first slot to the last when loading/saving); a tap on the "DATA" legend under it is the encoder's push (it blinks red when there is something to confirm)
7 fadersDRUM1 DRUM2 DRUM3 SNARE CLP/CYM HIHATS VOLUME (the LXR-02's fader curve)
KeysSHIFT PLAY REC COPY/CLR VOICE PERF LOAD SAVE / OSC AEG MOD FM CLICK FILTER LFO MIX / BAR< BAR> and the 7 voices; lit red with their LED
Step keys1-16: grey = step off, red = step on; the SHIFT function is printed under each key

On the touchscreen SHIFT and COPY/CLR latch: tap SHIFT, then the key (the SHIFT LED shows it is armed); the pads have real press-and-hold. LOAD / SAVE: tap LOAD or SAVE, then the data key (KIT 8, MORPH 9, SONG 10, PROJECT 11, PATTERN 16), as on the machine. Pick the slot with DATA (the touchscreen knob, the Force's data wheel or Q-Link knob 8), then confirm with a tap on the blinking DATA legend under the knob, or tap the same data key again. Example, changing kit: LOAD, KIT (step 8), turn DATA to the kit, tap DATA. Pressing the Force's data wheel in does not reach plugins (only its turns do), so it does nothing here. A pattern loads on its step key.

Q-Links: bank 1 = the 7 faders and the data encoder on knob 8; bank 2 = the 4 pots and the data encoder on knob 8.

Tempo: CONFIG (SHIFT + 12) > Tempo. "MPC" (the default) follows MPC's tempo and transport: press play on MPC and the LXR plays, its steps on MPC's grid. With MPC stopped, the LXR's own PLAY runs it at MPC's tempo. Any BPM number runs the LXR on its own clock.

The mod: presets, RESET and randomizers

Presets, old and new. The factory project, built from the Hrtl LXR-02 DLC project (presets/), has both preset sets:

KitsWhat
1-16the Hrtl kits (Lambo, Reservoir, Faders, Malware, Zipper, Nanobyte, Kronky, Boooost, Dropbar, Goondam, SpaceD, Penalty, Dialup, Express, Necro, Mist) as the LXR-02 plays them, their pulse width and FX modulation included
17-32the same 16 as LXRXXL 0.5 shipped them ("Lambo05" ... "Mist05": those few modulations off)
33"Init 05", LXRXXL 0.5's init kit (built from the manual's drum recipes)
34"Initkit", the LXR-02 firmware's init kit (also what "clear kit" goes to)
35-64the DLC's Initkits

and the 16 demo patterns, each with its kit (kit change mode "auto", so selecting a pattern brings its kit). A new LXRXXL starts on this project, on pattern 1; an MPC project you saved opens as you saved it (also one saved with 0.5.x).

RESET (blue key, top left): back to the factory project, pattern 1 with its kit, the sequencer stopped. Anything not saved is replaced.

Two keys and two knobs for randomizing, along the top of the panel (each key shows its knob's amount):

  • RANDOM (green key with the warning sign, green knob 0-100 % in steps of 10): every sound parameter of the six voices moves up or down by a random amount of up to the knob's share of its range, each on its own draw, so the voices change differently. A parameter never lands where it is, nor back where it was before the last press. Whatever would silence a voice keeps at least 30 %: the voice volumes, the amp envelope decays, the oscillator pitch and a filter's cutoff (a high-pass cutoff at most 70 %, an attack at most 70 %). The outputs and the modulation routings stay as they are. The key lights up brighter for a moment. With SHIFT only the selected voice changes.
  • SEQ RND (yellow key with the question mark, yellow knob): a new beat on the pattern, a euclidean rhythm per voice. At n % each voice gets about n % of its track's steps (between half and all of that, drawn per voice), spread evenly, turned by a random rotation, with random accents. Every press is a new beat; it replaces the voices' steps. With SHIFT only the selected voice gets a new beat, at the knob's density.

The two knobs are on Q-Link bank 2 (knobs 5 and 6), and MPC's project keeps their settings.

Force pads

Sequencing from MPC / the Force step sequencer: the drum pads play the LXR's voices in the order of its voice keys: pad 1 (bottom left) = DRUM1, pad 2 = DRUM2, pad 3 = DRUM3, pad 4 = SNARE, pad 5 = CLP/CYM, pad 6 = CL HH, pad 7 = OP HH. The voices answer the notes the Force's pads send in their default layout, the C major scale from C1 (pads 1-7 = notes 36, 38, 40, 41, 43, 45, 47), and the drum-pad patch's (pad n sends note n - 1). With the Force's pads in another layout or key, set each voice's note on its MIX page. Pads 8-16 are silent. With MPC stopped, the display shows what each pad hit played ("note 36 > DRUM1"). MPC's play also plays the LXR's pattern: to sequence only from the Force, clear the pattern (SHIFT + COPY/CLR, choose "pattern", COPY/CLR) or pick an empty one (patterns 17-64).

Any other note on the global channel plays the selected voice at that pitch. After pad learn (below) the pads are the LXR's panel instead, row by row from the bottom:

RowPads 1-8
6- - - - - - - OP HH
5BAR< BAR> DRUM1 DRUM2 DRUM3 SNARE CLP/CYM CL HH
4OSC AEG MOD FM CLICK FILTER LFO MIX
3SHIFT PLAY REC COPY/CLR VOICE PERF LOAD SAVE
2steps 9-16
1steps 1-8

Pad learn, once per device: CONFIG > lrn, then hit three pads: the bottom-left pad, the pad right of it, the pad above it. The display shows the notes they sent, then "Pads learned". The pads need a layout where no two send the same note (a chromatic layout whose rows don't repeat each other's notes); with rows that overlap the display says "Pads overlap" and the pads keep playing the drums. CONFIG > pad "nte" switches the panel off again (the pads play the drums), "pnl" back on. A plugin can't light the Force's pads, so the LEDs are on the screen.

MIDI

Each voice listens on its own MIDI channel and note (MIX page; by default channel 1, notes 36-42); the global channel (CONFIG) plays the selected voice tonally. While the pads are the panel, the notes they send work the panel, not the voices. CC n sets sound parameter n-1 and NRPN the parameters from 128 (the LXR's CC/NRPN list), NRPN 100-105 the PWM of voices 1-6 and 106-117 the FX unit (reverb and delay type included), CC1 morphs, program change selects the pattern.

Artwork

Artwork by Suns Kiefer.

Presets from an LXR-02

tools/import_lxr02.py <LXR-02 project folder> turns an LXR-02 project (its SD card's NN-NAME.SND kits and NN-.PAT patterns) into the factory content (src/factory_data.c); the file layouts are described at its top. The kits are taken as they are, all 247 bytes. Songs and the global settings file are not imported.

Data

Projects (64 kits, 64 patterns, 64 songs and the settings each) are saved in /sdcard/LXRXXL/Projects, outside the plugin folder so they survive updates. MPC's own project also keeps each instance's whole state.

Installing

Needs root SSH access to the device (for example MockbaMod) and MPC OS 3.x. Unzip the release, then:

scp -r LXRXXL-<version> root@<device-ip>:/tmp/
ssh -t root@<device-ip> sh /tmp/LXRXXL-<version>/install.sh

The installer stops MPC (save first), copies the plugin to /sdcard/Synths/L'Cronx - VST - LXRXXL/, adds it to MPC's plugin list and starts MPC again. Load LXRXXL (L'Cronx) as a plugin instrument. uninstall.sh removes it. INSTALL.md in the zip has the manual steps.

Building

Python 3 with Pillow, numpy and scipy, a host gcc and clang, Zig (pip install ziglang); valgrind and qemu-user for the tests. No Docker.

git clone https://github.com/sunskiefer/LXR02XXL
cd LXR02XXL
./build.sh             # build/arm/lxrxxl.so + the skin -> build/package/
test/run_tests.sh      # the wrapper's host test and the engine tests, under valgrind
test/arm_sim.sh        # the MPC simulation built for ARM, run under qemu-arm

tools/gen_params.py is the parameter list (appended only: MPC stores automation by index), tools/panel.py the page geometry (it writes layout.conf), tools/panel_art.py the artwork, tools/preview.py a picture of the built page. The LXR engine's globals are swapped per instance (src/lxr_state.c), so several LXRXXLs can play at once. Changes to the vendored LXR code are listed in PATCHES.md.

License and credits

  • Sound engine: the Erica Synths LXR firmware, Copyright (C) 2012-2026 Erica Synths (DSP by Julian Schmidt, Sonic Potions), GPL-3.0-only (third_party/lxr-desktop-app/LICENSE and NOTICE.md). LXRXXL is a modified version of it and is under the same licence (LICENSE); every release includes its complete source.
  • LXRXXL 0.1-0.5 were built on LXR02Open by Brendan Clarke; its fader curve and CC1 morph idea live on here, its code does not.
  • VST2 wrapper, skin builder and installer: sd88me, mpc-vst-plugins (MIT).
  • Presets: the Hrtl LXR-02 DLC project.
  • Interface font: Titillium Web, SIL Open Font License 1.1.

LXRXXL is not official Erica Synths software and is not affiliated with or endorsed by Erica Synths, Sonic Potions or Akai Professional. "Erica Synths", "LXR" and "LXR-02" are trademarks of Erica Synths.