🥁 METRONOME
Tight metronome, in your browser.
Web Audio look-ahead scheduling — sample-accurate timing. 30-300 BPM, four time signatures, tap-to-set tempo, accented downbeat. No app, no signup.
120
BPM
Subdiv:
Bars:
VOL
70
Common:
Don't know the BPM? Tap along — we'll average
your taps.
Spacebar works too.
How it works. A naive
setInterval metronome drifts by 5-15 ms per
second — terrible for practice. We use the Web Audio
look-ahead pattern: a setInterval running every 25 ms checks
whether the next beat falls inside a 100 ms scheduling window
and, if so, queues an oscillator to fire at exactly the right
audioCtx.currentTime. The audio thread handles the
timing — the JS thread just schedules ahead. Result: rock-solid
click track regardless of frame rate or tab background. Pair
with the BPM detector to find
the tempo of any track, then practice to it here.