~/todd-fleeman/lab — session log entry

~/lab/visualizer

started 2024-03 · last touched 2026-07-20

A frequency-reactive visualizer that turns whatever's playing into moving shapes on screen.

why this exists

Pulled out of mothballs while debugging the Jukebox's still-open active-character glow bug — needed a smaller surface to test animation-frame timing against, away from the rest of the Betwixt codebase.

pick a voice

Vidya Patil

Lucy Walters

Johnny DJ

Chris Cosell

0:00 / 0:00
Vidya Patil
Vidya Patil
Politician
built on / learned
Web Audio API
Canvas
CORS / crossOrigin gotcha

Analyser node throws a silent SecurityError if the <audio> element's crossOrigin isn't set before the src is assigned, not after. Cost an afternoon before I noticed the error was silent.

Two Sanity clients, on purpose

One client resolves the character asset (has to be a live GROQ dereference query, not a hardcoded CDN URL, or asset updates go stale). The other is the read-only client for everything that isn't the audio source. Keeping them separate is what made the dual-client setup provable.

where this might go

Graduate into Betwixt as a real character-audio feature, or stay a standalone demo? The glow-bug tie-in argues for graduating it; nobody's asked for audio-reactive characters yet, which argues for leaving it alone.