Skip to main content

songbird-separator

Audio stem separation for Songbird. Splits audio into isolated stems (vocals, drums, bass, other) using ML models via ONNX Runtime.

What it owns

  • Stem separation pipeline (decode → STFT → inference → iSTFT → write stems)
  • Model-specific pre/post-processing configuration (BS-RoFormer, HTDemucs, etc.)
  • Audio I/O for the separation workflow (decode any format, write stem WAVs)

Public API

  • separate() — main entry point: takes audio file path, returns stem file paths
  • SeparatorConfig — model selection + output preferences
  • SeparatorModelConfig — per-model STFT params, stem names, chunk sizes
  • StemResult — output paths + metadata

How it fits

Depends on songbird-inference (ONNX session, model download) and songbird-dsp (STFT/iSTFT). Called from the separator sync channel in songbird-sync.

Tests

cargo test -p songbird-separator