macOS 15 or later · Apple Silicon · Akai MIDImix (optional)
Take the stems.Cut your owndub.

See it played
DubStemMix in action
Install
one line, from the latest release
curl -fsSL https://raw.githubusercontent.com/yoanbernabeu/DubStemMix/main/install.sh | shOr by hand: download DubStemMix-0.4.0.zip from the releases, unzip, move DubStemMix.app to /Applications.
Gatekeeper
The app is signed ad hoc, not notarized: no Apple Developer account behind it, just a selector with a Mac. On first launch macOS may say the app “cannot be opened”. System Settings ▸ Privacy & Security ▸ Open Anyway, once. The install script already clears the flag for you.
- The first riddim
- 01
Plug in the MIDImix
On its factory mapping. The status line at the bottom left says “connected”, and warns you if the console sends something the factory mapping does not know.
- 02
Press SEND ALL
The app now knows where every knob and fader sits. After a page change, a knob acts once it reaches the value it now drives, shown as a cream ghost mark until then. No jumps, no surprises mid-tune.
- 03
Drop a folder of stems
Anywhere in the window, then drag each stem onto the strip you want. Nothing is placed for you: you decide what goes where, as you would patch a board.
- 04
Play
Space plays and pauses, Return goes back to the top, L loops the tune. No stems? Drop a full song in SPLIT A SONG.
The board
eight strips, mirrored on screen: what you touch is where you look
Per strip: three knobs, MUTE, REC ARM, a fader. BANK LEFT / BANK RIGHT change what the knobs do; the faders stay strip volumes on every page. Four pages: flip through them below.
Reach it: BANK LEFT
The knobs are: sends to DELAY, REVERB, BUS 3
Page 1 / 4

Reach it: BANK RIGHT
The knobs are: delay time, feedback, wow, filters, reverb decay, damping, tone, phaser rate, depth… the three returns and the bus-to-bus sends
Page 2 / 4

Reach it: BANK RIGHT again
The knobs are: the big knob, the kills, the dubplate colour, delay heads and ping-pong
Page 3 / 4

Reach it: BANK RIGHT again
The knobs are: each strip's insert: sub, auto-wah, or a plugin's macros
Page 4 / 4

