thclpr
For overall reference:
"In audio production, a stem is a discrete or grouped collection of audio sources mixed together, usually by one person, to be dealt with downstream as one unit. A single stem may be delivered in mono, stereo, or in multiple tracks for surround sound."
Other options may be available but for me FFmpeg provides mature, well-tested support for decoding, transcoding, resampling, mixing, and muxing across a wide range of formats. Web Audio handles synchronized multitrack playback, per-stem gain, mute and solo, metering, looping, speed control, and the browser-based mobile interface. Since the separation model already depends on Python and PyTorch, rewriting the surrounding audio stack in Rust would not remove the largest runtime dependency.
As for RUst itself its currently used for the Tauri desktop shell and process lifecycle. A native Rust audio engine may make sense later if it produces a measurable improvement in latency, memory use, or reliability, but replacing proven components purely for architectural consistency would add considerable complexity.
For the vibe coding part:
AI tools have assisted with development, and I am transparent about that. However, the architectural choices are deliberate, the code is reviewed, and the project has automated backend and browser testing. I would still welcome specific technical criticism or examples of places where the current design is causing real problems.
That's where my background kicks in, seasoned musician here with over 25+ year working on IT industry, so as i like to joke, im the maestro of the orchestra :)
On another words. i actually know how to cook , but to do it faster i need the assistances otherwise as a family man, I would never have the time to ship that and help my kid on a useful time.
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.