StemDeck Open-Source Local AI Stem Separator – Features, Comparison, and Usage
Quick Take
StemDeck is a free, open‑source desktop application that separates any audio file or YouTube video into six stems (vocals, drums, bass, guitar, piano, other) entirely on the user’s machine, eliminating the need for accounts, uploads, or subscriptions.
What StemDeck Does
- Accepts MP3, WAV, FLAC, OGG/Opus, MP4, M4A files or a YouTube URL.
- Uses Meta AI’s open‑source Demucs
htdemucs_6smodel to produce six stems. - Provides a DAW‑style multitrack mixer with mute/solo, volume faders, VU meters, waveform zoom, loop regions, and export of individual stems or a custom mix.
- Runs locally on Windows, macOS, and Linux; no audio leaves the computer.
- Optional on‑demand vocal/lead split via the UVR‑MDX‑NET Karaoke 2 model.
Note: The tool is a stem separator, not a downloader. You must own the source audio or have the right to process it.
Core Features
| Feature | Detail |
|---|---|
| Six‑stem separation | Demucs htdemucs_6s; auto‑detects CUDA, Apple MPS, or CPU |
| Import options | Drag‑and‑drop local files or paste a YouTube URL |
| Multitrack UI | Waveform canvas, per‑stem fader, mute/solo, monitor, live VU meters |
| Original backing track | 7th lane shows the complement of selected stems for A/B reference |
| Export | Individual WAV stems, custom mixed mix.wav, or MP3 via ffmpeg |
| Audio analysis | BPM, key/scale (librosa), LUFS (pyloudnorm), peak dBFS |
| Job control | Cancelable pipeline, automatic cleanup after configurable TTL |
| Library panel | Folder‑based organization, search, drag‑drop, trash |
| Cross‑platform installers | macOS DMG (Apple Silicon & Intel) and Windows ZIP (CPU or CUDA) |
| Docker & Unraid | Pre‑built images and community app for headless deployment |
Honest Comparison with Cloud Services
| Aspect | StemDeck | Moises / LALAL.AI (typical cloud) |
|---|---|---|
| Price | Free, forever | Freemium; credits or subscription required |
| Hosting | Local only | Cloud (audio uploaded) |
| Account | None | Required |
| Internet | Only for YouTube download & first model fetch (~170 MB) | Always required |
| Privacy | Audio never leaves machine | Audio stored on third‑party servers |
| Model | Open‑source Demucs htdemucs_6s |
Proprietary, often higher quality |
| Stem count | 6 | Up to 10 |
| Speed | Depends on user hardware (GPU fast, CPU slower) | Fast (server‑side) |
| Batch | Single job at a time | Batch on paid plans |
| Mobile app | No | iOS/Android apps |
| Extra tools | None (no pitch shift, lyrics, click track) | Varies, often includes many musician tools |
| UI polish | Functional, hobby‑grade | Production‑grade |
| Source code | Open, forkable | Closed |
Choose StemDeck for privacy, zero‑cost, and offline use; choose a commercial service for higher quality, batch processing, or mobile access.
Installation Overview
macOS
| DMG | GPU support |
|---|---|
StemDeck-macOS-arm64.dmg |
Apple Silicon (MPS) |
StemDeck-macOS-x64.dmg |
Intel (CPU) |
The first launch downloads a bundled Python runtime (500 MB), FFmpeg, and the Demucs model (170 MB). Subsequent launches start in seconds. Gatekeeper may require “Open” from the context menu.
Windows
| Zip | GPU support |
|---|---|
StemDeck-Windows-x64.zip |
CPU only |
StemDeck-Windows-x64.NVIDIA.zip |
NVIDIA CUDA |
Extract anywhere and run StemDeck.exe. All dependencies live in a data/ folder next to the executable, making the app fully portable.
Technical Stack
- Python 3.12 managed by uv
- FastAPI backend serving REST + Server‑Sent Events
- Demucs (
htdemucs_6s) for six‑stem neural separation - Optional UVR‑MDX‑NET Karaoke 2 model for lead/backing vocal split
- yt‑dlp for YouTube audio extraction
- FFmpeg for transcoding and mixing
- librosa for BPM/key detection; pyloudnorm for loudness (ITU‑R BS.1770)
- Tauri v2 (Rust + WKWebView/WebView2) for native desktop shells
- Frontend: vanilla JavaScript + Web Audio API; waveforms rendered on
<canvas>with min/max sample rendering
Running as a Web Server (Python‑only)
# Clone and install
git clone https://github.com/stemdeckapp/stemdeck stemdeck && cd stemdeck
uv sync # installs dependencies
uv run uvicorn app.main:app --host 127.0.0.1 --port 8000
Open http://localhost:8000 in a browser. For GPU acceleration on Linux with NVIDIA, install the CUDA‑enabled torch wheel and set STEMDECK_DEMUCS_DEVICE=cuda.
Docker alternative (pull from GHCR):
docker run -d --name stemdeck -p 8000:8000 \
-v /path/to/jobs:/app/jobs \
-v /path/to/cache:/cache \
ghcr.io/stemdeckapp/stemdeck:latest
The container bundles CUDA‑enabled torch, so no host‑side CUDA install is needed.
Usage Walk‑through
- Import – Drag a file onto the bar or paste a YouTube URL.
- Select stems – Click stem chips (defaults to all six).
- Process – Click Process; the UI shows pipeline stages (upload, download, analyze, separate, mix).
- Mix – Use the multitrack controls:
Mmute,Ssolo,Monitorsolo‑only, volume faders, loop region, zoom (+/-/Fit). - Export – Click Download Mix for a summed WAV, or export individual stems via the sidebar.
Keyboard shortcuts: Space play/pause, [/] seek ±5 s, L toggle loop, I/O set loop in/out, Shift+wheel coarse volume, plain wheel fine volume.
Community Feedback Highlights
- Positive reception: Users praised the accuracy and convenience, noting “pretty accurate” results and “incredibly cool” experience. (Comment by
magicmicah85) - Model discussion: Several commenters clarified that StemDeck is a thin wrapper around the existing
htdemucsmodel, not a new model. (ipsum2) - Alternative tools: Suggestions included Nuo Stems for DJ integration, Audacity with OpenVINO plugins, and a WebAssembly ONNX port of Demucs. (
Stitch4223,tlahtinen,bakkoting) - Feature requests: Users asked about rhythm‑guitar separation, MIDI conversion of stems, and Android support. (
BrokenCogs,RobotToaster,2Gkashmiri) - Technical curiosity: Questions about packaging size, GPU memory usage, and port conflicts were raised, highlighting the complexity of bundling Python/PyTorch with native installers. (
yeasin-arafat)
Limitations & Known Issues
- Quality bound to Demucs: Separation quality depends on the source material and the
htdemucs_6smodel; it may be lower than proprietary cloud services. - Hardware constraints: CPU‑only processing can be slow; GPU acceleration requires CUDA (NVIDIA) or Apple MPS support.
- No mobile app: Currently only desktop and web‑server deployments; Android/iOS not provided.
- Single‑job queue: Only one job runs at a time; batch processing requires a cloud service or custom scripting.
License and Contribution
StemDeck is released under the Apache 2.0 license. The repository welcomes issues, feature suggestions, and pull requests. Build instructions for native macOS apps, Docker images, and manual Python runs are provided in the README.
Quick Reference Table (Environment Variables)
| Variable | Default | Purpose |
|---|---|---|
STEMDECK_DEMUCS_DEVICE |
auto |
Force torch device (cuda, mps, cpu) |
STEMDECK_DEMUCS_MODEL |
htdemucs_6s |
Model name |
STEMDECK_JOBS_DIR |
./jobs |
Directory for job outputs |
STEMDECK_MAX_DURATION_SEC |
1200 |
Reject files longer than 20 min |
STEMDECK_JOB_TTL_SECONDS |
86400 |
Auto‑delete jobs after 24 h |
STEMDECK_MAX_PENDING_JOBS |
3 |
Max queued jobs before 503 response |
Bottom Line
StemDeck delivers a fully offline, privacy‑first workflow for extracting six musical stems using state‑of‑the‑art open‑source AI. While it lacks the polish, batch capabilities, and extra musician tools of commercial cloud services, its zero‑cost, open‑source nature makes it an attractive option for hobbyists, educators, and anyone who wants full control over their audio data.
Sources
Related
- Project
- Project
- Project
- Project
- Project