Metrônomo

Um metrônomo preciso de 40 a 208 BPM, com acento no primeiro tempo, subdivisões e tempo por toques. O relógio de áudio mantém a batida estável.

Os cliques são sintetizados localmente com a Web Audio API. Nada é baixado e nada sai do seu dispositivo.

Como funciona

Este metrônomo agenda os cliques com um relógio de áudio antecipado em vez de dispará-los direto de um timer do JavaScript. Um setInterval puro é um mau relojoeiro: os navegadores limitam os timers a alguns milissegundos, os pausam enquanto a thread principal está ocupada ou a aba escondida, e cada um desses tropeços vira um clique audível fora do lugar. Aqui, um intervalo de 25 ms só decide quando olhar à frente — cada clique é entregue à Web Audio API uns 100 ms no futuro com carimbo de tempo exato, então o som segue o relógio do hardware independentemente do que a página estiver fazendo.

O agendador antecipado
A cada 25 ms o agendador verifica quais notas caem nos próximos ~100 ms e as coloca na fila com valores precisos de AudioContext.currentTime. O intervalo só precisa disparar com frequência suficiente para nunca perder a folga; o jitter dele é invisível porque nenhum som fica preso ao instante em que o timer dispara.
O que é cada clique
Um blip curto de oscilador — 1000 Hz no primeiro tempo do compasso, 660 Hz nos demais, com decaimento exponencial de 30 ms para soar percussivo e não bipado. Nada é baixado; a forma de onda é gerada ao nível da amostra no momento do agendamento.
Tempo por toques
Toque no botão quatro vezes ou mais no ritmo e a ferramenta pega os intervalos entre os seus últimos quatro toques, usa a mediana deles — um toque isolado adiantado ou atrasado não consegue desviar o resultado —, converte em BPM e ajusta ao intervalo 40–208.

Perguntas frequentes

Ele continua tocando se eu bloquear o celular ou trocar de aba?

Não de forma confiável. Os navegadores limitam os timers em segundo plano e, no celular, costumam suspender o motor de áudio inteiro quando a tela bloqueia ou a aba fica oculta — o iOS Safari e o Chrome no Android fazem isso. O agendador mantém a grade de cliques estável durante cortes curtos porque lê o relógio de áudio, mas a resposta honesta é: deixe a aba aberta e em primeiro plano, e espere silêncio atrás da tela de bloqueio.

Por que os cliques chegam atrasados nos fones Bluetooth?

O Bluetooth adiciona dezenas de milissegundos de latência de saída, e alguns codecs (como o SBC) adicionam mais que outros. Os cliques e os quadrados piscantes são agendados no mesmo relógio de áudio, então a luz é sempre a referência verdadeira — se houver opção com fio ou de menor latência, use-a na prática crítica, ou simplesmente acompanhe os quadrados.

Como praticar bem com um metrônomo?

Comece num tempo em que você toca a passagem limpo — em geral 40–60% da velocidade alvo — e suba o BPM em passos pequenos (2 a 4 por vez) só depois de algumas repetições limpas. Praticar devagar com o acento no primeiro tempo, como esta ferramenta oferece, constrói o pulso interno muito mais rápido do que sofrer no tempo cheio.

O que as subdivisões mudam?

Elas definem quantos cliques caem dentro de cada tempo: a semínima dá um, a colcheia dois e a semicolcheia quatro. O primeiro compasso da medida sempre soa mais agudo (1000 Hz contra 660 Hz), então a subdivisão ajuda a contar e o acento mantém a estrutura da medida audível.

Algo é enviado para um servidor?

Não. Os cliques são sintetizados na hora com a Web Audio API dentro do seu navegador — sem amostras para baixar e nenhuma requisição de rede. A ferramenta funciona com o wi-fi desligado, e nada do seu estudo sai do dispositivo.