Metronome & Tap Tempo

Microsecond-accurate timing using audioContext.currentTime. Tap the beat to detect BPM.

90
BPM
Andante
Tap here repeatedly to detect the BPM
Keyboard: Space starts/stops · T taps tempo · / adjusts BPM by 1.

Scheduling uses AudioContext.currentTime for sub-millisecond accuracy — far more stable than setInterval or setTimeout, which drift when the OS is busy.