Online Metronome

A precise online metronome with a 30 to 250 BPM slider, tap tempo, four time signatures and an accented downbeat that will not drift over a long session.

๐ŸŒ Espaรฑol

120 BPM

4/4 time โ€” beat 1 of every measure plays a higher, louder accent click. Tap the "Tap Tempo" button a few times in rhythm to set the BPM automatically.

๐Ÿ”’ Private by design: everything runs locally in your browser and never uploaded to any server.

Getting a beat going, and changing it mid-practice

  1. Drag the BPM slider, or type a number into the box beside it, to set a tempo between 30 and 250. The large figure above the controls is the value currently in force; the page opens at 120.
  2. Pick a Time signature from the dropdown. The four choices are 4/4, 3/4, 2/4 and 6/8, and each one sets how many clicks go by before the accent comes round again.
  3. Click โ–ถ Start. The button becomes โ–  Stop, and the circle above the tempo readout lights up.
  4. Move the slider or switch the signature while it runs. Nothing restarts; beats that have not been queued yet pick up the new value.
  5. Click โ–  Stop when you are finished, or just leave the page, which shuts the audio down for you.

Nothing here is uploaded, and no sound exists before you press start, because the browser audio context is not created until that click happens.

The lookahead scheduler behind the click

The obvious way to build a metronome is a repeating timer set to sixty divided by the tempo, firing a click each time. It is also the way that quietly ruins a long practice session. Browser timers are not precise, and every few milliseconds of lateness is added to the last, so the click you hear in minute twenty is not where the click in minute one implied it would be.

This tool splits the job in two, the way most serious Web Audio metronomes do. A timer fires every 25 milliseconds and does nothing audible at all. Its only job is to ask a pure function which upcoming beats fall inside the next 0.1 seconds of the audio hardware clock, then hand each of those to an oscillator with an exact start time attached. The playback instant is set by the audio clock, which is sample-accurate; the timer is merely the thing that remembers to look ahead. A tick that runs 15 milliseconds late still queues the same beats at the same moments.

That split is why the scheduling decision could be tested at all. It takes a clock value as an argument rather than reading one, so the test suite feeds it synthetic times, including a deliberately late tick that has to catch up by queueing three beats at once. The oscillator side is not tested, and cannot honestly be: there is no real audio clock in a Node test runner, and no way here to independently measure audible timing.

There is a consequence to that short lookahead. When you drag the slider, beats already sitting in the queue keep their old spacing, so the change lands a fraction of a second later rather than instantly. Switching signature mid-run behaves similarly, and the beat counter does not jump back to one; it simply wraps at the new measure length, which sorts itself out within a beat or two.

Tap Tempo, and why it forgets after two seconds

Half the time you do not have a number, you have a feel. Click Tap Tempo in rhythm and the tool timestamps each click, averages every gap in the current run, converts that to beats per minute and clamps the result into the 30 to 250 range. Two taps are enough to produce a figure; more taps make it steadier, because they all feed the same average.

The two-second rule matters more than it sounds. If you stop tapping and come back later, that long pause would be folded into the average as though it were a musical interval and drag the tempo down absurdly. So any gap longer than two seconds throws the previous run away and starts counting again from that tap. The button label shows the running count, so you can see when it has reset.

If tap tempo is the whole reason you came, the dedicated BPM Counter is the better fit: it accepts taps from any key as well as the pad, averages over a rolling window of the last eight intervals rather than the whole run, and puts a consistency score next to the number so you can see how steady your tapping actually was.

1500 Hz on the downbeat, 1000 Hz on the rest

An accent that only exists on screen is not much use when you are looking at sheet music. Beat one of each measure is generated at 1500 Hz with a peak gain of 0.7; every other beat is 1000 Hz at 0.45. Both are plain sine tones lasting fifty milliseconds, ramped down to near silence rather than cut off, which is what keeps them from clicking in the unwanted sense of the word.

