> ## Documentation Index
> Fetch the complete documentation index at: https://songbird.studiocollective.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# songbird-separator

# 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

```bash theme={null}
cargo test -p songbird-separator
```
