A click track that keeps time on the sound card's own clock instead of a JavaScript timer. The arm is already swinging — it is silent until you press Start, because browsers only allow sound after a click.
Silent preview — press Start to hear it.
A timer that fires every 25 ms wakes up and books every click that falls inside the next 120 ms, stamped with an exact time on the audio clock. The timer is allowed to be late; the clicks are not. A plain setInterval runs alongside doing nothing but counting, and its error is read at each tick — that is the number you can watch slide away from zero.
Space starts and stops, T taps the tempo, ↑↓ nudge it by 1 (hold Shift for 5). The first beat of every bar is the loud one; 4/4, 5/4 and 6/8 add one softer accent inside the bar, and 7/8 adds two — it counts 2+2+3.
This browser has no Web Audio support, so the arm swings without sound.