Tempo Ear Trainer
This tempo ear trainer helps you sharpen your sense of tempo. A steady metronome plays at a hidden BPM — you either estimate the beats-per-minute with a slider or number, or tap along (the Tap button or the Spacebar) and let the trainer read your BPM from the median of your tap intervals. Then it reveals the true tempo and how close you were. Work up through three levels: a wide, obvious estimate, a “which of two is faster?” comparison, and a fine single-tempo estimate.
ℹ This is an uncalibrated practice aid, not a test, exam, or measurement. Your score is a personal practice metric and is not a certification of ability. BPM itself is an exact, objective number, but the skill being trained is your tempo perception — and when you tap along, the estimate comes from your own inter-tap timing, so it measures your tapping as much as the beat. Reference feel labels (“dance”, “jogging”) are conventional and subjective. Use a moderate volume. Your scores are stored only in your own browser — nothing is uploaded.
Set up your practice
Press Play beat to hear a steady tempo, then estimate the BPM or tap along.
No taps yet. Tap the button or press the Spacebar in time with the beat.
Listen to A and B as many times as you like, then choose:
Reference tempos
Anchor your guesses to these familiar speeds. They are conventional feel labels, not strict rules.
How It Works
Tempo is how fast the beat goes, measured in beats per minute (BPM). This trainer schedules a steady metronome click on the browser’s audio clock at a tempo you can’t see, with a slightly higher-pitched accent every four beats so the rhythmic pulse is easy to follow. Your job is to put a number on that speed — either by judging it directly or by tapping along — in other words, to guess the BPM by ear. Developing a reliable internal tempo sense (sometimes called pulse internalization in music education) is one of the core skills that separates confident musicians from those who always rely on a click track. Metronome ear training of this kind is widely used by music teachers, producers, and session players to build faster, more automatic tempo recognition.
Two ways to answer
Estimate: drag the slider (or type) to the BPM you think you’re hearing, then submit. Tap along: hit the Tap button or the Spacebar in time with the beat. The trainer takes the time between each of your taps, finds the median interval (the middle value, which ignores the odd early or late tap), and converts it to BPM with the formula BPM = 60 ÷ seconds-per-beat. Your tapped BPM is fed into the slider so you can fine-tune it before submitting. Because it comes from your timing, a steadier tapper gets a steadier read — tap for several beats for the best result. This tap tempo method is the fastest way to estimate BPM on the fly. The same tap-to-BPM principle powers dedicated tools like the BPM Tap Tool, which lets you tap the tempo of any song you’re listening to.
The three levels
Level 1 spreads tempos widely (about 50–180 BPM) and counts you correct within 12 BPM — good for learning the feel of slow versus fast, and for building the gross tempo categorization that conductors and producers rely on (largo, andante, allegro). Level 2 plays two tempos, A and B, only 8–22 BPM apart; you switch between them and decide which one is faster — a classic discrimination task used in music-perception research. Level 3 is a single tempo again but only counts you correct within 5 BPM — the fine-discrimination challenge. A “closeness” percentage rewards getting near the answer even when you miss the tolerance window.
Reference tempos to anchor to
Memorising a few landmark speeds makes estimating far easier: 60 BPM is a slow walking pulse (largo), 90 BPM is an easy stroll (andante), 120 BPM is classic dance/pop, 140 BPM feels like a jog, and 170 BPM is fast. Tap one you know, feel where the hidden beat sits relative to it, and adjust. With practice your internal clock gets sharper. Once you can reliably name a tempo by ear, pair this trainer with a precise metronome to lock in the feel of specific target BPMs for rehearsal.