Tá no ar
O PeerClock Metronome v1.0 entrou hoje na App Store. É um metrônomo que toca em sincronia em quantos iPhones e iPads você quiser apontar para ele, tudo em Wi-Fi local, com precisão de uns ±2 ms. Sem servidor no meio, sem dispositivo mestre, sem internet. Só os celulares que estão na sala.
Por que eu fiz isso
Quem já ensaiou com uma banda em que todo mundo usa in-ear conhece o problema. Cada músico ouve um clique. Só que esses cliques não são bem o mesmo clique. Alguns milissegundos de defasagem entre os celulares já bastam para um conjunto que deveria estar bem amarrado soar frouxo, e o pior é que ninguém consegue dizer ao certo de quem é a culpa.
Eu queria um metrônomo em que todos os dispositivos compartilhassem a mesma noção de «agora». Não dentro do compasso, não dentro do tempo. Dentro de ±2 ms. Isso já fica bem abaixo do que um humano consegue separar como dois sons distintos, então o clique, o flash na tela e a linha de regência caem no mesmo instante, não importa qual celular você esteja olhando.
O que muda em relação aos outros
Peer-to-peer, não mestre/escravo
Não existe dispositivo principal. Cada iPhone ou iPad entra como peer igual. Pega o seu e sai, passa um para um músico novo no meio do ensaio, mata o app à força em um deles: o resto continua marcando em sincronia. Não tem nada para reeleger, reparear ou reiniciar.
±2 ms em Wi-Fi, sem servidor
A sincronização roda inteirinha na sua Wi-Fi local. Por baixo é uma troca de 4 timestamps no estilo NTP, 40 medições por ciclo, e a metade mais barulhenta vai pro lixo. Nada sai da sala. Sem conta, sem nuvem, e nem analytics para eu ter que cuidar.
Descoberta automática
Abre o app em cada dispositivo. Em uns segundos eles se acham via Bonjour. Sem IP para digitar, sem QR code, sem tela de pareamento.
Uma linha de regência que dá pra acompanhar
Para cada fórmula de compasso tem uma linha animada pequena que desenha o gesto tradicional de regência: down-up para 2/4, o triângulo para 3/4, a cruz para 4/4, e por aí vai. Um clique visual. Naquele cenário em que o baterista está de fone e o vocal não, isso pesou bem mais do que eu esperava.
Fórmulas de compasso
4/4, 3/4, 4/8, 3/8, 6/8, 9/8, 12/8.
BPM ao vivo
Mexe no andamento em qualquer celular e os outros se mexem junto na hora. Não tem aquele momento em que dá pra ouvir alguém «alcançando».
Para quem isso serve
- Bandas e ensembles ensaiando com vários monitores in-ear
- Drumlines, naipes de percussão e coros que precisam de um clique visual compartilhado
- Professores de música em aulas coletivas onde todos os alunos precisam do mesmo pulso
- Músicos ao vivo que querem um clique de backup em um segundo celular sem ter que puxar mais um cabo
Construído em cima do PeerClock
Esse é o primeiro app que eu lancei em cima do PeerClock, a biblioteca Swift de código aberto que escrevi para sincronização de relógio P2P entre pares em dispositivos Apple. Se você é desenvolvedor e quer dar uma olhada no que está por baixo, ou usar para alguma coisa que não seja metrônomo, o código está no GitHub.
Requisitos
- iOS 17.0 ou posterior
- iPhone ou iPad na mesma Wi-Fi local
Testando
Baixa, abre em dois celulares na mesma Wi-Fi, aperta Start em um. É todo o fluxo.
Se quebrar alguma coisa, ou se faltar uma função que eu ainda não tenha colocado, escreve pra mim em hirose@hakaru.net. Eu leio tudo.