Why do browser metronomes usually drift, and why does this one not?
Because setInterval and setTimeout are only best-effort: the browser can delay them by tens of milliseconds when the main thread is busy, and those errors accumulate. This metronome uses the standard Web Audio lookahead pattern instead, checking every 25 ms and scheduling clicks up to 100 ms ahead against the audio context's own clock, which is driven by the sound card and does not drift.
Why do I have to press Start before I hear anything?
Browsers require a user gesture before audio can play, so the AudioContext is created and resumed on your first press of Start. That is a platform rule, not a limitation of the tool, and it is why no metronome can autoplay on page load.
Does it keep playing if I switch tabs?
Usually yes for the audio, but the beat dots may stop updating, because browsers throttle timers in background tabs. On mobile, locking the screen will typically suspend the audio context entirely. For anything longer than a few minutes, keep the tab visible.
How do I use a metronome to actually get faster?
Find the fastest tempo at which you can play the passage cleanly, then drop 10 to 15 BPM below it and play it correctly several times in a row. Raise the tempo by 4 or 5 BPM only after a run with no mistakes. Because you can change the BPM while it is running, you can nudge it without losing the pulse.
Can I set a 6/8 with the usual two-pulse feel?
Not directly. Selecting 6/8 gives you six evenly spaced clicks with an accent on the first. Compound time is usually felt as two dotted-quarter pulses, so if that is what you want, set the tempo to the dotted-quarter and use 2 beats per bar instead.
Does it work offline?
The audio is synthesised in the browser with an oscillator, so there is no sound file to download and nothing is streamed. Once the page is loaded, the metronome itself needs no network at all.