songbird-session
Runtime session orchestration. Sits between persisted project state (songbird-state) and the live audio engine (songbird-engine),
turning a StateManager snapshot into a fully-built, ready-to-play
EngineSession — graph, scheduler, plugins, sends, and returns.
Used by both the Tauri desktop app and the headless server, so each
host only needs to wire in its own progress reporting and asset
registration.
Modules
build—build_session_from_projectand variants. The bird → session pipeline: parses clips into the scheduler, instantiates stock- hosted plugins, wires send/return routing. Progress callbacks are optional (used by the desktop shell to drive the loading sequence).
scheduler—compute_scheduler_bookkeeping. Mirrors track headers and audition lanes into the liveClipSchedulerwithout a full rebuild.lifecycle—register_ring_buffer_clips_with_pool. Per-session asset registration (ring-buffer pre-fill / read pool wiring). Future home for start / stop / hot-swap orchestration.
What it does not own
- Engine-lifecycle orchestration (session activation, device
management, plugin editor hosting) — that is
songbird-orchestrator. - Project open/save, template bootstrap — that is
songbird-project. EngineSessionconstruction APIs (load_from_bird,EngineSessionBuilder) — those live next toEngineSessioninsongbird-engineby design. Pulling them out would force widening engine-internal APIs topubfor questionable benefit.