⭐ 0

Metronome

Click from 30 to 240 BPM with a choice of beats per bar, note values, tuplets, and tap tempo.

🔒 Processed entirely in your browser — nothing you enter here is ever uploaded.

120

Set tempo and start the metronome.

Processing... 0%

Result

About this tool

Type a tempo or leave the box at 120. Start builds an AudioContext and then calls setInterval with a period of 60000 divided by the BPM, rounded and clamped between 30 and 240. At 120 BPM that period is 500 milliseconds, so you hear two main clicks a second. At 60 BPM the period is 1000 milliseconds. Each main click is a square-wave oscillator about 65 milliseconds long: 1320 Hz on beat 1 of the bar, 880 Hz on the other beats, with a short exponential gain ramp. The status line shows the BPM while the interval is running.

The bar can be 1 through 8 beats and starts at 4. One dot lights for each main beat, and the first dot uses an amber accent that matches the higher click. The note-value row sets how the sound relates to those beats. Whole note (1/1) and half note (1/2) still move the dots every beat, and they sound a click only every fourth or every second beat. Quarter notes click once per beat. Eighths and sixteenths, and the triplet, quintuplet, and sextuplet buttons, insert extra 660 Hz clicks, quieter, spaced evenly across the beat with setTimeout.

Tap tempo uses the same idea as the separate tap counter. The last 12 tap times are kept, a gap longer than 2.5 seconds clears them, and the new BPM is 60000 divided by the average gap, then rounded into the 30–240 box. If the click is already running it restarts at beat one. The timer is window.setInterval, not a sample-locked Web Audio scheduler, so a background browser tab can stretch the gaps. The clicks themselves are generated in the audio context; the schedule that fires them is the page timer.

Example. A tempo of 120 BPM schedules a click every 500 milliseconds, because the interval is 60000 divided by the BPM, and the status line reads 120 BPM.

Limit. Typed tempos and tap-tempo results are both rounded and clamped to the closed range 30 to 240 BPM. The beat timer is window.setInterval, so a background tab can slow it down.

What does 120 BPM sound like?

120 beats per minute is one click every 500 ms, two clicks a second. 60 BPM is one click a second. 80 BPM is a click every 750 ms. The downbeat of each bar is a 1320 Hz square click; the other beats are 880 Hz. Eighths, sixteenths, and tuplets add quieter 660 Hz clicks between the main beats.

How do beats per bar and the dots work?

The bar length is 1 through 8, and it starts at 4. One dot lights per main beat. The first dot is the downbeat and uses the amber accent that matches the higher click. Whole-note and half-note settings still move the dots every beat, and they sound a click only every fourth or every second beat.

How does tap tempo set the metronome?

Tap stores the last 12 tap times. A gap over 2.5 seconds clears them. The BPM is 60000 divided by the average gap, rounded, then clamped to 30–240, and that number is written into the tempo box. If the click is already running, it restarts from beat one at the new tempo.