Skip to content

stemdeckapp/stemdeck

v0.1.0-alpha.1 Feature

This release adds 3 notable features for engineering teams evaluating rollout.

✓ No known CVEs patched
Read the diff → Tool health → What is this tool? →

✓ No known CVEs patched in this version

Summary

AI summary

Broad release touches Highlights, Known limitations, Setup, and CI / quality.

Full changelog

First public alpha of StemDeck. Local, single-user audio stem
separation with a DAW-style mixer.

Highlights

  • 6-stem separation via Demucs htdemucs_6s. Auto-selects CUDA →
    MPS → CPU; ~3-5× speedup on Apple Silicon over CPU.
  • DAW-style waveform editor with min/max rendering, zoom, loop
    region drag, gold playhead, and stem-aligned lanes.
  • Per-stem mixer: volume fader, mute, solo, monitor (solo-only),
    with state synced between mixer and stems sidebar.
  • Stem subset extraction: pick which stems to keep on import. The
    studio surfaces a 7th "Original" lane (full song minus selection)
    for A/B reference, plus a downloadable summed mix.wav.
  • Live VU per stem: post-gain RMS via Web Audio with peak hold +
    slow falloff.
  • Song analysis in the now-playing card: BPM (librosa beat
    tracker), key + scale + confidence (Albrecht-Shanahan), integrated
    LUFS (BS.1770 via pyloudnorm), sample peak in dBFS.
  • Cancellable jobs at any pipeline stage (download, Demucs,
    ffmpeg amix). Active subprocess is terminated and the partial job
    dir is cleaned up.

Setup

  • macOS / Linux: git clone … && ./run.sh setup && ./run.sh start.
    The setup subcommand installs ffmpeg + uv via Homebrew or apt and
    runs uv sync.
  • Docker: docker compose -f build/docker-compose.yml up --build.
    No GPU on macOS Docker; Apple Silicon users should prefer the
    native install.

CI / quality

  • Woodpecker pipeline runs lint (ruff), unit tests (pytest), Python
    SAST (bandit), dependency CVE audit (pip-audit), and filesystem
    security scan (trivy fs + trivy config). No build/publish.
  • Container hardening: non-root app user in the runtime image.

Known limitations

  • Local-only / single-user. Not designed for multi-tenant hosting.
  • Single concurrent pipeline (asyncio.Semaphore(1)). Multiple jobs
    queue rather than running in parallel.
  • yt-dlp YouTube downloads are subject to YouTube ToS. See the
    Disclaimer in the README; usage is your responsibility.
  • Browser memory grows on long videos because each stem is decoded
    into a Web Audio buffer for the overview waveform.

Thanks

Demucs (htdemucs_6s), wavesurfer.js, ffmpeg, yt-dlp, librosa,
pyloudnorm — this project is glue around their work.

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

Share this release

Track stemdeckapp/stemdeck

Get notified when new releases ship.

Sign up free

About stemdeckapp/stemdeck

All releases →

Related context

Earlier breaking changes

  • v0.6.0-alpha.1 Moves library and stems storage from `~/Library/Application Support/` to `~/Documents/StemDeck/`.

Beta — feedback welcome: [email protected]