Adjustable BPM click track with tap tempo. No download, no plugin.
100
BPM
How it works
The click track uses a lookahead audio scheduler - every 25ms it checks whether the next beat is due within the following 0.1 seconds and, if so, queues an oscillator beep for that exact moment via the Web Audio API, which keeps the tempo accurate even though JavaScript timers on their own aren't. Tap tempo averages the gaps between your recent taps, discarding any tap more than 3 seconds after the last one, to set the BPM.
FAQ
Why does tap tempo need more than one tap?
A single tap has no interval to measure - it needs at least two taps to compute a gap, and it keeps averaging every tap you make within a 3-second window for a more stable reading.
Why does the beat stay on time even if my browser tab is busy?
Clicks are scheduled ahead of time directly on the Web Audio clock rather than played the instant a JavaScript timer fires - a scheduler running every 25ms just keeps queuing beats slightly before they're due, so timer jitter doesn't reach the actual audio timing.
Free, unlimited, no account. If this saved you a paid tool, a small thanks is appreciated.