Skip to main content

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

  • buildbuild_session_from_project and 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).
  • schedulercompute_scheduler_bookkeeping. Mirrors track headers and audition lanes into the live ClipScheduler without a full rebuild.
  • lifecycleregister_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.
  • EngineSession construction APIs (load_from_bird, EngineSessionBuilder) — those live next to EngineSession in songbird-engine by design. Pulling them out would force widening engine-internal APIs to pub for questionable benefit.
No UI dependencies.