Funny - Stage Tour (a Rock Band revival game) announced this week. There was a big chat in their Discord about AI, and stem separation was one of the use cases that came up.
As a side, it's a bummer how many similar names there are. I keep seeing stuff about Stream Deck too. Apparently it's a custom keyboard for videographers, but it gets confused with Valve's Steam Deck gaming hardware when I see it in my feed.
I built StemDeck, a free and open source desktop application that separates songs into vocals, drums, bass, guitar, piano, and other stems.
It started as a small project for my kid, who was learning bass and drums. Finding suitable backing tracks was surprisingly inconvenient. Most tools required an account, uploaded the audio to a remote server, imposed usage limits, or required a subscription. I wanted something simple that could process music locally.
StemDeck now includes:
- Local six-stem separation using Demucs
- NVIDIA CUDA, Apple Silicon MPS, and CPU processing
- Native releases for Windows, macOS, and Linux
- Local file support for MP3, WAV, FLAC, M4A, MP4, OGG, and Opus
- YouTube and SoundCloud imports
- Direct search for YouTube songs, playlists, and SoundCloud tracks
- Search-result previews before processing
- Playlist imports and a persistent, reorderable job queue
- A browser-based multitrack mixer with volume, mute, solo, and VU meters
- Waveform navigation, zooming, and loop regions
- Playback-speed and pitch-transposition controls
- Automatic BPM, key, scale, LUFS, and peak analysis
- A generated click track that follows the song
- Custom mix, loop-region, individual-stem, ZIP, and video exports
- A persistent local library with folders and search
- A mobile-friendly interface accessible over the local network through a QR code
- Docker and Unraid support
- An in-app updater and nine interface languages
The backend uses Python, FastAPI, Demucs, FFmpeg, yt-dlp, librosa, and Web Audio. The desktop shell is built with Tauri. Processing happens on the user’s machine, and audio is never uploaded to a StemDeck service.
There are no accounts, advertisements, subscriptions, credits, quotas, or telemetry. StemDeck is licensed under Apache 2.0, and I intend to keep it free and open source.
It is still alpha software. Separation quality depends on the source material, CPU processing can be slow, and there are undoubtedly edge cases I have not encountered. Feedback, bug reports, architectural criticism, and contributions are all welcome.
Look pretty. Can we load alternative stem separators like Spleeter, MDX-Net, and RoFormer implementations? I'd like to be able to AB them for different stems types.
As a side, it's a bummer how many similar names there are. I keep seeing stuff about Stream Deck too. Apparently it's a custom keyboard for videographers, but it gets confused with Valve's Steam Deck gaming hardware when I see it in my feed.
StemDeck now includes:
- Local six-stem separation using Demucs - NVIDIA CUDA, Apple Silicon MPS, and CPU processing - Native releases for Windows, macOS, and Linux - Local file support for MP3, WAV, FLAC, M4A, MP4, OGG, and Opus - YouTube and SoundCloud imports - Direct search for YouTube songs, playlists, and SoundCloud tracks - Search-result previews before processing - Playlist imports and a persistent, reorderable job queue - A browser-based multitrack mixer with volume, mute, solo, and VU meters - Waveform navigation, zooming, and loop regions - Playback-speed and pitch-transposition controls - Automatic BPM, key, scale, LUFS, and peak analysis - A generated click track that follows the song - Custom mix, loop-region, individual-stem, ZIP, and video exports - A persistent local library with folders and search - A mobile-friendly interface accessible over the local network through a QR code - Docker and Unraid support - An in-app updater and nine interface languages
The backend uses Python, FastAPI, Demucs, FFmpeg, yt-dlp, librosa, and Web Audio. The desktop shell is built with Tauri. Processing happens on the user’s machine, and audio is never uploaded to a StemDeck service. There are no accounts, advertisements, subscriptions, credits, quotas, or telemetry. StemDeck is licensed under Apache 2.0, and I intend to keep it free and open source. It is still alpha software. Separation quality depends on the source material, CPU processing can be slow, and there are undoubtedly edge cases I have not encountered. Feedback, bug reports, architectural criticism, and contributions are all welcome.