It's out
PeerClock Metronome v1.0 is on the App Store as of today. It's a metronome that ticks in lockstep across as many iPhones and iPads as you want to point at it, all on local Wi-Fi, accurate to about ±2ms. No server in between, no master device, no internet. Just the phones in the room.
Why I built it
If you've ever rehearsed a band where everyone wears in-ears, you know the problem. Each musician hears a click. The clicks are not actually the same click. A few milliseconds of drift between phones is plenty to make a tight ensemble sound loose, and the worst part is that nobody can quite tell whose fault it is.
I wanted a metronome where every device shares the same idea of "now". Not within a beat, not within a tick. Within ±2ms. That's well under what a human can hear as separate, so the click, the screen flash, and the conducting line all land together no matter who's looking at which phone.
How it's different
Peer-to-peer, not master/slave
There's no main device. Every iPhone or iPad joins as an equal. Pick yours up and walk away, hand one to a new player mid-rehearsal, force-quit the app on one phone, and the rest keep ticking together. Nothing has to be re-elected, re-paired, or restarted.
±2ms over Wi-Fi, no server
Sync runs entirely over your local Wi-Fi. Under the hood it's an NTP-style 4-timestamp exchange, 40 measurements per cycle, with the noisier half thrown away. Nothing leaves the room. No account, no cloud, no analytics for me to worry about either.
Auto-discovery
Open the app on each device. Within a few seconds they find each other over Bonjour. No IP addresses to type, no QR codes, no pairing screens.
A conducting line you can actually follow
For each time signature there's a small animated line that traces the traditional conducting pattern: down-up for 2/4, the triangle for 3/4, the cross for 4/4, and so on. It's a visual click. With drummers in headphones and singers without, that turned out to matter more than I expected.
Time signatures
4/4, 3/4, 4/8, 3/8, 6/8, 9/8, 12/8.
Live BPM changes
Bump the tempo on any phone and the others move with it instantly. There's no audible "now they're catching up" moment.
Who it's for
- Bands and ensembles rehearsing on multiple in-ear monitors
- Drum lines, percussion sections and choirs that need a shared visual click
- Music teachers running group lessons where everyone needs the same beat
- Live performers who want a backup click on a second phone without dragging another cable around
Built on PeerClock
This is the first app I've shipped on top of PeerClock, the open-source Swift library I wrote for peer-equal P2P clock sync on Apple devices. If you're a developer and you want to look under the hood, or use it for something that isn't a metronome, the source is on GitHub.
Requirements
- iOS 17.0 or later
- iPhone or iPad on the same local Wi-Fi
Trying it
Grab it, open it on two phones on the same Wi-Fi, hit Start on one. That's the whole flow.
If something breaks, or you want a feature I haven't shipped yet, write to me at hirose@hakaru.net. I read everything.