Détecteur de BPM audio
Estimez le tempo (BPM, battements par minute) d'un fichier audio grâce à une analyse d'énergie combinée à une autocorrélation. Accepte les formats que votre navigateur sait décoder nativement (WAV, MP3, OGG, M4A selon le navigateur).
Comment ça marche
L'outil décode l'audio, le convertit en un seul canal mono, puis calcule une enveloppe d'énergie (RMS) sur de petites fenêtres d'environ 20 millisecondes tout au long du morceau. Une fonction de détection d'attaques ("onsets") est ensuite dérivée de cette enveloppe en ne gardant que les hausses d'énergie. Une autocorrélation est appliquée sur cette fonction pour trouver l'écart temporel qui se répète le plus régulièrement — cet écart, converti en battements par minute, donne le tempo estimé.
Cette estimation est-elle fiable à 100% ?
Non, il s'agit d'une estimation algorithmique simplifiée, pas d'un détecteur de qualité studio comme ceux utilisés en production musicale professionnelle. La précision varie beaucoup selon le style musical : elle est généralement bonne sur une musique à percussions marquées et régulières (électro, pop, rock), et moins fiable sur un morceau sans battement net (musique classique, ambiant, voix a cappella).
Pourquoi le résultat semble parfois deux fois trop rapide ou trop lent ?
C'est un phénomène classique en détection de tempo : l'algorithme peut verrouiller sur le double ou la moitié du tempo réellement ressenti (par exemple détecter 140 BPM alors que le morceau est perçu à 70 BPM), car l'énergie rythmique est souvent aussi forte sur les subdivisions du temps. C'est pourquoi les candidats secondaires (double/moitié) sont affichés à côté du résultat principal.
Pourquoi seulement les 60 premières secondes sont-elles analysées ?
Pour rester rapide et ne pas geler votre navigateur sur de longs fichiers, l'analyse se limite à la première minute de l'enregistrement, ce qui suffit largement pour estimer un tempo globalement stable.
Traitement 100% local : le décodage (Web Audio API) et le calcul du tempo s'effectuent entièrement dans votre navigateur — votre fichier audio n'est jamais envoyé à un serveur.