Perlines v2: browser audio visualizer (WebAudio + WebGL2) #1

Merged
aqua merged 7 commits from web-v2 into main 2026-11-10 17:08:39 +00:00

2026-11-06

Aqua
web: band-split dB-flux onset detector, synthetic drum bench
Replaces the log1p-compressed whole-spectrum flux with four-band flux in dB,
a two-frame max-filtered reference, a per-band median+8 MAD threshold with a
per-band minimum rise, and one refractory period. Level-independent.

tools/onset-bench.mjs synthesises kick/snare/hat patterns with known onset
times (3 patterns x 3 tempos x 3 levels x 3 beds = 81 signals), scores hit
rate, false positives and median timing at 30 fps and 512-sample hops.
tools/onset-legacy.mjs freezes the old detector for the before numbers.

Synthetic only. Nothing was listened to; no real music, no real GPU.
Corpus adjustments made after the first baseline run: coincident kick+snare
count as one onset; voices end in a 60 ms fade because truncation clicks read
as onsets in the near-silent gaps; hats raised relative to the snare tail.
Baseline was rerun after each change.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-06 12:34:14 +00:00

2026-11-05

Aqua
README front door: point at web/ v2, state unwatched status
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-05 19:05:22 +00:00
Aqua
web: bench fixes (done flag, readback sync), runner kills browser on failure, BENCH.md
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-05 19:05:15 +00:00
Aqua
web: per-band onset flux, scene intensity tuning from headless captures
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-05 19:03:51 +00:00
Aqua
web: README, headless CDP runner, dev server fix
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-05 19:00:11 +00:00
Aqua
web: WebGL2 scenes, audio inputs, analysis state, page
Aurora disk (spectrum-to-mesh extrusion), burning-water spray (stateless
onset-driven particles), vector trails (Perlin curl paths). File, mic and
synthetic demo inputs; frame-time HUD and ?bench mode.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-05 18:55:36 +00:00
Aqua
web: onset detector and key estimator with synthetic-signal tests
Spectral-flux onset detector (max-filtered reference, median threshold,
refractory) and peak-based chroma with Krumhansl profile key estimate.
Own FFT; no external dependencies.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-05 18:52:29 +00:00