Gerador de Polirritmia

Gerador de polirritmia online com timing preciso via AudioContext scheduling. Pratique 3:2, 4:3, 5:4, 7:4 e ate 7:8 com clicks de timbres distintos e visualizacao circular.

Canal A (agudo) — 3 pulsos
A
Canal B (grave) — 2 pulsos
B
Polirritmia 3:2 a 80 BPM
80
75%
Presets:

Tecla Espaco tambem inicia/para.

Polirritmia: o salto ritmico que separa amador de profissional

A polirritmia e um dos topicos mais avancados da pratica ritmica. Ela aparece em jazz fusion, rock progressivo, musica africana ocidental, classica do seculo XX, samba percussivo brasileiro e fusion latino. Dominar polirritmia separa o musico que toca dentro do compasso simples do musico que tem independencia ritmica real entre membros e maos. Este gerador deixa voce ouvir e praticar polirritmias com timing perfeito de hardware, algo praticamente impossivel de criar batendo na mesa.

Polirritmias mais comuns e onde aparecem

  • 3:2 (hemiola): a polirritmia mais antiga, ja usada por compositores barrocos. Aparece em valsas vienenses, na musica africana de tambores e em quase todo jazz tradicional.
  • 4:3: muito comum em jazz fusion (Chick Corea, Pat Metheny) e maracatu. Cria sensacao de "puxar e empurrar" o tempo.
  • 5:4: o classico "Take Five" de Dave Brubeck (1959) popularizou o compasso 5/4, e o 5 contra 4 em metricas mais complexas e marca registrada de muito metal progressivo.
  • 7:4 e 7:8: musica balcanica, rock progressivo dos anos 70 (Genesis, Yes, King Crimson) e metal moderno (Tool, Meshuggah).

Exemplos de uso

Drummer estudando independencia

Felipe quer aprender a tocar polirritmia 3:2 entre maos e pes na bateria. Liga o gerador em 3:2 a 60 BPM, escuta os dois clicks por alguns ciclos, depois comeca: tocando 3 batidas no chimbal com a mao direita e 2 batidas no bumbo com o pe. Quando consegue alinhar com o gerador por 1 minuto continuo, sobe para 70 BPM.

Pianista praticando hemiola classica

Carla esta estudando o 3o movimento da Sonata em Si bemol de Brahms, que tem hemiolas 3:2 entre as maos. Antes de praticar a peca, usa o gerador 3:2 a 80 BPM por 5 minutos, internalizando a sensacao auditiva. Depois pratica a peca muito mais facil — o ouvido ja sabe o que esta procurando.

Estudante de percussao africana

Andre frequenta um grupo de batuque oeste-africano onde os timbales tocam em 4 enquanto os surdos tocam em 3. Em casa, pratica 4:3 no gerador a 70 BPM enquanto bate as duas vozes em maos diferentes na mesa. Em duas semanas consegue tocar a celula sem precisar do gerador como muleta.

Como funciona tecnicamente

O problema do timing impreciso

O bug famoso de toda implementacao ingenua de metronomo ou polirritmia em JavaScript e usar setTimeout ou setInterval para agendar batidas. Os timers do navegador tem precisao tipica de ±5 a ±50 milissegundos, dependendo de carga de CPU, throttling em background e sincronizacao com requestAnimationFrame. Para um BPM tipico de 120 (intervalo de 500ms), 50ms de erro corresponde a 10% — completamente perceptivel e arruina polirritmias.

A solucao: lookahead scheduling com AudioContext.currentTime

A Web Audio API expoe um AudioContext com clock de hardware (currentTime), preciso na ordem de microssegundos. O truque e nao tocar a batida agora — voce agenda no futuro proximo, e o navegador entrega no instante exato:

// Loop a cada 25ms (em vez de a cada batida)
function scheduler() {
  while (proximaBatida < ctx.currentTime + 0.1) {
    // Agenda osciladores no futuro
    osc.start(proximaBatida);
    osc.stop(proximaBatida + 0.08);
    proximaBatida += intervalo;
  }
}
setInterval(scheduler, 25);

