Demucs splits a mixed song into four stems from one command line
Summary
An open source source separation model that takes a mixed song apart into drums, bass, vocals and the remaining backing. It runs as one command line call, can be driven from Python, and the code is MIT licensed.
Recommend- Name
- Demucs
- Version
- 4.0.1
- Pricing
- Free
- Open source
- Open source
- Operating system
- WindowsLinuxmacOS
- Updated
- 2026-10-06 17:10
What comes out of it

Demucs is an open source source separation model with a direct goal: take a mixed song and pull it apart into separate tracks for drums, bass, vocals and the remaining backing. It ships as a model plus a command line, which makes it easier to drop into your own scripts than a graphical tool would be.
It was introduced by Défossez and others and has gone through several versions, with v4 the current mainline. One thing has to be said up front: the author has left Meta, the original repository is no longer maintained and only important fixes are handled. That matters if the plan is a long lived project, and it comes back at the end of this piece.
The official description calls it a state of the art music source separation model, currently able to separate drums, bass and vocals from the remaining accompaniment. Four stems come out, not a simple two way split between voice and backing.
The numbers are published too. Hybrid Transformer Demucs reaches an SDR of 9.00 dB on the MUSDB HQ test set. Adding sparse attention and per-source fine tuning pushes that to 9.20 dB. The training data was MUSDB HQ plus another 800 songs on top.
Choosing a model

More than one model is available after installing, and the project is explicit about the trade-off. The default is htdemucs. For slightly better output there is the fine tuned htdemucs_ft, at roughly four times the separation time. An experimental six source version exists as well, which also pulls out piano and guitar, though the project says itself that the piano path is not good yet.
Two more models carry past competition results. mdx took first place on track A of the MDX challenge and mdx_extra ranked second on track B. Both come in quantised versions that are smaller and may lose a little quality.
Installing and using it

Installation is one pip command and asks for Python 3.8 or newer. A conda environment file and a container image are offered as well, which suits reproducible setups or a run on a server.
The usual call hands over an audio path and collects the result from the output directory: a folder named after the model, then a folder per track, holding four stereo files at 44.1kHz — drums, bass, other, vocals. Output is wav by default, and a flag changes the precision or writes mp3 instead.
For vocals alone, the usual karaoke case, there is a two stem mode. The project warns that this is not a shortcut: it separates everything and then mixes the rest back together, so it is neither faster nor lighter on memory.
Memory, speed, and calling it from code

The published memory figures are: at least 3GB of video memory for GPU work, but about 7GB with the default settings. When memory runs short there are two ways out, shrinking the segment length or moving the work to CPU. The cost of CPU is time, and the project gives a rough figure of 1.5 times the length of the audio.
Beyond the command line, the library can be called straight from Python: hand the command line arguments to the interface as they are, which puts separation inside your own batch flow.
Maintenance status and licence
This section has to be honest. The author states on the repository front page that he no longer works at Meta, so the original repository is no longer maintained, only important fixes are handled, feature requests are closed, and the work has moved to a fork he created.
On licensing, Demucs is open source under MIT, permissive enough for commercial pipelines. What has to be accepted is the freeze upstream: choosing it means choosing a stable implementation rather than a project still moving quickly.
Who it suits
If the requirement is to split a batch of audio into four stems and have that step written into a script, the shape of Demucs fits better than a graphical tool: install once, call once, get a fixed directory layout, and let your own orchestration handle the rest.
In the other direction, if the need is an occasional backing track or a wish to click through model combinations, a tool with an interface is easier. The value of Demucs is not a low barrier, it is control and repeatability.