Hear your analysis — onset clicks + chirp playback

A 4-hit percussion pattern with hits at exactly [0.5, 1.0, 1.5, 2.0] s is analyzed two ways: the centered onset_strength envelope + peakPick must recover all 4 hits within ±1 hop (23 ms), and the quick-tier onsetDetect must find 4 within its honest uncentered-window bound (100 ms). Detections are sonified with audioio.clicks() and mixed over the pattern — the overlay clicks land audibly ON the hits. A C3→C5 audioio.chirp plays through AudioPlayer; its quarter-by-quarter zero-crossing counts must strictly increase (frequency-ramp proof). Numeric asserts node-verified.

percussion pattern — green: ground truth, cyan: onset_strength detections