Audio workstation: tracker-first UI, first-order harmony, microtonal support, patcher DAG for events & DSP, VST3 hosting; planned piano roll, mixer, and arrangement views.
Status: very early. Do not use. Not possible to save. But tracker and patcher PoC is somewhat working.
- Engine (C++): scheduling, harmony, clip edits, audio graph, IPC.
- Plugin host (C++/JUCE): VST3 scan/instantiate/process, state, editor windows.
- UI (Rust/GPUI): tracker, palette, scale browser, SHM snapshot reader.
- Patcher (C++ + Rust bridge): event/control graph with deterministic DAG.
- Build system: CMake for C++ targets; Cargo for Rust UI.
- Example host binary:
build/juce_host. - UI app:
ui/daw-app(spawnsbuild/daw_engineby default; override withDAW_ENGINE_PATH). - C++ build (JUCE defaults to
$HOME/src/juce/JUCE; override with-DJUCE_DIR=...):
cmake -S . -B build
cmake --build build- Rust UI build:
cd ui
cargo build -p daw-app- Scan plugins (creates/updates cache):
./build/juce_scan --out build/plugin_cache.json --paths /path/to/VST3- Start UI (spawns
build/daw_engineby default):
cd ui
cargo run -p daw-app- C++:
ctest --output-on-failure(Phase 2 + Phase 3 suites). - Patcher:
ctest -R patcher_ --output-on-failure. - UI integration:
cargo test -p daw-app --test engine_integration.
- UI reads engine snapshots and sends commands via shared memory rings; see
SHM_LAYOUT.md. - Engine/host control-plane messages use fixed headers and typed payloads; see
apps/ipc_protocol.h.
apps/: engine, host, IPC, shared memory, scheduling, tests.platform_juce/: JUCE wrappers and utilities.plugins/: internal test plugins.patcher_rust/: Rust patcher bridge.ui/: Rust UI workspace (bridge, CLI, app).
- Timing is in nanoticks (960,000 per quarter note).
- Harmony is applied before note dispatch; microtonal tuning uses VST3 per-note cents.