whatisgithub

What is demucs?

facebookresearch/demucs — explained in plain English

Analysis updated 2026-06-24

10,074PythonAudience · researcherComplexity · 3/5Setup · moderate

In one sentence

Demucs is a Python tool from Meta's research team that splits any music track into separate stems, drums, bass, vocals, and accompaniment, using AI, in one terminal command.

Mindmap

mindmap
  root((Demucs))
    What it does
      Stem separation
      Vocal isolation
      Karaoke creation
    Tech Stack
      Python
      PyTorch
      Transformer model
    Use Cases
      Remixing tracks
      Music research
      Custom model training
    Notes
      GPU recommended
      No longer maintained
      Fork available
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Split a full song into separate drum, bass, vocal, and accompaniment audio files for remixing or sampling.

USE CASE 2

Create a karaoke version of any song by isolating and removing the vocal stem.

USE CASE 3

Train a custom audio source separation model using the provided training scripts and dataset configuration files.

What is it built with?

PythonPyTorch

How does it compare?

facebookresearch/demucsacly/krita-ai-diffusionoffa/android-foss
Stars10,07410,07410,073
LanguagePythonPythonPython
Setup difficultymoderatehardeasy
Complexity3/53/51/5
Audienceresearcherdesignergeneral

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 30min

GPU acceleration is supported and recommended for speed, CPU-only processing works but is much slower.

So what is it?

Demucs is a Python tool from Meta's research team that separates a music track into its individual components: drums, bass, vocals, and the remaining accompaniment (what the README calls "other"). If you give it a full song, it outputs four separate audio files, one for each part. This is sometimes called stem separation or source separation, and it is useful for remixing, karaoke creation, or music analysis. The current version (v4) uses a technique that processes the audio in two ways at once: as a raw waveform and as a frequency map, then combines the information using a Transformer, a type of AI model design originally developed for text processing. Earlier versions are also available if you need compatibility with older setups. For musicians who just want to split tracks, installation is a single pip command and the tool runs from the terminal with one command pointing at an audio file. GPU acceleration is supported for faster processing. Outputs can be in various formats including float32 and int24. An experimental model adding guitar and piano separation is also included, though the project notes the piano quality is limited. For researchers who want to train their own separation models, the repository provides training scripts, configuration files, and reproducibility grids matching the published paper results. The model was trained on a dataset called MUSDB HQ plus an additional 800 songs. The original author has noted this repository is no longer actively maintained since leaving Meta. A separate fork is available for ongoing bug fixes. New feature requests and general issues are not being accepted on either repository.

Copy-paste prompts

Prompt 1
Using Demucs, separate the vocals and drums from an MP3 file into four separate output files with a single terminal command, using GPU acceleration.
Prompt 2
How do I run Demucs on a batch of 20 songs to extract only the vocal stems and save them to a specific output folder?
Prompt 3
I want to use Demucs's experimental model to attempt guitar and piano separation. What are the current quality limitations I should expect for the piano stem?
Prompt 4
Walk me through setting up Demucs to train a custom separation model on my own dataset, using the existing configuration files as a starting point.

Frequently asked questions

What is demucs?

Demucs is a Python tool from Meta's research team that splits any music track into separate stems, drums, bass, vocals, and accompaniment, using AI, in one terminal command.

What language is demucs written in?

Mainly Python. The stack also includes Python, PyTorch.

How hard is demucs to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is demucs for?

Mainly researcher.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.