StemDeck splits songs into six stems, running fully offline

StemDeck is a free and open-source stem separation tool shared on Hacker News. It takes a local audio file (MP3, WAV, FLAC, OGG/Opus, MP4 or M4A) or a YouTube URL and splits the audio into up to six stems: vocals, drums, bass, guitar, piano and other. Separation runs on Meta AI's open-source Demucs model, specifically the six-stem htdemucs_6s variant, and the app auto-detects the best available Torch device (CUDA on NVIDIA GPUs, MPS on Apple Silicon, CPU as a fallback). An optional add-on splits lead and backing vocals further, using the UVR-MDX-NET Karaoke 2 model trained by Anjok07 as part of the Ultimate Vocal Remover project.
Once separation finishes, the stems open in a browser-based, DAW-style multitrack mixer: per-stem volume faders, mute, solo, and a monitor mode that solos one stem and clears the rest, plus live VU meters, waveform zoom, and a loop region you can drag on the ruler. Users can pick a subset of stems to keep; picking a subset adds a seventh lane holding the complement (the full song minus the selected stems) for A/B comparison, and a single mixed-down WAV of the selected stems can be exported via ffmpeg. The app also runs basic song analysis: BPM via a librosa beat tracker, key and scale with confidence scores, and loudness measurements (integrated LUFS and sample peak).
The project's own pitch is that it is a free, local alternative to cloud stem splitters such as Moises and LALAL.AI: no account, no quota, no uploads, and no subscription. Its makers state plainly that StemDeck does not store, cache, or redistribute any downloaded content, and that everything happens locally with nothing leaving the machine; YouTube import is framed as a convenience for audio the user already has the right to process, not a downloader feature in its own right. The makers also say the project takes no money, sponsorship, or funding from anyone.
Installation options include prebuilt macOS and Windows installers, a Docker image published to GHCR, an Unraid Community Applications listing, or building from source with Python 3.12, uv, and ffmpeg. On first launch, the desktop app downloads a Python runtime (about 500 MB), FFmpeg, and the Demucs model (about 170 MB); a source install needs roughly 170 MB of free disk for the same model. The default quickstart commands run the app locally on port 8000, though the project's run.sh script separately documents a default PORT of 8765 for its own launcher. Under the hood, the backend is FastAPI over Python 3.12, the desktop shells are built with Tauri v2, and the frontend is vanilla JavaScript with the Web Audio API and no build step.
Key facts
- StemDeck separates a song into up to six stems, vocals, drums, bass, guitar, piano and other, using Meta AI's open-source Demucs model (the htdemucs_6s variant).
- It runs entirely locally with no account, upload, or subscription, positioning itself as a free alternative to cloud services like Moises and LALAL.AI.
- An optional lead/backing vocal split uses the UVR-MDX-NET Karaoke 2 model trained by Anjok07 for the Ultimate Vocal Remover project.
- The desktop app downloads a Python runtime (about 500 MB) and the Demucs model (about 170 MB) on first launch; installers exist for macOS and Windows, plus Docker and source-build options.
- The built-in mixer supports per-stem volume, mute, solo, loop regions, and exporting a mixed-down WAV of selected stems, alongside BPM, key, and loudness analysis.
Why it matters
Stem separation, splitting a finished song back into its instrument and vocal tracks, used to require either a paid cloud service or hand-rolled scripts around a research model. StemDeck packages Demucs, an established open-source separation model from Meta AI, into a self-contained app with installers, a mixer, and analysis tools, so the barrier to trying it drops to downloading a file rather than setting up a Python environment. The pitch is explicitly not to out-perform commercial tools but to give the free, local, no-account option a proper interface.
Who it affects
The project targets people who want stems for personal use, remixing, practice, or study, and who would rather keep audio on their own machine than upload it to a cloud service. StemDeck's own description frames it as a companion to, not a competitor of, commercial products like Moises and LALAL.AI: it covers the core separation and mixing use case and stops there, leaving mobile access, deeper musician tooling, and top-end separation quality to the paid tools. It is not built as a YouTube downloader; YouTube import is described as a convenience for audio the user already has the right to process.
How to use it
Prebuilt installers are attached to GitHub releases for macOS and Windows; both download a Python runtime, FFmpeg, and the Demucs model on first launch and are self-contained afterward, storing library data in a relocatable folder. A Docker image is published to GHCR with edge, latest, and version-pinned tags, and the project is also listed in Unraid Community Applications. Running from source needs Python 3.12, uv, and ffmpeg; the documented quickstart serves the app on port 8000, while the project's run.sh launcher separately defaults to port 8765. GPU acceleration uses CUDA on NVIDIA or MPS on Apple Silicon, with CPU as a fallback.
How solid is it
StemDeck is built on well-established components rather than a new separation model: Demucs (htdemucs_6s) from Meta AI does the core six-stem split, and the UVR-MDX-NET Karaoke 2 model, trained by Anjok07 for the Ultimate Vocal Remover project, handles the optional vocal split. The backend is FastAPI on Python 3.12, the desktop shells use Tauri v2, and the frontend is plain JavaScript with no framework. The source text gives no benchmark of StemDeck's separation quality or speed against Demucs run standalone or against commercial tools, and names no specific open-source license, version number, or release date for the project itself.
Risks and caveats
The source names no license (MIT, GPL, or otherwise) for StemDeck, and gives no version number, release date, or adoption figures such as downloads or GitHub stars. First separation is slow because the app has to download the Demucs weights (about 170 MB); later runs are faster since the model is cached. Running on CPU only, without CUDA or MPS detected, will be markedly slower than GPU-accelerated separation. YouTube import depends on the user already holding the rights to the content being processed; the project does not claim otherwise.