roadie
Stem separation for Ableton Live 12

From finished track to Live set.

Roadie takes a finished track or DJ set and hands it back as an Ableton Live session you can play, remix or study. It splits the audio into stems tuned for electronic music, finds the tempo and which beat is bar 1, and builds the arrangement for you: one track per stem, on the bar line, ordered by frequency, colour-coded, with headroom and a locator at every section.

# your recording → stems → six-way drum split roadie split my-set.wav -o sets/ -d # stems → a running Live set, with a locator per section roadie load sets/<name>_stems --locators

Kick pinned first, then low → high by spectral centroid. The composite kit is muted because the drum parts already sum to it.

Built for Ableton Live

It doesn't hand you files. It builds the set.

Roadie drives a running copy of Live 12 (any edition) through Sideman, which reaches Live's object model directly. Everything below happens inside your open set, with no dragging, no manual warping, and no guessing where bar 1 is.

Tracks, in order

One audio track per stem, kick pinned first, then low to high by spectral centroid, coloured on a red-to-blue ramp. The composite drum kit is muted when the separate drum parts are present, because they already sum to it.

On the grid

Live's tempo is set from the audio, and every clip starts on the bar line at bar 9, leaving eight bars ahead to mix into. A warp map is written only when the set's tempo actually drifts.

Locators and scenes

--locators drops a named locator at each section (Intro, Build, Drop, Break, Outro), snapped to 8-bar phrases from bar 1. roadie scenes rebuilds them as a Session View grid: one scene per section, one looping clip per stem.

Levelled to mix

Each stem track comes in at −6 dB, set through Live's own fader curve (measured, not assumed), so your faders sit near unity and the sum has headroom. --energy-map adds a silent MIDI track that sketches the energy curve.

The stems themselves are plain FLAC and WAV files that open in any DAW. The arrangement, warping, locators and levels are Live-only, and that's what Roadie is for.

How it works

Four stages, each skipped if its output is already there.

Fetch

roadie split takes a local file, or a URL of your own upload via yt-dlp, and makes a 44.1 kHz / 24-bit WAV. A lossless original separates cleaner, because separation artifacts pile on top of codec artifacts.

Separate

demucs htdemucs_6s for bass, drums, vocals, and a merged synths stem. -d adds a kick / snare / toms / hh / ride / crash split.

Align

beat_aligner fits the tempo grid from the kick and works out which beat is bar 1 from the full mix. It writes a warp map only if the tempo actually drifts.

Load

roadie load builds the arrangement in your open Live set: tracks, clips, tempo, levels, and locators if you ask for them.

Measured, not assumed

Every default was measured on real material.

Where a measurement contradicted an earlier claim, the README keeps the correction next to the setting. A few of the results:

26 dB

Window choice beats model choice

Across five windows of one set, the four demucs models' median bass deficit sits within 0.5 dB, while the choice of window moves it by up to 26 dB. htdemucs_6s is kept because it holds up when the bass thins out. Never benchmark on one excerpt.

~35 ms

Warp only when the set drifts

Detected beats jitter about 35 ms RMS around the fitted grid, which is noise in the beat detector, not the track moving. Pinning a marker to every beat would warp a steady set onto that noise, so markers go at smoothed segment boundaries, and only when drift is real.

3 → 1

Piano and guitar are just quieter synths

On synth-based music, htdemucs_6s's piano and guitar stems share the spectral contour of other. All three are summed into one float32 synths stem, so the stems still add back up to the mix.

0 dBFS

Where a finished master peaks

A finished master is brickwalled, so stems at unity leave no room to mix. Each stem track comes in at −6 dB, set through Live's fader taper, which was measured as 0.85 + dB/40.

What you get

From one track or set.

FileWhat it is
<title>_<bpm>bpm.wav44.1 kHz / 24-bit source, tempo-tagged
…_stems/{bass,drums,vocals}.flacdemucs stems as 16-bit FLAC (the source is a lossy stream, so 24-bit would add nothing), sample-identical in length
…_stems/synths.wavother + piano + guitar, float32 so the sum cannot clip
…_stems/drums_{kick,snare,toms,hh,ride,crash}.flacsix-way drum split with -d (~1.3× realtime, so opt-in)
A Live setone track per stem, on the bar line from bar 9, plus locators with --locators
Install · macOS

Three tools and Live.

  1. Command-line tools. The extras are load-bearing: demucs omits numpy from its metadata, and audio-separator needs [cpu] for onnxruntime.
    brew install uv ffmpeg deno aubio uv tool install yt-dlp uv tool install demucs --with numpy uv tool install "audio-separator[cpu]"
  2. The repo. install.sh builds its venv from pinned requirements and puts roadie on your PATH.
    git clone https://github.com/slegroux/roadie cd roadie && ./install.sh
  3. Install Sideman, pick it as a Control Surface in Live, and check the bridge:
    ./install.sh --check
Known limitations

What it won't do.

  • Which beat is bar 1 is the weakest link. Four-on-the-floor is symmetric at the beat level, and the two detectors can disagree by two beats. Confidence is reported, and weak readings are called out. Check bar 1 by ear.
  • No pad, arp or stab separation. Those are arrangement roles, not sources, and no separator is trained on them.
  • Section names are rules, not recognition. Boundaries are measured and snapped to 8-bar phrases. The labels are thresholds on energy and order.
  • Ableton Live 12 only, and it must be running. Roadie loads into an open set; there's no headless mode, and no other DAW is supported. Live's API can't reorder tracks after creating them.
  • Tuned on one genre. The BPM gate and model choice are calibrated on deep and melodic house. Their measurements are documented so you can re-derive them for other material.

Use it on recordings you have the rights to. A DJ set contains other artists' music: stems you extract are for your own practice and analysis, not for release. Downloading from YouTube is subject to YouTube's Terms of Service. For your own uploads, YouTube Studio's download gives you the original file; pass it with --file.