← Todas as ferramentas

Detector de BPM

Solte uma faixa. Receba o andamento e o momento exato de cada tempo — calculado na sua própria máquina, sem enviar nada.

O seu navegador lê e recodifica o ficheiro. Nenhum pedido o envia para lado nenhum — esta página não tem servidor para onde o enviar.

Perguntas

Meu áudio é enviado para algum lugar?

Não. A análise roda dentro do seu navegador como WebAssembly. O arquivo é lido do disco para a memória e nunca sai pela rede: dá para conferir abrindo a aba de rede, ou desconectando depois que a página carregou.

Qual a precisão?

Usa análise de força de ataques com rastreamento de batidas por programação dinâmica — a mesma abordagem das ferramentas consagradas de recuperação de informação musical e o mesmo código que move o motor de montagem do Life2Film. Em música de pulso estável, acerta dentro de uma batida. Em rubato, gravações ao vivo sem clique ou material muito sincopado, trate o número como ponto de partida.

O que significa «metade ou dobro do andamento»?

O andamento é ambíguo por natureza: uma faixa a 140 BPM também é, corretamente, 70 BPM contada em tempo pela metade. Os detectores escolhem o que for mais forte no sinal. Se o número parecer exatamente o dobro ou a metade, foi isso que aconteceu — e as duas leituras aparecem para você pegar a que precisa.

Posso usar os tempos no meu editor?

É para isso que serve a exportação. EDL é a escolha para DaVinci Resolve ou Premiere: cada tempo chega como um marcador nomeado na linha do tempo. O Final Cut aceita o FCPXML. OTIO funciona em Resolve, Avid e Premiere, e é o certo quando os tempos vão para um pipeline em vez de direto para a linha do tempo. O Audacity lê a exportação de rótulos, e CSV ou JSON cobrem planilhas e scripts.

Por que os quadros por segundo importam?

Os tempos caem em frações de segundo; linhas do tempo contam quadros inteiros. Cada marcador é arredondado para o quadro mais próximo do projeto de destino, então uma grade exportada a 25 fps fica até 20 ms deslocada numa sequência a 30 fps. Ajuste a taxa à do seu projeto e os marcadores caem exatamente onde está a batida. Não afeta CSV nem JSON, que trazem também os segundos brutos.

As outras ferramentas

Integre isto no seu projeto

Finding the tempo and beat grid of a track — the same way this page does it, on the user's machine, with no server. Take the code, or hand the prompt to a coding agent.

const engine = await import('https://life2film.com/wasm/va_wasm.js');
await engine.default({ module_or_path: 'https://life2film.com/wasm/va_wasm_bg.wasm' });

const ctx = new AudioContext();
const buffer = await ctx.decodeAudioData(await file.arrayBuffer());

// Down-mix to mono at 22050 Hz first (OfflineAudioContext), then:
const { bpm, beats } = JSON.parse(engine.detect_beats(mono, 22050, null));

The engine is documented for agents, and every tool page is available as markdown by adding .md to its address.