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.
> YouTube support is a convenience for content you have the right to process
Seems like a great way to have your project taken down
Agreed, this is a very silly thing to include in an otherwise perfectly legitimate project.
I just want to say, kudos on your We Recommend section.
I was initially rolling my eyes at the "StemDeck... does not accept any money, sponsorship, or funding" line, here we go, another open source project that isn't thinking about practicalities... until I saw you were linking to others as pure recommendations. Just for the joy of what they do & how they've helped you and hoping they do the same for others.
The web used to have a lot more of that. It's a shame that doing so now often requires a disclaimer, and comes with the suspicion of being an influencer, or being done for SEO. And certainly many open source projects have done their part in corrupting the web too, accepting payment in return for SEO links on their pages. (Don't get me started on some of the things Mastodon accepted payment for...)
Thank you for bringing back that more hopeful, joyous part of the web and the music community.
Adding this to my homelab, thanks for the web browser option. How does your son use the backing tracks? Does he mute bass/drum, or play along with them?
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.
[flagged]