Stems & Demucs

Stem mode lets you mix six isolated tracks — drums, bass, other, vocals, guitar, piano — each with its own fader (0–200%). Mute the guitar and play over the rest of the band, or solo a part to learn by ear. Combined with pitch-preserving speed and section loops, this is the usual “drill this four bars” workflow.

Separation does not run inside Rock N Roller. It is done offline with the companion Demucs MLX Audio Stemmer, then the game mixes what it finds.

Get Demucs MLX Play with stems
  1. Companion app
  2. Stemming workflow
  3. How they link to PSARCs
  4. Mixer in Rock N Roller
  5. Find songs that have stems
  6. Try it on the web

Companion app

Same raylib GUI on both platforms; the neural-net worker is what changes. Default model is Demucs htdemucs_6s (the six stems above). Input can be MP3, WAV, OGG, FLAC, M4A, or a Rocksmith *_p.psarc (it extracts the chart’s audio first).

macOS Apple Silicon Windows x64
Backend demucs-mlx (MLX + Metal) Official Meta Demucs + PyTorch CUDA
Download ~132 MB ~2 GB (ships the CUDA runtime)
Speed Far faster than realtime (about 73× on an M4 Max for 4-stem htdemucs). Unified memory; no extra GPU. NVIDIA GPU recommended (~5–7 GB VRAM for 6-stem). CPU works but is slow (a 4-minute track can take about a minute). AMD/Intel GPUs fall back to CPU.
Needs Apple Silicon Mac. Unsigned: xattr -cr "DemucsMLX.app" Recent NVIDIA driver (not a CUDA toolkit). SmartScreen: More info → Run anyway.

The Windows zip is large because MLX does not run on Windows, so the worker bundles PyTorch’s CUDA kernels. You do not install a CUDA toolkit. 3–4 GB cards may run out of VRAM on the default 6-stem segments.

Stemming workflow

  1. In Demucs MLX, add an MP3/WAV or a Rocksmith *_p.psarc.
  2. Pick an output folder — this becomes your Rock N Roller stems root.
  3. Run separation. For Eagles_Hotel-California_v1_1_p.psarc it writes:
    {stems_root}/Eagles_Hotel-California_v1_1_p/
      drums.mp3  bass.mp3  other.mp3
      vocals.mp3  guitar.mp3  piano.mp3
  4. In Rock N Roller Settings → Add STEMS folder, point at that same {stems_root}, then resync. You can add up to 10 stems roots, same as PSARC folders. Details: settings.

How they link to PSARCs

Rock N Roller takes the PSARC filename without .psarc, looks for {stems_root}/{that_name}/, and requires all six MP3s. Only then is the song marked has_stems in SQLite. Paths are indexed per song; your PSARC and stem audio stay wherever you put them — the database only stores metadata and the stems-folder list.

Folder name must match the PSARC basename exactly. If the chart is Foo_p.psarc, the six files have to live in Foo_p/, not Foo/ or a renamed folder.

Mixer in Rock N Roller

When a song has all six stem MP3s indexed, the Stems popup turns stem mode on and sets per-stem levels. Each fader runs 0–2.0 (shown as 0–200%; default 1.0) so you can mute or boost parts for practice. Playback opens six streaming MP3 decoders under one mixer that shares the same time-stretch path as normal audio, so practice speed still holds pitch. Long songs stream stems with seek points instead of loading them whole.

Mixer controls: settings. Transport and loop keys: keybinds.

Catalog search filters on the SQLite flag, not by reopening files:

Full query language: features.

Try it on the web

?demo=stems loads curated demo PSARCs plus 6-stem MP3 trees into /weblib/DemoStems. That root is additive — it does not replace any stems folders you already granted. It is a larger download than ?demo=songs (charts only). Chromium required; nothing is uploaded.

How the rest of the engine fits together: features. Desktop builds: versions.