What is a tempo counter?
Tempo Counter is a workout metronome that plays precisely timed beep tones at whatever BPM (beats per minute) you set. It uses the browser's audio scheduling capabilities directly, so the beat stays accurate from start to finish without gradually drifting out of time the way a simple timer would. Each rep's down phase and up phase play a different tone, so you can keep the beat by ear without watching the screen, and the rep counter automatically increases every time a pair of beats completes. Not every exercise suits the same speed, so picking an exercise like push-up, sit-up, or squat — anything with a clear down/up motion — automatically fills in a sensible default BPM for that movement.
How to use it
Pick the exercise you're doing from the list and a sensible default BPM fills in automatically. You can still edit the BPM by hand if you like, or pick "Custom" if your exercise isn't listed and set whatever speed you want. Press "Start" and the beat begins playing at that speed right away. The down phase plays a lower tone and the up phase plays a higher tone, and the rep counter increases by one every time a down-up pair completes. When you're done, press "Stop" to end the session.
When it comes in handy
- Keeping a consistent tempo during weight training
- Timing exercises with a clear down/up motion, like squats or push-ups
- Counting reps accurately while training at a fixed tempo
- Following the beat by sound alone, without watching the screen
Frequently Asked Questions
- Does the beat drift out of time over a long session?
- No. Upcoming beats are scheduled in advance at precise times using the browser's audio scheduling engine (AudioContext), which keeps the beat far more accurate than a regular timer would.
- How are reps counted?
- The rep count goes up by one every time a down beat and an up beat — two beats total — complete.
- What BPM range is supported?
- You can set anywhere from 20 to 240 BPM.
- Does picking an exercise lock the BPM?
- No. Picking an exercise just fills in a sensible default BPM for it — you can still edit the BPM field freely afterward.