Why metronome apps drift or stutter
Short answer: Most stutters happen because the app times each click from the screen (UI) thread. When an ad loads, the screen redraws or a notification arrives, that thread is busy and the next click comes late. A metronome that writes clicks directly into the audio stream, sample by sample, is not affected.
Common causes
- Ads loading or popping up during playback, which blocks the UI thread for a moment.
- Timer-based clicks (a click every N milliseconds from a timer) that accumulate small delays, so the beat slowly drifts.
- Bluetooth headphones and speakers add 100–300 ms of latency and sometimes lower the volume. The beat is steady but late compared with what you play.
- Battery saver killing the app or throttling it when the screen turns off.
- Accidental tempo changes from volume keys or swipes, which feel like the tempo changed by itself.
How to fix it
- Use wired headphones or the phone speaker for tight practice.
- Exclude the metronome from battery optimization.
- Choose an app that schedules audio sample by sample and shows no pop-ups during playback.
- Lock the tempo while playing.
In Beatkeep
Clicks are scheduled sample by sample on a dedicated audio thread, so ads and screen changes do not touch the timing. Nothing pops up while it plays, the tempo is locked during playback, and it keeps ticking with the screen off.