Skip to content

ToooT 2.0.0 — Best-in-class open-source macOS DAW

Choose a tag to compare

@mstits mstits released this 17 Apr 01:53
· 30 commits to main since this release

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 .js files.
  • Text-to-speech via AVSpeechSynthesizer + /usr/bin/say CLI 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.yml with 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

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.