For developers
A DAW you can script, extend and read.
Cadenza is written in Rust. The interface, the AI producer, the command line and any MCP client all drive the same command API, so anything you can click, you can automate.
The AI is not a special path. It is one more client of the same commands.
Every command is validated before it runs and lands in the undo history with a label, whichever client sent it.
Command line
Compose, mix and render without opening the app.
Play, render, export stems, analyze loudness, import MIDI, or run the AI on a project. cadenza --help lists every command.
$ export OPENROUTER_API_KEY=sk-or-... $ cadenza compose "lo-fi ballad, 3 minutes, piano and strings" --out my-song --slug ballad $ cadenza chat my-song/ballad.cdz "add a bridge after the second chorus" $ cadenza mix my-song/ballad.cdz --target-lufs -14 $ cadenza render my-song/ballad.cdz -o ballad.wav
{
"mcpServers": {
"cadenza": {
"command": "cadenza",
"args": ["mcp"]
}
}
}MCP server
Plug your favourite AI client into a real DAW.
cadenza mcp serves the whole command API over stdio: tracks, notes, devices, mixing, analysis, the style library and rendering. Plugins stay sandboxed unless you pass --in-process-plugins.
Build from source
Rust, a few crates, one cargo build.
You need Rust and, on Linux, the ALSA headers. Optional features: mp3 for MP3 export and stretch for time-stretch and pitch-shift.
$ sudo apt install pkg-config libasound2-dev $ git clone https://github.com/Pep3M/cadenza.git && cd cadenza $ cargo build --release -p cadenza-cli -p cadenza-app -p cadenza-plugin-host $ ./target/release/cadenza-app
- cadenza-model
- cadenza-engine
- cadenza-dsp
- cadenza-mcp
- cadenza-agent
- cadenza-cli
- cadenza-app
- cadenza-plugin-host