One buffer, one entry point, four explicit strategies. The WAV is decoded
with the package's own decodeWav (no browser resampling), then
loop.detect(buffer, {strategy}) runs 'fast', 'precise',
'musical' and 'recurrence'. Each result is painted as a colored region on
the shared waveform. The fast row is asserted against
tools/goldens/loop_goldens.json (±441 samples, bpm
±0.1) — the same golden lock as examples/node/loop-detect.mjs
(node-verified: Δ ≤ 1 sample on all four golden WAVs). Recurrence must
report NO bpm field: it is tempo-free by contract and never invents one.
Click a table row to audition that strategy's loop via LoopPlayer.
| strategy | loopStart (s) | loopEnd (s) | confidence | bpm |
|---|