Utils (utils/)
Build, validation, and developer tooling for the Songbird Rust workspace.
The directory is being migrated to a flatter convention: top-level entries
are extension-less single-purpose drivers (build-rs, validate,
export), and scripts grouped by concern live in subdirectories
(utils/build/, utils/validation/, …). During the migration some entries
exist in both locations — the top-level versions are the canonical ones to
invoke; subdirectory scripts are the implementation pieces called by them.
Top-level drivers
Subdirectories
Common workflows
Notes on export
The script wraps cargo run -p songbird-cli -- render and produces a
master-mix WAV. It does not support stem export or take-lane
variations from the command line — those run through the live audio
graph and are exposed only via the desktop app’s Export menu (right
toolbar → Export → Stems / Master + Take Lane Variations).
If you need batch CLI stems in CI, the underlying limitation is that the
offline render path (graph.process in a tight loop) doesn’t drive the
clip scheduler. See rust/crates/engine/songbird-export/README.md for
the full picture.
Migration status (utils/export vs utils/export.sh)
utils/export.sh is the historical name; utils/export is the new
extension-less form matching build-rs, release-rs, etc. Both files
currently hold the same script. Pick one to keep once the rename has
propagated through any external callers (CI, docs, muscle memory).