Repository navigation
v0.2.0
·
52 commits
to main
since this release
Immutable
release. Only release title and notes can be modified.
The first tagged release. Open a session in several terminals, give each window its own instrument, let an agent write parts, and every window stays on the same song.
Renamed from Track to dawg
The project, CLI and package are now dawg: the command is dawg, the daemon dawgd, the package @hraness/dawg and the repository hraness/dawg (the old hraness/track URLs redirect). Environment variables are DAWG_*, workspace state lives in .dawg/, config in ~/.config/dawg, and gateway keys in the Keychain service dawg (new keys are named dawg-<host>).
Install
curl -fsSL https://dawg.sh/install | sh
# or
bun add -g https://github.com/hraness/dawg/releases/download/v0.2.0/hraness-dawg-0.2.0.tgzAdded
- Stereo renderer. Renders and
dawg renderWAVs are now interleaved stereo with equal-power pan, a ping-pong stereo delay and a stereo reverb, and stay byte-identical across runs. - Reverb send.
reverb <mix> [size]/reverb offper track, a deterministic Freeverb-style network (eight damped combs and four allpasses per channel). The agent'sset_effectstool takesreverb {mix, size}ornull. - More automation lanes.
automate resonance|delay-feedback|delay-mix at <beat> <value>(andclear <lane> automation), validated by the planner and available to the agent'sset_automationtool. - Gapless audio engine. Playback streams a seamless loop as raw PCM into one long-lived
ffplay(or SoXplay) process. Edits, tempo changes and seeks swap the buffer in place without restarting playback, and the write position stays anchored to the shared transport clock. On macOS without either,afplayreplays a re-rendered loop.dawg auth statusand/authshow the backend;DAWG_AUDIO_BACKENDandDAWG_AUDIO_PLAYERoverride it. - Drums and effects (#8). A
kitinstrument with kick, rim, snare, clap, hats and tom, written withhit <voice> at <beat>,pattern <voice> <beats...>orpattern <voice> every <step>. A track nameddrumsgets the kit automatically. Per-track low-pass filter (filter <hz> [res]), tempo-synced delay (delay <beats> [fb] [mix]), filter automation,solo/unsoloandredo. - Streaming agent (#9). Requests that aren't direct commands go to a streaming, tool-calling agent on Vercel AI Gateway (
opus-5.5orsol-6.1, switch with/model). It edits only through typed, validated tools, and each accepted call becomes its own revision. Esc cancels and keeps what was accepted. Enter steers the turn in progress. - dawgd (#10). One local daemon per session, started by the first window. Every window sees the same revisions, presence and transport, so play in one window plays everywhere. It recovers from crashes, and if the daemon can't start, windows fall back to the file lock.
dawg sessionslists the sessions in a workspace. - New terminal UI (#11). A highway where notes stream toward a hit line, with sustain beams, hit bursts and drum lanes. It adds an activity strip of operation cards, a themed multiline prompt with steer and queue modes, and a transcript (
Ctrl+Oor/log). Themes are/theme default|high-contrast|mono./motion offor--reduce-motiongives static states.NO_COLORis respected. - Login and providers (#12).
dawg logincreates an AI Gateway key with the Vercel CLI, or takes a pasted key.dawg login --xcbuses a Claude, Codex or Devin subscription through xcb.dawg auth statusanddawg logoutmanage it. Keys are kept in the macOS Keychain or a 0600 file and never in.dawg/. - Named sessions (#13). Sessions are named automatically from what you play, and you can rename them with
/rename <name>(or hand the name back with/rename --auto)./fork [name]branches a song (night drive→night drive 2)./sessionslists them and/resumepicks one. Plaindawgwindows claim the next open track, so three windows on a three-track song restore drums, bass and keys, and a fourth gets a draft track. dawg render <out.wav>writes the current session (or--session, or--import file.track.json) to a WAV without starting audio. The same score always produces the same bytes, and the sha256 is printed./statusshows the session name, revision, composition digest and whether the window is on dawgd or the file fallback.- An end-to-end suite that runs real
dawgwindows in PTYs against a live dawgd, now part ofbun run checkand CI.
Fixed
- In demo mode,
--track drumsseeded the melodic demo notes, which played as rim hits. It now seeds a kick, snare and hat groove.
Not yet
- dawg is not published to npm. Install from the GitHub Release tarball until a trusted publisher is configured.