Gerador de Polirritmia

Treinador de polirritmia online: pratique 3:2, 4:3, 5:4, 7:4 e 7:8 com timing via AudioContext, visualizacao circular, niveis de dificuldade e pontuacao.

Nivel:
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).

Modo Pratica: toque junto e meca sua precisao

O diferencial deste treinador e o Modo Pratica: em vez de apenas ouvir, voce toca junto com um dos canais pressionando Espaco ou o botao TAP. O sistema mede a diferenca entre o seu toque e a batida agendada em milissegundos, classificando como "Perfeito" (ate 20ms), "Otimo" (ate 50ms) ou "Bom" (dentro da tolerancia do nivel). Erros sao sinalizados com feedback sonoro e visual. Acertos, erros, streak e porcentagem de precisao ficam salvos no navegador.

Niveis de dificuldade progressivos

O nivel Iniciante limita BPM entre 40-80 e pulsos ate 4, com tolerancia de 120ms — ideal para quem nunca praticou polirritmia. O nivel Intermediario libera ate 120 BPM e 6 pulsos, com tolerancia reduzida para 80ms. O nivel Avancado abre todo o range (ate 180 BPM, pulsos ate 8) e exige precisao de 50ms — para musicos que ja dominam as polirritmias basicas.

Exemplos de uso

Drummer estudando independencia

Felipe quer aprender a tocar polirritmia 3:2 entre maos e pes na bateria. Liga o treinador em 3:2 a 60 BPM no Modo Pratica acompanhando o canal B (grave). Silencia o canal B para ouvir apenas o A como referencia e tenta tocar o ritmo do B no tempo. Quando atinge 80% de precisao com streak de 10, 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 Modo Livre em 3:2 a 80 BPM por 5 minutos com os dois canais ativos, depois silencia um por vez para internalizar cada parte. No Modo Pratica, alterna entre acompanhar canal A e canal B ate sentir as duas vozes naturalmente.

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 treinador a 70 BPM: primeiro no Modo Livre silenciando canais alternadamente, depois no Modo Pratica acompanhando cada canal. Em duas semanas, sua precisao sobe de 40% para 85% no nivel Intermediario.

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.

Exemplos prontos

  • Polirritmia 3:2 (hemiola) iniciante:
    Canal A: 3 pulsos / Canal B: 2 pulsos, 60 BPM, nivel Iniciante, tolerancia 120ms
    Hemiola barroca e base de valsas e jazz tradicional; ponto de partida classico.
  • Polirritmia 4:3 intermediario:
    Canal A: 4 pulsos / Canal B: 3 pulsos, 90 BPM, nivel Intermediario, tolerancia 80ms
    Muito usada em jazz fusion (Chick Corea) e maracatu pernambucano.
  • Polirritmia 5:4 avancada:
    Canal A: 5 pulsos / Canal B: 4 pulsos, 120 BPM, nivel Avancado, tolerancia 50ms
    Sensacao do compasso 5/4 sobre pulso de 4; pratica para rock progressivo.
  • Polirritmia 7:4 estilo Tool:
    Canal A: 7 pulsos / Canal B: 4 pulsos, 140 BPM, nivel Avancado
    Polirritmia caracteristica de Tool e Meshuggah em metal progressivo moderno.

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.

Como funciona o Modo Pratica?

No Modo Pratica, voce escolhe acompanhar o canal A ou B e toca junto pressionando Espaco ou o botao TAP no tempo certo. O sistema compara o timestamp do seu toque com a batida agendada e mostra sua precisao em milissegundos. A tolerancia depende do nivel: Iniciante aceita ate 120ms de desvio, Intermediario 80ms e Avancado 50ms.

Para que servem os niveis de dificuldade?

Iniciante limita BPM ate 80 e pulsos ate 4 (ideal para 2:3 e 3:2). Intermediario permite ate 120 BPM e pulsos ate 6. Avancado libera tudo: ate 180 BPM e pulsos ate 8, incluindo polirritmias 7:4 e 7:8. Os presets visiveis mudam conforme o nivel selecionado.

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. No Modo Pratica, silencie o canal A e tente tocar junto com o canal B para treinar a independencia.

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.

Última atualização em