Hij staat erin
PeerClock Metronome v1.0 staat sinds vandaag in de App Store. Het is een metronoom die zoveel iPhones en iPads als je wilt synchroon laat tikken op je lokale Wi-Fi, op ongeveer ±2 ms nauwkeurig. Geen server ertussen, geen master-apparaat, geen internet. Alleen de telefoons die in de ruimte staan.
Waarom ik 'm gemaakt heb
Wie weleens met een band heeft gerepeteerd waarbij iedereen in-ears in heeft, herkent het probleem. Iedere muzikant hoort een klik. Alleen zijn die klikken niet écht dezelfde klik. Een paar milliseconden drift tussen telefoons is genoeg om een strak ensemble los te laten klinken, en het vervelendste: niemand weet precies wie er afwijkt.
Ik wilde een metronoom waarbij alle apparaten dezelfde notie van «nu» delen. Niet binnen een tel, niet binnen een tik. Binnen ±2 ms. Dat zit ruim onder wat een mens nog als twee losse geluiden kan onderscheiden, dus klik, beeldflits en dirigeerlijn vallen op elke telefoon op hetzelfde moment.
Wat het anders maakt
Peer-to-peer, geen master/slave
Er is geen hoofd-apparaat. Elke iPhone of iPad doet mee als gelijke peer. Pak de jouwe en loop weg, geef er midden in de repetitie een aan een nieuwe muzikant, sluit de app op een ervan helemaal af: de rest tikt gewoon door, in sync. Niets dat opnieuw moet kiezen, koppelen of opstarten.
±2 ms over Wi-Fi, geen server
De synchronisatie draait volledig over je lokale Wi-Fi. Onder de motorkap is het een NTP-achtige uitwisseling van 4 tijdstempels, 40 metingen per cyclus, en de luidruchtigste helft daarvan gooi ik weg. Niets verlaat de ruimte. Geen account, geen cloud, en ook geen analytics waar ik iets mee moet.
Automatische ontdekking
Open de app op elk apparaat. Binnen een paar seconden vinden ze elkaar via Bonjour. Geen IP-adressen om in te tikken, geen QR-codes, geen pairing-scherm.
Een dirigeerlijn die je echt kunt volgen
Voor elke maatsoort loopt een kleine geanimeerde lijn het klassieke dirigeerpatroon af: down-up bij 2/4, driehoek bij 3/4, kruis bij 4/4, enzovoort. Een visuele klik. Bij de combinatie drummer met koptelefoon en zanger zonder bleek dat veel meer uit te maken dan ik had verwacht.
Maatsoorten
4/4, 3/4, 4/8, 3/8, 6/8, 9/8, 12/8.
BPM live aanpassen
Draai het tempo op een willekeurige telefoon en de andere bewegen meteen mee. Dat moment waarop je hoort dat iets «aan het bijtrekken» is, bestaat hier niet.
Voor wie het bedoeld is
- Bands en ensembles die met meerdere in-ear-monitoren repeteren
- Drumlines, slagwerksecties en koren die een gedeelde visuele klik nodig hebben
- Muziekleraren met groepslessen waarin iedere leerling dezelfde beat moet horen
- Live-muzikanten die op een tweede apparaat een back-upklik willen zonder nog een kabel te trekken
Gebouwd op PeerClock
Dit is de eerste app die ik op PeerClock heb uitgebracht, de open-source Swift-bibliotheek die ik schreef voor peer-gelijke P2P klok-synchronisatie tussen Apple-apparaten. Ben je ontwikkelaar en wil je onder de motorkap kijken, of er iets mee bouwen dat geen metronoom is? De broncode staat op GitHub.
Vereisten
- iOS 17.0 of nieuwer
- iPhone of iPad op hetzelfde lokale Wi-Fi
Uitproberen
Downloaden, op twee telefoons op dezelfde Wi-Fi openen, op één ervan op Start tikken. Dat is de hele flow.
Loopt iets vast, of mis je een functie die ik nog niet heb uitgebracht? Mail me op hirose@hakaru.net. Ik lees alles.