Metronome

An accurate online metronome with adjustable tempo, time signature, accented downbeat, and tap tempo, built on the Web Audio API for drift-free timing.

By Marshkalk

Tap the button a few times in rhythm to set the BPM automatically.

Why the timing does not drift

A metronome built on a plain JavaScript timer such as setInterval drifts over a few minutes, because the browser only guarantees that the callback fires no earlier than the requested delay, never exactly on time. This tool instead schedules each click against the Web Audio API's own audio clock, queuing beats a fraction of a second ahead of when they need to play and re-checking that queue on a short interval, which keeps the tempo locked in even while the rest of the page is busy.

Reading the time signatures

The top number of a time signature is the count of clicks in one bar, and that is what the accented first click marks. 4/4 is the most common signature in pop, rock and most contemporary music. 3/4 gives a waltz feel with three beats per bar. Compound signatures such as 6/8, 9/8 and 12/8 group beats in threes, common in ballads, jigs and shuffle grooves.

Using tap tempo

Tap the tap tempo button in time with a recording or your own playing. After a couple of taps the tool averages the interval between them and sets the BPM field to match, which is quicker than guessing a number when you already have a feel for the speed but not its exact value.

Practising with a metronome

Starting a new passage below its target tempo and only raising the BPM once it is played cleanly a few times in a row builds reliable timing faster than repeatedly attempting it at full speed. The accented downbeat is there to help you feel where each bar starts without losing count, which matters most in longer passages or unfamiliar time signatures.