0.8.0 Alpha 11
Important
macOS first launch (no code signing yet). After dragging StemDeck to Applications, clear the Gatekeeper quarantine flag or macOS will say the app is damaged:
xattr -dr com.apple.quarantine /Applications/StemDeck.app
Optional: start from a clean slate. To reproduce a true first-run experience, open each path in Finder via the Go menu, then Go to Folder (Shift+Cmd+G), and move the folders to Trash:
~/Library/Application Support/StemDeck~/Library/WebKit/app.stemdeck.desktop~/Library/Caches/stemdeck~/Library/Caches/app.stemdeck.desktop
You can also delete ~/Library/Preferences/app.stemdeck.desktop.plist the same way. This is optional; the app will work without it.
What's new in 0.8.0 Alpha 11
This release is a performance pass on top of last release's resilience work, plus two diagnostics/troubleshooting additions.
Separation is faster, especially back-to-back on GPU
StemDeck no longer spawns a fresh process and reloads the model from scratch for every single track. A warm worker now stays loaded between jobs on the same device, so the second (and third, and...) track you separate skips straight to the actual work. Measured on an RTX 3080: a job that used to take ~14s now takes ~7s once the worker is warm — GPU separation was spending over a third of its time on process startup alone, since GPU compute is fast enough that the fixed overhead used to dominate. CPU separation, where the actual work already dwarfs startup cost, is unaffected.
Lower memory use computing waveforms
Loading a full stem into memory to compute its waveform peaks used to spike memory by ~420 MB per stem, right after Demucs had already stressed it — a plausible contributor to out-of-memory failures on machines with less RAM. Peaks are now computed in a single streamed pass with constant memory, and stem presence (the little loudness bars) piggybacks on that same pass instead of decoding every stem a second time.
New "Best" separation quality option
Settings → General → Separation quality now offers Best, which runs separation twice with randomized time shifts and averages the result for cleaner stems, at roughly twice the processing time. Standard (the previous, only) behavior stays the default.
Repeated exports are instant
Downloading the same mixdown twice (same stems, gains, region, and format) used to re-run the full ffmpeg render every time. Identical exports now serve from a cache instead — the first download renders as before, every repeat is immediate.
Settings → Registry: read-only view of the job registry
Useful for diagnosing sync issues between what the app's library shows and what's actually persisted on disk, without leaving the app or digging through the filesystem.
Settings → General → Reset app data
A proper way to wipe all local track/job data and start fresh, for troubleshooting. This replaces manually deleting folders, which didn't actually work on Windows — the runtime state that persists across reinstalls lives in ~/Documents/StemDeck (AppData-adjacent on Windows), not in the extracted package's own bundled data/ folder. Guarded behind a type-to-confirm dialog; on a shared server this affects everyone who uses it, which the dialog says explicitly.
Installing
- macOS: drop the
.appinto Applications and launch (run thexattrcommand above first). - Windows: unzip the downloaded
.zip, then runStemDeck.exefrom the extracted folder. - Linux: download the
.tar.gzfor your hardware, extract it, and run./StemDeck. Install the WebKitGTK + GTK runtime prerequisites first (FFmpeg is fetched automatically on first launch):The NVIDIA build additionally needs a working NVIDIA driver such thatsudo apt install libwebkit2gtk-4.1-0 libgtk-3-0nvidia-smireports your GPU (the CUDA runtime itself is bundled -- no separate CUDA toolkit install needed). If you have no NVIDIA GPU, use the CPU-only tarball. - Docker / Unraid: install "StemDeck" from Unraid Community Applications, or pull
ghcr.io/stemdeckapp/stemdeck:edgeand map port 8000 plus the/app/jobsand/cachevolumes. Add--runtime=nvidiafor GPU acceleration. See the README for the fulldocker runcommand.