Metronome — Keep Time While You Practise

Set the tempo, choose a meter, practice.

120 BPM

Why most browser metronomes drift

JavaScript timers are not precise enough for musical timing, and browsers throttle them in background tabs. A metronome that schedules each click with setTimeout will audibly wander within a minute.

This one schedules clicks ahead of time on the Web Audio clock, which runs independently of the page and is sample-accurate. The result stays in time whether or not the tab is in front — which is the difference between something you can practise with and something you cannot.

Practising with it properly

Set it slower than feels necessary. The point is to play a passage accurately, and accuracy at a slow tempo transfers upwards while inaccuracy at speed only entrenches itself.

A useful drill is to silence alternate beats once a passage is solid — keeping time in the gaps is much harder than following a click, and it is closer to what playing with other people requires.

Frequently asked questions

Does it stay accurate in a background tab?

Yes. Clicks are scheduled on the Web Audio clock rather than with page timers, which browsers throttle. Timer-based metronomes drift audibly within a minute.

What tempo should I practise at?

Slower than feels necessary. Accuracy at a slow tempo transfers upward; speed without accuracy entrenches the mistake.

Can I accent the downbeat?

Yes — set the time signature and the first beat of each bar is accented, which is what makes it useful for anything other than four-four.

Something wrong with this tool, or an idea for it? Tell us