Songbird
Songbird is a collaborative DAW (Digital Audio Workstation) for electronic music production. It combines a Rust audio engine with a React-based UI, git-based collaboration, an LLM copilot, vibe-codable MIDI-editors/plugins/interfaces, and generative audio via Lyria/Magenta models.
DAW Features
- Arrangement View — Timeline with track lanes, section markers, scroll/zoom, and click-to-seek. Sections are defined in
.birdfiles and rendered as colored regions. - Piano Roll — Full MIDI editor with note draw/move/resize/delete, velocity lane, grid snapping, and round-trip serialization back to
.birdformat. - Mixer — Per-track channel strips with volume faders, pan knobs, mute/solo, 4 send controls, and plugin slot management (instrument, FX, channel strip). Optimistic real-time sync for collaborative mixing.
- Audio Metering — Real-time level meters, 16-band spectrum analyzer, stereo width, phase correlation, and balance — all at 60Hz with GPU-composited rendering.
- VST3/AU Plugin Hosting — Load any VST3 or Audio Unit plugin. Plugin editor windows, parameter scanning, and macro mapping for programmatic control. Redesigned stock plugin UIs with premium look-and-feel (4OSC, Bass303, DrumMachine, STKSynth, Sampler, ChannelStrip).
- Sheet Music & Guitar Tabs — Export and view sheet music and guitar tablature rendered from
.birdnotation. Supports standard notation, chord diagrams, and tab fingerings. - MIDI Recording — Record from hardware MIDI controllers with grid quantization. Recorded MIDI is serialized back to
.birdnotation. - Audio Recording — Record audio input to tracks with beat-aligned quantization.
- Easy Stem Export — Fast workflow to render individual stems (per-track WAV), master bounce (stereo WAV), and sheet music. Options to auto-name files with bpm/key for reuse.
- AI Copilot — Gemini-powered assistant with specialized agents (composer, mix engineer, sound designer, audio creator) that can create tracks, write patterns, set plugin parameters, adjust the mix, and generate audio via Lyria — all through chat or function calls. Supports inline AI generation via Option+click-drag on any track.
- Inline AI Generation — Option+click-drag on the arrangement timeline to generate audio (Lyria) or MIDI directly at any position. Visual drag-to-select region with real-time generation feedback.
- Vibe-Codable MIDI Editors — Build your own MIDI editor alongside the built-in piano roll. The copilot generates a React view on top of
.birdnotation and the clip IPC — step sequencer, isomorphic keyboard, probability matrix, whatever fits your workflow — reading and writing the same notes as the stock editors. - Vibe-Codable Plugins — Build your own plugins with FAUST for DSP and a React-based UI.
- Full Vibes Mode — Vibe-code the rest of the interface. Songbird exposes transport, tracks, clips, mixer, plugins, and
.birdnotation as a stable command surface, and the copilot generates React views on top of it — wired to the same IPC the built-in UI uses. The engine and commands stay fixed; only the interface is user-rewritable. - Groove System — Per-step timing and velocity offsets defined in
.birdfiles. Apply swing, humanization, and rhythmic feel to any pattern without altering the underlying notes. - Git-Based Undo/Redo — Every change is committed to an in-process git repo (libgit2). Full history panel with human-readable commit messages.
- Git-Based Collaboration — Projects include
.birdfiles, state files, and samples — all tracked in git (with LFS for audio). Multiple people can work on the same project concurrently — branch, merge, and resolve conflicts like code, not like bouncing stems over email. Figma-style multiplayer cursors show collaborator positions in real time. .birdNotation — A text-based music format (“Markdown for music”) that defines tracks, instruments, patterns, notes, chords, swing, groove, and automation in a human-readable syntax. Supports multi-line automation curves for detailed parameter control.
Architecture
Key Concepts
.birdfiles — A text-based music notation format. Defines tracks, instruments, patterns, notes, groove, and arrangement. Supports multi-line automation curves and per-step groove offsets. Seebird notation.- Sync engine — Central state router: React (Zustand) ↔ Rust (SyncEngineCore) ↔ Git (libgit2). Nine channel domains (mixer, transport, bird, AI, chat, plugins, etc.) with guards, echo suppression, and per-channel persistence strategy. See
sync engine. - Tauri IPC — React communicates with the Rust backend via 202+ typed IPC commands. Each returns
IpcResult<T>. ADirectEngineTransportprovides a real-time bypass path for slider drags. - Real-time audio — Lock-free, zero-allocation audio callback. Pre-allocated
AudioBufferandScratchPool,SpscRingBufferfor UI communication, rayon-parallel graph processing with topological sort. - Macro mapping — Semantic parameter names (
brightness,drive,comp_thresh) map to actual plugin parameters, enabling both.birdautomation and AI copilot control. - Collaboration — Built-in tunnel support for zero-config remote collaboration. Figma-style cursors, optimistic mixer sync, and structured merge for
.birdand state files. Seeserver/.
Project Structure
README.md with architecture details, design principles, and extension guidelines.
Getting Started
Seeinstall.md for full setup instructions (works with LLM coding agents out of the box).