Audio Apothecary
What it is
Audio Apothecary is a generative audio engine for building "Potions": timeline-driven auditory programs for focus, sleep and regulation. It's explicitly not a DAW, a sample player or a music composer. The stack is a Rust workspace (a portable, allocation-free engine core, a UI-agnostic controller, a device layer) bridged to a Flutter/Dart mobile app.
It's shipped, to my own phone. It ran end to end against my own acceptance checklist on 15–16 August 2026: install, hearing, pouring, combining potions, and a 33-minute locked-screen soak, all passing. It has never been published to an app store.
Why it exists
The name is the honesty policy. An apothecary mixes tinctures for a specific ailment; the research on functional audio shows real but inconsistent, individual effects, so the product is built for personal experimentation rather than a universal claim. No clinical or health-benefit claims anywhere in it.
How it's built
187 commits across 6 active days. Work ran in named, ID-tagged parallel lanes with a single-writer rule on the core engine file, and roughly 29 named architectural decisions were logged along the way. Two gates cover it: a CI-enforced check that runs the full test suite, lints, and two dependency-boundary greps proving the engine core never depends on UI or device code; and a second, non-CI mobile gate with its own distinct "blocked" exit code, separate from "failed."
What broke
On 11 August, before any real listening happened, I ran a five-agent review pass with independent web research against the finished build. It found two showstopper bugs the automated test suite had missed entirely. Stereo panning did not exist: a trig identity made the left and right gain formulas produce the same number for any pan value, so every pan position sounded identical. And the "master limiter" was actually a waveshaper with no threshold or envelope, applying constant audible distortion to every sample. Both were fixed the next day.
A later decision, logged as AD-20, had an agent infer that composing a new potion from scratch was out of scope for the phone app — never ratified by me. I reversed it and added a rule: every future decision carries an operator-or-agent tag until I ratify it.
Receipts
| Figure | What | Source |
|---|---|---|
| 187 | commits across 6 active days | git log |
| 1,211 | test functions (671 Rust + 540 Dart) | grep counts, current tree |
| 2 | showstopper bugs found by a 5-agent review, before any listening | project review, findings P0.2/P0.3 |
| 33 min | longest verified locked-screen background-audio soak, operator-run | listening log |
All measured. More on the receipts page.