AudioUtilsaudio-utils.com

Command Palette

Search for a command to run...

Detector de BPM

Aceita: 9 formatos· Mostrar todos

Também aceita MP4, MOV, WebM, AVI — o áudio é extraído automaticamente.

Solte uma faixa e obtenha seu tempo em BPM. Análise pure-TS rodando no seu navegador — sem upload, sem cadastro.

Seu arquivo nunca sai do seu dispositivo. Todo o processamento acontece nesta aba do navegador.

BPM (batidas por minuto) é o pulso de uma faixa. Erre por uma batida e um remix não trava; erre por uma oitava e o seu set de DJ desmorona. Este detector usa autocorrelação do envelope de onsets com correção de erro de oitava para ler o tempo de qualquer arquivo de áudio no navegador. Solte um arquivo, receba um número — tipicamente dentro de ±2 BPM da verdade de campo em material rítmico.

O que a detecção de BPM realmente mede

A detecção de BPM encontra a periodicidade no envelope de energia de um sinal. A abordagem clássica: calcular um RMS de janela curta, tomar a derivada meia-retificada para obter um sinal de onsets e, em seguida, autocorrelacionar para encontrar o período de batida mais provável. Os casos limite incluem tempos que não caem em fronteiras inteiras de frame (174 BPM é notoriamente complicado), músicas com forte ênfase em meia compasso que enganam o detector e o fazem reportar metade do tempo, e músicas sem conteúdo rítmico claro. Mitigamos o caso comum de erro de oitava verificando se o tempo dobrado também tem um pico forte de autocorrelação — se tiver, preferimos a leitura mais rápida, já que o tempo percebido pelo ouvinte costuma estar na faixa de 100-180 BPM.

Como este detector funciona

O áudio é decodificado pela Web Audio API e mixado em mono. Calculamos um envelope RMS a 100 Hz de taxa de frame (passo de 10 ms, janela de 20 ms) e, em seguida, meia-retificamos a primeira diferença para isolar os onsets. A autocorrelação varre os atrasos correspondentes a 60-200 BPM. Após escolher o pico mais forte, aplicamos uma correção de oitava a posteriori: se o meio atraso (= tempo dobrado) tiver um pico em pelo menos 45 % do escolhido, trocamos para a leitura mais rápida. Uma interpolação parabólica em torno do pico escolhido entrega precisão de BPM sub-frame. Tudo roda em TypeScript no navegador sobre Float32Array — sem bibliotecas externas, sem servidor.

Quando usar esta ferramenta

  • Beatmatching para sets de DJ e performance ao vivo
  • Travar remixes e stems no tempo de uma faixa de referência
  • Definir o tempo do projeto da sua DAW antes de importar uma performance gravada
  • Conferir samples de bateria e loops para garantir que estão rotulados corretamente
  • Checagem rápida de ritmo em uma música em que você não consegue marcar a batida

Perguntas frequentes

Quão precisa é a detecção?
Em material ritmicamente claro (a maior parte de pop, dance, hip-hop, rock com bateria), espere ±2 BPM. Em material com percussão fraca ou ausente (orquestral, ambient, baladas acústicas) o algoritmo tem menos onde se segurar e pode reportar metade ou o dobro do tempo. A confiança é reportada ao lado do BPM — uma confiança baixa significa que vale tomar o resultado com cautela.
Por que às vezes ele reporta metade do BPM esperado?
A detecção de BPM é um problema intrinsecamente ambíguo quando existe periodicidade em várias taxas relacionadas harmonicamente. Detectamos esse caso e preferimos a leitura mais rápida, mas em músicas muito lentas (60-80 BPM) com subdivisão forte o detector ainda pode escolher o tempo dobrado. Compare com o seu próprio tap-tempo se o resultado parecer estranho.
Ele lida com músicas de tempo variável?
Não muito bem. A leitura integrada reflete o tempo médio em toda a faixa. Para músicas com mudanças de tempo seção a seção, um algoritmo de beat-tracking com saída por frame é a ferramenta certa — mas é muito mais pesado e pouco adequado a um utilitário grátis em navegador.
E se a minha faixa não tem bateria?
Material acústico / ambient / não percussivo é o caso mais difícil. O envelope de onsets capta os ataques de notas tonais, mas eles são bem mais fracos do que pancadas de bateria. A confiança será baixa e o resultado, pouco confiável. Nesses casos, pode ser melhor inserir o BPM à mão com base na intenção do compositor.

Privacidade

Seu arquivo é analisado inteiramente nesta aba do navegador — decodificado pela Web Audio API, processado por TypeScript do navegador, nunca enviado. Fechar a aba apaga todo o estado de trabalho.