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. Plus 28+ premium-quality stock plugins (4OSC, Bass303, DrumMachine, STKSynth, Sampler, ChannelStrip, Reverb, Delay, Chorus, Flanger, Phaser, Compressor, Limiter, NoiseGate, Distortion, Bitcrusher, Tremolo, AutoPan, TapeDelay, Wavetable, Mixer, ScriptFX, and more).
- Songbird Modular — End-to-end node-graph DSP editor — patch oscillators, filters, envelopes, and FX visually; the result compiles to the same DSP graph the regular plugins use.
- 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 (
songbird_sync::dispatch) ↔ Git (libgit2). 20 channel domains (mixer, clip, transport, ml, plugin, project, recording, engine, collab, export, settings, meters, notifications, separator, slicer, debug, fragments, visual, modular, protocols) with guards, echo suppression, and per-channel persistence strategy. Seesync engine. - Single dispatch path — Every UI ↔ backend call goes through one Tauri command (
native_invoke) routed bysongbird_sync::dispatch. Headless mode uses the same dispatch over a WebSocket transport; WASM uses an in-process transport.sendRT()provides 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).