O loop scheduler roda a cada 25ms (com tolerancia do timer JS, sem problema), mas agenda batidas com 100ms de antecedencia em currentTime. Mesmo se o setInterval atrasar 30ms, ainda ha 70ms de buffer para o hardware reproduzir no tempo correto. Esse padrao e descrito em "A Tale of Two Clocks" da W3C (Chris Wilson) e e a forma canonica de fazer audio ritmico preciso na web.

Aplicando ao polirritmia

Para a polirritmia, mantemos dois timestamps independentes: nextNoteTimeA e nextNoteTimeB. Cada um avanca pelo seu proprio intervalo (canal A: tempo de ciclo / pulsosA; canal B: tempo de ciclo / pulsosB). O scheduler verifica os dois canais a cada iteracao e agenda batidas onde necessario. O hardware sincroniza ambos com precisao de microssegundos.

Sincronizacao visual

Os circulos visuais nao podem usar setTimeout tambem (mesmo problema). Em vez disso, mantemos uma fila de batidas agendadas com seus timestamps, e em cada frame do scheduler verificamos quais ja passaram do currentTime atual — essas marcam visualmente o pulso na UI. Isso garante que o visual siga o audio, nao o contrario.

Timbre dos cliques

Canal A (agudo): osciladores quadrados em 1500 Hz, com envelope curto (rampa linear de 2ms para volume, queda exponencial em 60ms). Canal B (grave): osciladores senoidais em 500 Hz, mesmo envelope. A diferenca de timbre (square vs sine) ajuda a distinguir auditivamente as duas vozes mesmo quando elas batem juntas no inicio do ciclo.

Ultima atualizacao: 2026-04-11

Perguntas Frequentes

O que e uma polirritmia?

Polirritmia e a sobreposicao de dois ou mais ritmos diferentes tocados ao mesmo tempo, com pulsos que nao coincidem entre si exceto no inicio do ciclo. A polirritmia 3:2, por exemplo, toca 3 batidas de uma voz e 2 da outra no mesmo intervalo, criando uma textura ritmica complexa muito usada em jazz, musica africana e progressivo.

Qual a diferenca entre polirritmia e polimetria?

Polirritmia: dois ritmos diferentes dentro do MESMO compasso (ex: 3 contra 2 em 1 tempo). Polimetria: dois compassos diferentes ao mesmo tempo (ex: 3/4 sobreposto com 4/4). Este gerador foca em polirritmia, mas o conceito de praticar isolando uma voz por vez vale para os dois.

Por que o timing precisa ser via AudioContext e nao setTimeout?

JavaScript timers (setTimeout, setInterval) sao notoriamente imprecisos — podem variar 10 a 50ms por chamada, suficiente para destruir polirritmia complexa. AudioContext.currentTime e baseado em hardware de audio, com precisao de microssegundos. Agendamos cada batida com osc.start(tempoExato) e o navegador garante a reproducao no tempo correto, independente de carga da CPU.

Como pratico polirritmia 3:2 do zero?

Comece bem devagar (50-60 BPM). Conte em voz alta a voz mais simples (2 pulsos: "1 e"). Depois conte a voz de 3 ("1 2 3"). Junte: "1 2 3 / 1 2 — / 1 — 3 / — 2 —". Use a frase mnemonica "nice cup of tea" ou "passa do laco" para internalizar 3:2. Aumente o BPM gradualmente conforme sentir.

Posso usar polirritmia 5:4 ou 7:4 na pratica?

Sim, sao polirritmias avancadas comuns em rock progressivo (5:4 em "Take Five" de Brubeck, 7 em muito do Tool e Meshuggah), jazz contemporaneo, musica africana ocidental e classica do seculo XX (Stravinsky, Bartok). Praticar 5:4 e 7:4 desenvolve drasticamente o senso de subdivisao independente entre maos ou entre membros do grupo.

O gerador funciona com headphones e caixinhas pequenas?

Sim. Os dois canais sao distinguidos por timbre e nao por panning estereo, entao funcionam mesmo em mono. O canal A usa onda quadrada em 1500 Hz (agudo, "click") e o canal B usa onda senoidal em 500 Hz (grave, "tomtom"). Em headphones a separacao fica mais clara, mas qualquer alto-falante funciona.