MUTE cuts a strip; the LED shows the state. SOLO held + MUTE solos it, in place: the echo and reverb returns keep playing while everything else is gone.
REC ARM held is the dub throw: the strip goes at full into the delay (or the reverb, or both), taken before the fader and the mute. Throw a cut vocal, hear only its echo.
Shared buses like the sends of a real board: cutting a strip never kills an echo or a reverb tail already on its way. That is the whole point.
Pre or post sends are post-fader by default; Settings switch any bus to pre-fader for the classic move: fader down, echo still running.
Bus to bus each bus return can also feed one other bus, like patching a return into a send. Pick the target in the bus card's Send to menu, dose it on strip 8 of the FX page: a filter on bus 3 with the delay sent into it is a filtered echo. Loops are greyed out.
Gestures
keyboard, or the buttons in the master column
They never touch your mutes: release, and the mix is exactly as it was.
- D
Drophold
Everything cut but the strips marked KEEP. Mark bass and drums, hold D, you are on the riddim.
- H
Holdhold
The delay closes on itself, input shut, feedback at unity. Cut all the rest, the echo keeps turning.
- C
Crash
Hit the spring. Perry's thunder, Tubby's spring shot (select Built-in · Spring on the REVERB card).
- R
Pull-up
The selector's rewind. Tape brake on the whole master, back to the top, play.
- T
Tap tempo
Tap the tempo; the delay time can lock to it, 1/16 to 1/2, dotted included.
- NP
Next · previous
Load the next or previous tune of the setlist, stopped at the top, while the effect tails keep going.
- ⌘R
Record
Record the master, after the limiter, as 24-bit WAV. Your version, ready to cut.
The sound
everything built in, no plugin needed. The references are the ones you would expect
Dub delay
A tape echo: every pass, including the first, goes through the filters and the saturation, so repeats get darker and rounder. Feedback up to self-oscillation, held by the tape. Wow and flutter. Time in milliseconds or locked to the tempo. Space Echo head patterns (1, 2, 3, 1+2, 2+3, 1+3, 1+2+3) and ping-pong.
tapeheads 1·2·3ping-pong
Reverb
A Dattorro plate, or a spring: a dispersive line where the transient comes out as a downward chirp, the boing. Hit it with CRASH.
platespringcrash
Bus 3
A Bi-Phase style phaser (two six-stage phasers in series, resonance held by saturation, ±2.5 octaves) or a tape flanger. Both output only the shifted signal: summed with the strip's dry sound, they carve the comb.
phaserflanger
Master chain
The big knob: King Tubby's stepped high-pass from the MCI board, 20 Hz to 10 kHz in twelve steps, each one a plateau you hear. The kills: a sound-system isolator, BASS / MID / TOP, kill only, never boost. The dubplate colour: an acetate played a hundred times, bandwidth shrinking, tape saturation, a slow wobble, crackle to taste. And the pull-up.
big knobkillsdubplatepull-up
Strip inserts
A sub-octave generator (the dbx boom box idea: follow the bass, add the octave below) and an auto-wah in the Mu-Tron III style: louder opens the filter, or closes it in down mode.
subauto-wah
Audio Units
Any AU effect can replace a built-in effect on a bus, or sit in a strip's insert. Plugins load out of process: one that crashes falls back to the built-in effect and stays in the project. On the FX page the bus's six knobs become macros you assign to the plugin's parameters.
AUout of processmacros
Split a song
no stems? drop the full tune
Drop a full song (WAV, MP3, AIFF, FLAC, M4A…) in SPLIT A SONG. Drums, bass, instruments and vocals land on strips 1 to 4, the original goes to the pool for A/B listening. A tune already split reopens without recomputing.
strip 01
DRUMS
strip 02
BASS
strip 03
INSTR
strip 04
VOCALS
The separation runs on the CPU with htdemucs_ft through ONNX Runtime: roughly 1.2× the song's length on an M3 Pro, up to 9 GB of memory. The four model files (663 MB) are not in the app: they are downloaded from Hugging Face on first use, after asking you, and can be deleted from Settings at any time.

FAQ
Only the Akai MIDImix?
Today, yes: it is the console this was built and tested with. But the mix logic never sees the MIDImix. It receives abstract events (knob on strip 3, row 2; MUTE on strip 5; BANK RIGHT) and sends abstract LED states back. The MIDImix itself is a profile, plain data. A controller with the same geometry (8 strips with 3 knobs, a fader and MUTE / SOLO / REC ARM buttons, two bank buttons, a master fader) needs only a profile: the Novation Launch Control XL is the obvious candidate. Pull requests welcome.
No controller at all?
Everything works with the mouse and the keyboard: knobs, faders, MUTE (⌥-click for solo), THROW, pages, gestures. The console adds the hands.
Intel Macs?
The releases are built for Apple Silicon and nothing has been tested on Intel. Building from source may work; no promise.
Why does macOS complain at first launch?
The app is signed ad hoc, not notarized: no Apple Developer account. Open Anyway once, or use the install script, which clears the quarantine flag.
Which stems can I load?
Any audio files (WAV, AIFF, FLAC, MP3, M4A, CAF), any sample rate, any length; several stems can share a strip. Stems exported from a DAW, bought as multitracks, or split by the app itself.
Latency?
Set the buffer to 128 or 256 samples in Settings. Built-in effects add no latency; a plugin's latency is not compensated.
Projects and setlists?
⌘S writes a .dubstem project: stems, effects, plugins and their state, inserts, KEEP marks, tempo. Fader and knob positions are not restored: the console is the truth. A .dubset setlist lists the tunes of the set; N / P load the next or previous one while the tails of the previous tune keep going.
Where does the separation model live?
~/Library/Application Support/DubStemMix/Models, 663 MB. Settings ▸ Stem separation ▸ Delete. It is never bundled with the app.