The visual side is deliberately simple. The circle sits lit while the metronome runs and swells to its largest, darkest form on the downbeat, then returns to the smaller lit state for the rest of the measure. So what you actually see is the measure boundary, not every individual beat. If you want a steady reference pitch to tune against rather than a percussive click, the Tone Generator holds a continuous tone at any whole frequency from 1 Hz to 20 kHz.

Four time signatures and what 6/8 really means here

Treat the four options as measure lengths rather than full notation. 4/4 gives four clicks per measure, 3/4 gives three, 2/4 gives two, and 6/8 gives six. What 6/8 does not do is change the note value the tempo refers to. The BPM number is always clicks per minute, so setting 6/8 at 120 gives you 120 evenly spaced clicks a minute grouped in sixes, not 120 dotted-quarter pulses. If you think in dotted quarters, set the click tempo to three times the pulse you want and accept that every eighth note gets a click.

There is no subdivision control, no swing, no count-in, no tempo ramp and no saved preset list. That is a genuine limit rather than an oversight worth pretending around, and if you need those, a dedicated practice app is the honest answer. What is here is a metronome that starts instantly, keeps its tempo, and costs nothing.

For the rest of the browser-based audio kit, including tuners, generators and analysers, the audio tools hub lists them all, and the audio tools guide walks through which one to reach for when.

See it in action

Screenshot of the Online Metronome tool with the metronome stopped at 100 BPM in 4/4, with its BPM slider, tap-tempo button and accent options
Online Metronome mid-process: the metronome stopped at 100 BPM in 4/4, with its BPM slider, tap-tempo button and accent options.
Screenshot of the Online Metronome result screen showing the metronome running โ€” the beat indicator lit, the Stop button showing and the beat counter advancing through the bar
The finished result: the metronome running โ€” the beat indicator lit, the Stop button showing and the beat counter advancing through the bar. The download link is a local blob URL โ€” the file never leaves your device.

Frequently asked questions

What tempo range does the slider cover, and what does it open on?

The slider runs from 30 BPM to 250 BPM in whole-number steps, and the page loads at 120 BPM. The number box beside it takes the same range, so typing 400 sets the tempo to 250 and typing 9 sets it to 30, with the box itself correcting to the clamped figure once it loses focus. One quirk worth knowing about is the empty box, which reads as zero and therefore drops the tempo to 30 rather than holding the last value you had.

Does the click stay in time over a twenty-minute practice session?

It should, because no click is ever triggered by the repeating timer directly. A tick runs every 25 milliseconds purely to decide which beats fall inside the next 0.1 seconds, and each of those is handed to the Web Audio API with an exact playback time taken from the audio hardware clock. The tick can be late without moving a single beat, so timer sloppiness has nowhere to accumulate.

How many taps does Tap Tempo need before it shows a number?

Two. One tap gives no interval at all, so nothing happens until the second one arrives, and from there the tool averages every interval in the current run. The button also counts your taps in its own label, so it reads Tap Tempo (5) once you are five taps in, which makes it easy to see whether a run is still building or has already reset.

Can I tap the tempo in while the click is already running?

Yes. Tapping only writes a new BPM value, and the scheduler reads that value fresh on its next pass, so the tempo shifts under the running click without a restart or a skipped beat. It does not work the other way round, though, because tapping never starts the metronome and you still have to press the start button yourself.

What exactly makes beat one sound different from the others?

Two things at once. The downbeat oscillator is set to 1500 Hz against 1000 Hz for the rest of the measure, and its peak gain is 0.7 against 0.45, so it is both higher and louder. On screen, the circle above the controls grows to a larger, darker state on that beat and drops back to the smaller lit state for the remaining beats.

Should I leave the metronome running in a background tab?

Better not to. Browsers throttle repeating timers heavily once a tab stops being visible, and this scheduler only looks a tenth of a second into the future, which is far less slack than that throttling introduces. Keep the tab in front while you practise and the timing model holds; send it to the background and the click can bunch up or stutter.

Related tools