-
feat(tide-table): put the machine's labels in front of ears, using the lab that already exists · b8bfec85
PLN: "dotn we have a webapp for listening to seams in a set? you could use it for me to confirm your labels. reusable tooling pattern." It does — armada/ui/bounds.html, the Boundary Lab. So this builds no second page. make_bounds.py generates the document that page already reads, which means the confirmation loop is the one that already stores calls per gig in localStorage and already exports boundaries-<gig>.json. That direction is the point. The three-lens fusion is a machine opinion: 11 of 18 segments have two lenses behind them, 4 are honestly unresolved, and the two rows that were WRONG were caught by PLN's memory rather than by any score. An analysis pipeline whose output lands in a report has nowhere to be corrected. The contract was read from BoundaryLab.tsx, not assumed, and two details would have been wrong if guessed: marks[].t is in MASTER time (the page subtracts clipStart itself), and `url` is handed to WaveformPlayer with dur = clipEnd - clipStart, so it must point at a CLIP of that length rather than at the whole recording. Mark keys are colour-coded by the page, so the segments where a lens OVERRODE the embedding get `takeover` — brand magenta, which its own comment calls "the one to try first" — because that is exactly where an ear call is worth most. Clips plus a mount rather than the whole file, following audio-mounts.json's own reasoning: it maps /audio/<prefix>/ for BOTH vite dev and armada/serve.py deliberately, since "a UI that only works under npm run dev is a demo, not a tool". A 40s clip also loads instantly on a phone over LAN, which is where this gets used. Peaks are normalised per clip because these are 40s windows of a room mic whose level wanders, and a waveform you cannot see is not a waveform. Verified rather than asserted: /bounds.html 200, the document 200 at 190 KB, a clip 200 at 641 KB, and a Range request returns 206 with exactly 1024 bytes — so seeking works, which is the whole point of auditioning on a phone.
PLN (Algolia) authoredb8bfec85
| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| bounds-cosmicfest-2026.json | Loading commit data... | |
| bounds-opal-festival-2026-release.json | Loading commit data... | |
| bounds-opal-festival-2026.json | Loading commit data... | |
| favicon.svg | Loading commit data... | |
| icons.svg | Loading commit data... | |
| judge-opal-festival-2026.json | Loading commit data... | |
| punkachien.json | Loading commit data... |