The Patchbay_

Separate Stems with Demucs

How to split any song into vocals, drums, bass and other stems with Demucs — install, the key command-line options, choosing a model, and the rights to keep in mind.

What stem separation is for

Splitting a finished track back into its parts — vocals, drums, bass and everything else — for remixing, mashups, karaoke/instrumentals, sampling, transcription and practice. Demucs (from Meta) is the current open-source quality leader.

Install & run

# install
pip install demucs

# separate into 4 stems: drums, bass, vocals, other
demucs path/to/song.mp3

# isolate just the vocals (and an accompaniment stem)
demucs --two-stems=vocals path/to/song.mp3

# use the higher-quality fine-tuned model
demucs -n htdemucs_ft path/to/song.mp3
# output: separated/htdemucs/song/{vocals,drums,bass,other}.wav

Choosing a model

From Python

The command line covers most needs, but you can call Demucs from Python (via demucs.separate or the API) to batch-process a library.

Rights. Separating a track you don't own doesn't grant you rights to release the result. Clear samples and stems before distributing anything built from copyrighted recordings.

See how it stacks up in Spleeter vs Demucs, or back to the AI music hub.

← AI music generation hub