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
- htdemucs — the default hybrid-transformer model; a great all-rounder.
- htdemucs_ft — fine-tuned, slightly better quality, slower.
- --two-stems=vocals — fastest path to an a cappella + instrumental split.
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.