ToooT 2.0.0 — Best-in-class open-source macOS DAW
Highlights
ToooT 2.0.0 ships ~15 000 lines of new, tested code. Full changelog: every feature below shipped as working code, not scaffolding.
Plugin hosting
- CLAP host (BSD-3, MIT-compatible) — BSD-licensed, real-time-safe, modern ABI. u-he / FabFilter / Arturia / Surge XT supported.
- VST3 host — direct Steinberg SDK integration (no JUCE dependency).
- AUv3 host — per-channel insert chains (4 inserts + 1 instrument per channel) and bus inserts on the 4 aux buses.
Mastering
- ITU-R BS.1770-4 LUFS metering (momentary / short-term / gated integrated).
- True-peak detection + look-ahead limiter AUv3.
- LUFS-normalized export to Spotify (−14) / Apple Music (−16) / YouTube (−14) / EBU R128 (−23) / Amazon Music.
- TPDF dither on bit-depth reduction.
- Multiband compressor (3-band Linkwitz-Riley) + Linear-phase FFT EQ (4096-point) bundled.
Composition
- Arrangement timeline view (Pro Tools / Logic paradigm).
- Session grid view (Ableton Live paradigm) with quantized clip launch.
- Piano Roll with CC lanes (velocity / mod / expression / pan / pitch bend).
- MIDI 2.0 MPE — per-note pitch bend + pressure with voice tracking.
- Arpeggiator — 6 modes with hold, octaves, gate probability.
- Music theory — 16 scales, 14 chord qualities, frequency-domain quantization.
- Scenes — capture / recall full mixer state, quantized boundary switching.
- Automation lanes with 5 curve types + read/write/touch/latch/trim modes.
Workflow
- ⌘K Command Palette with fuzzy match over every shipped command.
- Keyboard shortcut customization — ToooT / Pro Tools / Logic Pro presets.
- Undo history browser — 50-level stack, jump-to-step.
- Project auto-save every 60 s with crash-recovery prompt on relaunch.
- JavaScript scripting via JavaScriptCore — drive the DAW from user
.jsfiles. - Text-to-speech via AVSpeechSynthesizer +
/usr/bin/sayCLI integration. - Starter content — 32 in-code synthesized instruments (drums / bass / leads / pads / perc / FX).
- Template projects — Blank / Drum Starter / Ambient Pad / Techno Basic.
- MIDI panic (⌘.) — transport stop + all-notes-off on every MIDI channel.
Engine + performance
- Variable sample rate — 44.1 / 48 / 88.2 / 96 / 192 kHz end-to-end.
- Multi-core offline render — DispatchQueue.concurrentPerform with per-thread scratch pool (~4-6× speedup on M-series 8-core vs serial).
- Zero-allocation audio thread (Swift 6 strict concurrency).
- GPU DSP — 5-kernel Metal compute library (normalize, gain, pointwise-multiply, FIR convolve, softclip).
- SOLA time-stretch + pitch-shift on the sample bank.
- Track freeze / stems / mastered export paths wired end-to-end.
Quality
- UAT: 232 assertions / 0 failures.
- StressRunner: 11 integration scenarios / 0 failures. Includes byte-identical parity between serial + concurrent render, 10 k random UMP dispatch, 1000-file parser fuzz, 0.00 MB memory drift over 1000 render cycles (post-warm-up).
- FuzzRunner for CI gating.
.github/workflows/ci.ymlwith concurrency-warning gates and UAT pass-count gate.
Installation
brew tap mstits/tooot
brew install --cask tooot
Or download the DMG below and drag to Applications. macOS 14+, Apple Silicon.
Docs
- TUTORIAL.md — blank project to mastered export in 20 minutes
- ARCHITECTURE.md — render pipeline, thread model, snapshot bridge
- PLUGINS.md — AUv3 + CLAP + VST3 status and enablement
- MAD_FORMAT.md —
.madfile format spec - JIT_SHELL.md — complete JIT command reference
- FEATURE_ROADMAP.md — 39-item gap analysis vs commercial DAWs
Philosophy
Open-source first: BSD/MIT/Apache deps + open formats only. No JUCE, no Dolby Atmos, no Celemony ARA2, no AAF. CLAP is the strategic primary plugin format. DAW Project is the interchange path. Automerge-Swift is the eventual collab path.
macOS-native. No iPad / VisionPro / iOS gated-ecosystem work.