Apps & Tools
Metronome & Tap Tempo
A sample-accurate Web Audio metronome, subdivisions, accents, and tap tempo, without the drift of a JavaScript timer.
Beats per Bar
Subdivision
Knowledge Base
Why This Metronome Doesn't Drift
A naive metronome built with setInterval drifts over time because JavaScript timers aren't sample-accurate. The browser can delay a callback by several milliseconds under load, and those small errors accumulate audibly over a long session. This tool instead schedules every click's exact audio start time in advance using the Web Audio clock, then checks slightly ahead of playback to queue the next batch of clicks, the standard "lookahead scheduler" pattern used in serious browser-based audio tools.
Subdivisions Explained
- Quarter notes: One click per beat. The basic pulse.
- Eighth notes: Two clicks per beat, the second slightly softer.
- Triplets: Three even clicks per beat, useful for practicing triplet feel.
- Sixteenth notes: Four clicks per beat, for fast subdivision practice.
Using Tap Tempo
Click "Tap Tempo" in time with a song or performance at least 4 times. The tool averages the intervals between your taps to estimate BPM, which is often faster and more intuitive than dialing in a number directly when you already have the tempo in your head or ears.
FAQ
Q: Why does the first beat sound different from the others?
A: It's accented (louder, slightly higher pitch) to help you feel the downbeat of each bar, matching how most physical metronomes and DAW click tracks work.
Q: Can I use this while recording in another app?
A: Yes, though for actual DAW recording you'll generally get better results from your DAW's own internal click track, since it can stay sample-locked to your recording timeline in a way a separate browser tab can't.
Using a click without losing the feel
A browser metronome built on ordinary timers drifts, because those timers are approximate and get delayed whenever the page is busy. Scheduling each click directly in the audio system instead means the timing comes from the sound hardware's own clock, which is why this one stays accurate over long periods while simpler implementations wander.
Set an accent on the first beat of the bar. Without one, a click gives you tempo but not position, and it becomes surprisingly easy to lose which beat you are on during a long take. The accent costs nothing and removes an entire category of mistake.
Use subdivisions while learning a part and remove them for the take. Hearing eighth notes helps place a syncopated figure accurately, and it also encourages playing to the grid rather than to the music, which flattens the feel. Most players get a better result by practising with subdivisions and recording with quarter notes.
Playing to a click is a skill separate from playing. Sitting exactly on the beat is not the target, since almost all music people enjoy sits slightly ahead or behind, and consistency matters more than precision. A recording where everything lands a little behind sounds relaxed and deliberate, while one drifting between ahead and behind sounds uncertain.
Consider whether a click is needed at all. It is essential for anything to be edited between takes, layered with other recordings, or synchronised to picture. It is optional for a solo performance intended to breathe, where a strict tempo removes the natural push and pull that made the piece work.
Vocabulary
BPM. Beats per minute, the measure of how fast music moves. Doubling the figure halves the time between beats, so tempo and beat length are inversely related. A metronome does nothing more than sound a click at that interval, accurately.
Subdivision. A division of a beat into smaller equal parts, such as eighth or sixteenth notes. Useful for placing rhythms accurately while practising, and often better removed when recording.
Accent. A click sounded louder or at a different pitch to mark the first beat of a bar. Gives position as well as tempo, so a player knows where they are rather than only how fast to go.
Click track. A metronome recorded alongside a performance so later overdubs and edits align. Standard for anything assembled from multiple takes or synchronised to picture, and unnecessary for a single continuous performance.
Worked example: milliseconds between clicks
A metronome click lands a fixed number of milliseconds after the last one. The gap equals 60,000 divided by the tempo in beats per minute, then divided by the number of clicks per beat. The table applies that to seven tempos and the four click patterns the tool offers. The last column gives the length of a bar of four beats.
| Tempo | Quarter notes | Eighth notes | Triplets | Sixteenth notes | Four-beat bar |
|---|---|---|---|---|---|
| 60 BPM | 1000.0 ms | 500.0 ms | 333.3 ms | 250.0 ms | 4000.0 ms |
| 80 BPM | 750.0 ms | 375.0 ms | 250.0 ms | 187.5 ms | 3000.0 ms |
| 100 BPM | 600.0 ms | 300.0 ms | 200.0 ms | 150.0 ms | 2400.0 ms |
| 120 BPM | 500.0 ms | 250.0 ms | 166.7 ms | 125.0 ms | 2000.0 ms |
| 140 BPM | 428.6 ms | 214.3 ms | 142.9 ms | 107.1 ms | 1714.3 ms |
| 160 BPM | 375.0 ms | 187.5 ms | 125.0 ms | 93.8 ms | 1500.0 ms |
| 180 BPM | 333.3 ms | 166.7 ms | 111.1 ms | 83.3 ms | 1333.3 ms |
At 120 BPM a click lands every 500.0 ms. Doubling the clicks per beat halves the gap, so eighth notes at 120 BPM land every 250.0 ms. Triplets put three clicks in each beat and land every 166.7 ms at 120 BPM. To find a tempo by ear, use tap tempo. The tool averages the gaps between your last six taps, rounds the result to a whole BPM and limits it to the range 30 to 300 BPM. It clears the taps after two seconds without one.
Vocabulary
Subdivision. A beat split into equal shorter clicks, such as two eighth notes or four sixteenth notes. Subdividing helps you feel where notes fall between the beats and keeps fast passages even.
Tap tempo. Finding a tempo by tapping along to the music. The tool measures the time between taps and converts the average gap to beats per minute. More taps give a steadier reading.
Translate this page
- Español
- 简体中文
- हिन्दी
- العربية
- Português
- Français
- Deutsch
- 日本語
- Русский
- Bahasa Indonesia
- 한국어
- Italiano
- Türkçe
- Tiếng Việt
- Polski
- Nederlands
Machine translation provided by Google Translate, on Google’s servers. We do not check these translations and they will get technical terms wrong. The English page is the authoritative one. Following a link sends this page’s address to Google. Your browser may also offer to translate this page itself, which keeps the request on your device.