RealGoodSplits is a clean, fast desktop app that splits any song into separate stems — vocals, drums, bass, and more — using the state-of-the-art Demucs hybrid-transformer models. Drop in a track, click one button, and get studio-quality acapellas, instrumentals, and individual instrument tracks.
- 🎚️ High-quality separation — powered by Demucs v4 (
htdemucs,htdemucs_ft, 6-stem, and MDX models). - 🪟 Built for Windows — one-click installer, a friendly GUI, and a CI-built standalone
.exe. Runs great on macOS & Linux too. - 🎤 Karaoke mode — one toggle for a clean Vocals + Instrumental pair.
- 🥁 Pick your stems — export any subset: vocals, drums, bass, other (plus guitar & piano with the 6-stem model).
- 📦 Batch processing — queue many files (or a whole folder) and walk away.
- 🖱️ Drag & drop — drop audio straight onto the window (optional extra).
- ⚡ GPU acceleration — automatically uses your NVIDIA GPU (CUDA) or Apple Silicon (MPS) when available, CPU otherwise.
- 🎵 WAV / MP3 / FLAC output with selectable bitrate and bit depth.
- 🧰 Full CLI for scripting and automation.
The easy way — no command line required:
- Install Python 3.10–3.12. On the first installer screen, tick “Add python.exe to PATH.”
- Download this repo
and unzip it (or
git cloneit). - Double-click
install_windows.batand wait for it to finish (it downloads PyTorch the first time — grab a coffee ☕). - Double-click
run.batto launch the app.
Tip: For NVIDIA GPU speed-ups, install the CUDA build of PyTorch before step 3:
py -m venv .venv && .venv\Scripts\activate pip install torch torchaudio --index-url https://download.pytorch.org/whl/cu121then run
install_windows.bat.
Prefer a prebuilt app? Go to the Actions tab,
run “Build Windows app,” and download the zipped .exe artifact — or grab it from
Releases when one is published.
git clone https://github.com/Therealdk8890/RealGoodSplits.git
cd RealGoodSplits
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r requirements.txt
pip install -e .
# launch the GUI
realgoodsplits # or: python -m realgoodsplitsOptional drag-and-drop support:
pip install tkinterdnd2- Add files (or a folder), or drag them onto the window.
- Choose a model and what to extract:
- Vocals + Instrumental — the karaoke pair.
- 4 stems — drums / bass / other / vocals.
- 6 stems — adds guitar & piano (
htdemucs_6s).
- Pick the output format and where to save.
- Hit Split Stems and watch the progress bar. Done!
# Basic 4-stem split
realgoodsplits-cli song.mp3
# Karaoke pair (vocals + instrumental) as 320 kbps MP3
realgoodsplits-cli song.mp3 --two-stems -f mp3 --mp3-bitrate 320
# Just the vocals and drums, highest-quality model, into ./out
realgoodsplits-cli song.wav -m htdemucs_ft --stems vocals drums -o ./out
# Batch a whole folder on the GPU
realgoodsplits-cli ./my_album -o ./stems --device cuda
# See every model
realgoodsplits-cli --list-modelsRun realgoodsplits-cli --help for the full list of options (overlap, shifts,
segment size, bit depth, parallel jobs, …).
| Model | Stems | Notes |
|---|---|---|
htdemucs |
4 | Default. Best balance of speed and quality. |
htdemucs_ft |
4 | Fine-tuned. Highest quality, ~4× slower. |
htdemucs_6s |
6 | Adds guitar & piano (experimental). |
mdx_extra |
4 | Strong non-transformer alternative. |
mdx_extra_q |
4 | Quantised — smaller download, slightly lower quality. |
Model weights download automatically on first use and are cached for next time.
On a Windows machine with the project installed:
build_windows.batThis produces dist\RealGoodSplits\RealGoodSplits.exe (a self-contained folder —
PyTorch makes it large). The same build runs automatically in
GitHub Actions.
- Reading MP3 / M4A fails — install FFmpeg and
make sure it’s on your PATH (
winget install Gyan.FFmpegon Windows). WAV/FLAC work without it. - “CUDA not available” — you installed the CPU build of PyTorch. Reinstall the CUDA
build (see the GPU tip above), or just use
--device cpu(slower but always works). - Out of memory on long tracks — lower the segment size, e.g.
--segment 7. - No drag-and-drop —
pip install tkinterdnd2(it’s optional).
pip install pytest
pytest tests/test_unit.py # fast, no ML deps
pytest tests/test_e2e.py # real separation (needs torch + demucs)The repo ships GitHub Actions that run the unit tests on Windows + Linux and a real end-to-end separation on Windows for every push.
- Separation engine: Demucs by Meta AI Research (MIT).
- GUI toolkit: CustomTkinter.
RealGoodSplits is released under the MIT License. Please respect the copyright of any audio you process — separate only music you have the rights to use.