The Akai MPC2000XL, MPC3000 and MPC60 — running their original firmware through a focused MAME build, tuned for low-latency play on Linux.
Verify with sha256sum -c *.sha256 after downloading.
Linux x86-64 (PipeWire audio) and Windows 10/11 x86-64 (stock MAME
audio; the audio-clock pacing port is the planned follow-up).
ROMs are not included and never will be.
A dedicated MAME build containing only the Akai machines, carrying this project's ordered stack of 52 measured patches: an audio-clocked PipeWire backend that paces emulation from the sound card, event-driven panel and MIDI UARTs, and V53 fast paths that keep the machine's timing while taking it from ~11% of one core to hundreds of percent of real time. The result boots the actual MPC firmware, loads real floppy projects, samples, and sequences — with a 32-frame (~0.7 ms) audio quantum.
The panel on screen is the complete MPC2000XL front panel: buttons are clickable, the pads respond, and the knobs and sliders are mouse-controlled through the bundled layout plugin.
tar -xzf mpcpi-*-linux-x86_64.tar.gz
cd mpcpi-*/
cp /path/to/your/mpc2000xl.zip roms/ # your own legally dumped ROMs
./mpcpi # play
./mpcpi -flop myproject.img # with a floppy project
Other machines: ./mpcpi-accurate mpc3000,
./mpcpi-accurate mpc60. If your user holds no realtime
scheduling rlimit: MAME_RT_PRIORITY=0 ./mpcpi. On a hybrid
P/E-core CPU, pin to the P-cores for the tuned latency:
MAME_CPUSET=0-11 ./mpcpi.
Any class-compliant USB-MIDI pad controller (Akai MPD18, MPD218, …) becomes the MPC's own pads — not its MIDI input — through the low-latency internal-pads path:
./mpcpi -listmidi # find your controller's port
MPC_MIDI_INPUT_MODE=internal-pads \
./mpcpi -midiin1 'PORT NAME' -flop myproject.img
| MIDI | Becomes | Notes |
|---|---|---|
| Notes 36–51 | Pads 1–16 (bank A) | Note-on velocity is pad velocity |
| CC 1 | DATA wheel | Relative: 3 = three clicks up, 125 = three down |
| CC 2 | NOTE VARIATION slider | Absolute 0–127 |
Experimental on desktop. This is the appliance's proven configuration — both MK1 screens, lamps, pads and encoders driven by the bundled hub — but the desktop wiring is new and not yet hardware-verified.
sudo modprobe snd-virmidi
sudo setfacl -m u:$USER:rw /dev/snd/midiC*D0
./mpcpi-maschine
./mpcpi enables every accepted fast path — the ones
whose PCM output and event timing are measured identical to the accurate
implementation. The panel runs the accurate path by default: the faster
event-driven panel UART still ghosts occasional button presses on desktop,
so the bundle stays on the accurate one until that is fixed.
./mpcpi-accurate gives you the stock reference paths
everywhere. The project's measurements live in its repository.