Absortio

Email → Summary → Bookmark → Email

claw-daw — offline, terminal-first MIDI DAW

https://www.clawdaw.com/ Feb 3, 2026 21:52

Extracto

Deterministic, agent-friendly MIDI DAW. Headless scripts + diffable JSON. Export WAV/MP3/MIDI.

Resumen

Resumen Principal

claw-daw se presenta como una innovadora Estación de Trabajo de Audio Digital (DAW) terminal-first diseñada explícitamente para la automatización y la generación musical reproducible. Su propuesta de valor central radica en permitir la creación de ritmos y composiciones de manera determinista y amigable con Git, integrándose perfectamente

Contenido

Offline • deterministic • agent-friendly

Make beats from the terminal—then diff, validate, and rerun them.

claw-daw is a terminal-first MIDI DAW designed for automation. Drive it with a TUI or headless scripts, export audio + MIDI + JSON, and keep everything Git-friendly.

Headless scripts

Agent-first workflow

Diffable JSON

Drum Kits + 808 presets

Genre Packs (style presets)

Novelty control

Acceptance tests

Transforms + bar:beat time

No cloud. No accounts. Just fluidsynth, ffmpeg, and a SoundFont.

What you get (agent-friendly artifacts)

out/*.json (project) · out/*.mid (MIDI) · out/*.mp3/.wav (audio)
Easy to archive, diff, review, and re-render in CI.

from-scratch — script, validate, export

# install (Linux)
$ curl -fsSL https://www.clawdaw.com/install.sh -o /tmp/clawdaw-install.sh
$ bash /tmp/clawdaw-install.sh

# sanity check
$ claw-daw doctor

# pick a SoundFont
$ claw-daw paths --soundfont

# write a new script (no template)
$ cat > tools/my_first_beat.txt <&lt 'EOF'
new_project my_first_beat 140
add_track Drums 0
set_kit 0 tight
new_pattern 0 d1 2:0
add_note_pat 0 d1 36 0:0 0:0:120 110
add_note_pat 0 d1 38 0:2 0:0:120 108
place_pattern 0 d1 0:0 8
export_project out/my_first_beat.json
export_midi out/my_first_beat.mid
export_mp3 out/my_first_beat.mp3 preset=clean
EOF

# validate + render
$ claw-daw --headless --soundfont /usr/share/sounds/sf2/default-GM.sf2 --script tools/my_first_beat.txt

Built for agent pipelines

If you’re wiring music generation into an agent workflow, claw-daw is optimized for:

Deterministic reruns
Same script + same seed + same version + same SoundFont → same outputs.

Reviewable changes
Projects are JSON so agents (and humans) can diff/PR changes.

Higher-level edits
Humanize/groove + transforms (transpose/shift/stretch/velocity) reduce “rewrite 200 lines” scripts.

Safety rails
Validate/lint/diff/analyze tooling to prevent broken renders in automation.

Open source, automation-friendly

claw-daw is intentionally lightweight and predictable.

Suggested CI flow

claw-daw doctor
claw-daw validate_project out/project.json
claw-daw diff_projects out/prev.json out/project.json
claw-daw --headless --soundfont <SF2> --script tools/run.txt

Tip: pin the version + SoundFont path for truly repeatable renders.

Deterministic by design

Same script + same seed → same beat. Great for iteration, A/B tests, and agent pipelines.

reproducible exports

One-shot building blocks

Use Drum Kits + 808 presets as first-class choices in scripts. Keep “sound” separate from “notes” so revisions are cheap.

set_kit / set_808 / set_glide

Genre Packs + novelty control

Offline prompt→script scaffolding with style presets (genre defaults) and similarity scoring so iterative attempts don’t collapse into duplicates.

prompt --max-similarity

Run your first headless render

Copy/paste these commands to generate a minimal project and export audio + MIDI + JSON.

claw-daw doctor
SF2=$(claw-daw paths --soundfont | head -n 1)
mkdir -p tools out
cat > tools/first_render.txt <&lt 'EOF'
new_project first_render 140
set_swing 14
add_track Drums 0
set_kit 0 tight
new_pattern 0 d1 2:0
add_note_pat 0 d1 36 0:0 0:0:120 112
add_note_pat 0 d1 38 0:2 0:0:120 108
place_pattern 0 d1 0:0 8
export_project out/first_render.json
export_midi out/first_render.mid
export_mp3 out/first_render.mp3 preset=clean
EOF
claw-daw --headless --soundfont "$SF2" --script tools/first_render.txt

Outputs: out/first_render.json · out/first_render.mid · out/first_render.mp3

Determinism scope (important)

Reproducibility depends on pinning your inputs.

Deterministic when the script/seed, claw-daw version, SoundFont, and render settings are the same.
May differ across versions/SoundFonts/OS audio tooling.

If you care about perfect reproducibility, record the chosen SoundFont path and claw-daw version in your run logs.

Best practice: prompting a song

The fastest way to get a good result is to prompt like a producer brief: references + constraints + arrangement + palette + deliverables.

Copy/paste prompt template

Make a 2:45 instrumental with a late-night, introspective vibe
(think Drake “Views” era, but original—no melodies from the reference).

BPM: 74. Key: A minor-ish (dark/ambiguous). Time sig: 4/4.

Sections (bars):
- Intro: 8 bars (pad + soft keys only, lots of space)
- Hook: 8 bars (add drums + 808/sub + simple top motif)
- Verse: 16 bars (strip the top motif, keep drums sparse)
- Final hook/outro: 8 bars (bring motif back, then fade)

Sound palette: drums sampler + 808/sub + warm pad + EP/keys + light bell/pluck.
Drums: snare on 3, hats quiet, occasional ghost snare, simple kick pattern.
Mix targets: mono low end, gentle reverb, smooth highs.

Deliverables:
- tools/views_style_v1.txt
- out/views_style_v1.mp3 (preset=clean)
- plus project JSON + MIDI

Turn a prompt into a script (offline):

# Best results: prompt an agent, then let the agent use claw-daw like a DAW.
# (Optional helper for scaffolding)
# Styles act like "genre packs": hiphop | lofi | house | techno | ambient
claw-daw prompt --out views_style_v1 --prompt-file prompt.txt --iters 3 --max-similarity 0.92

FAQ (the stuff that usually breaks)

What’s a SoundFont?
It’s a .sf2 file that turns MIDI notes into actual instrument audio. claw-daw uses it via fluidsynth.

Why do I get “command not found” after install?
The install uses a user-level bin directory. Restart your terminal, or add $HOME/.local/bin (Linux) / $HOME/bin (some mac installs) to your PATH. On Windows, run pipx ensurepath then restart PowerShell.

Is this a full DAW?
No—intentionally. It’s built for fast, reproducible sketches and automation.

How do I sanity-check my setup?
Run claw-daw doctor to verify fluidsynth, ffmpeg, and a SoundFont.

Get started

You’ll need fluidsynth, ffmpeg, and a SoundFont (.sf2). The installers below try to set this up for you.

Quick checklist

1) claw-daw doctor passes
2) You can see a SoundFont: claw-daw paths --soundfont
3) If CLI not found, fix PATH (see below) and restart terminal

curl -fsSL https://www.clawdaw.com/install.sh -o /tmp/clawdaw-install.sh && bash /tmp/clawdaw-install.sh

Best on Debian/Ubuntu • attempts common distros • installs fluidsynth, ffmpeg, a GM SoundFont (if missing), and claw-daw.

curl -fsSL https://www.clawdaw.com/install_mac.sh -o /tmp/clawdaw-install.sh && bash /tmp/clawdaw-install.sh

Requires Homebrew • installs fluidsynth, ffmpeg, a GM SoundFont (if missing), and claw-daw.

iwr https://www.clawdaw.com/install_win.ps1 -UseBasicParsing -OutFile $env:TEMP\clawdaw-install.ps1; & $env:TEMP\clawdaw-install.ps1

PowerShell • installs fluidsynth, ffmpeg, a GM SoundFont (if missing), and claw-daw.
Run in Administrator PowerShell to install system deps (Chocolatey).

sudo apt-get update
sudo apt-get install -y fluidsynth ffmpeg fluid-soundfont-gm pipx
pipx install claw-daw

Use this if you prefer explicit package installs.

After install

claw-daw --version
claw-daw doctor

If claw-daw is not found, restart your terminal. Still not found? Try: export PATH="$HOME/.local/bin:$PATH" (Linux) or export PATH="$HOME/bin:$PATH" (some mac installs).
Windows: run pipx ensurepath then restart PowerShell.
Linux/mac: you can also run pipx ensurepath and restart your terminal.

Update

Rerun the installer (safe) or use: pipx reinstall claw-daw

Prefer automation? Run headless scripts and export to out/.

What to expect (v1)

claw-daw is intentionally focused.

Great for: quick ideas, deterministic renders, agent automation, Git-friendly iteration.
Not trying to be: a full replacement for Ableton/FL Studio.

For realism: use a higher-quality SoundFont and tune your render preset.

Docs

If you want deeper details (commands, scripting reference, agent workflows):