Detector de tonalidad y BPM
Gratis, sin registro y sin subir tu audio: tonalidad con código Camelot, tempo detectado, afinación de referencia y claves compatibles. Se calcula en tu navegador con Essentia.js.
Qué mide exactamente
Tonalidad
Tónica y modo con su código Camelot, la relativa y las dos siguientes candidatas con su peso.
Tempo
BPM entero y con un decimal, confianza, tempo alternativo y la rejilla de beats detectada.
Afinación
Frecuencia de referencia de A4 y desviación en cents. Útil para saber si la canción está a 432 Hz o ligeramente desafinada.
Mezcla armónica
Las cinco claves compatibles con la detectada (misma, ±1 con la misma letra y el cambio A/B).
Cómo funciona la detección de tonalidad, explicado como un ingeniero
El motor no adivina: mide. Estas son las etapas reales, en orden.
1. Afinación de referencia
Antes de analizar la armonía se estima la afinación real de la grabación con
TuningFrequencyExtractor (tramas de 4096 muestras, salto de 2048). Si el resultado cae fuera de
420–460 Hz se asume 440 Hz. Ese valor alimenta el HPCP y el extractor de tonalidad, de modo que una canción
afinada a 441,3 Hz no se analiza como si estuviera a 440.
2. HPCP de 36 bins
Cada trama de 4096 muestras (ventana Blackman-Harris) se pasa por una FFT de 4096 puntos. De ahí se extraen hasta 100 picos espectrales entre 40 Hz y 5 kHz, y cada pico reparte su energía en un histograma de clases de altura de 36 bins con ponderación coseno y cuatro armónicos. Con 36 bins se resuelven las tres tonalidades menores relativas que el oído confunde; una FFT de 1024 puntos a 22 kHz, en cambio, tiene bins de 21,5 Hz que en la zona grave abarcan varios semitonos y arruinan el cromagrama.
3. Cuatro perfiles votando por segmentos de 15 s
El HPCP se acumula en segmentos de 15 segundos, se normaliza y se compara con cuatro perfiles de tonalidad
(Krumhansl-Kessler, Temperley, EDMA y Bgate). Cada perfil emite un voto con su fuerza. Además, el algoritmo
KeyExtractor de Essentia analiza la señal completa con corrección de desafinación y emite otro
voto por perfil. El ganador es el que suma más peso; los empates se resuelven por número de votos.
4. Desambiguación relativa y confianza honesta
El croma global se reduce a 12 clases y se puntúa cada candidata combinando la correlación de Pearson con el perfil, la presencia de tónica, tercera y quinta, y (en menor) la sensible. Sólo se cambia el ganador si otra candidata lo supera con un margen claro de 0,03. La confianza mostrada combina el acuerdo entre votos, el margen de peso sobre la segunda opción y cuántos votos respaldan al ganador; cuando la corrección ha sido necesaria, se reduce un 8 %. No hay ningún «98,7 %» decorativo.
5. Tempo con dos estimadores
El BPM se estima dos veces: con PercivalBpmEstimator y con
RhythmExtractor2013 en modo multifeature. Si ambos coinciden (ratio entre 0,95 y 1,05) se usa el
segundo y la confianza sube un nivel. Si uno es el doble del otro se corrige la octava. Si discrepan, se
puntúa cada uno por rango musical (60–180 BPM) y confianza. Si ninguno funciona, la herramienta muestra un
error: no inventa 120 BPM.
6. Validación con canciones reales
La última comprobación con audio real usó diez previews de 30 segundos con tonalidad anotada en Hooktheory y tempo contrastado con SongBPM y Wikipedia. Resultado medido con este motor: 8 de 10 tonalidades correctas contando la relativa como válida y 10 de 10 tempos contando como válido el doble o la mitad cuando la herramienta lo marca como alternativa. El fallo de tonalidad fue «Rolling in the Deep» (C menor esperado, Sol mayor detectado). Es una muestra pequeña y sirve para lo que sirve: para no prometer precisión de laboratorio.
7. Lo que no calculamos
No verás «energía», «valence», «bailabilidad» ni «acústica». Esas métricas se calculan en muchas webs con heurísticas sin validación (a veces midiendo el centroide espectral sobre la forma de onda en el tiempo, sin FFT) y producen números que parecen científicos sin serlo. Aquí sólo se muestra lo que sale de una medición reproducible.
Rueda Camelot: las claves compatibles
Cada tonalidad tiene un número (1–12) y una letra: A para menor, B para mayor. Dos canciones mezclan bien si comparten código, si sus números son consecutivos con la misma letra o si tienen el mismo número con la letra contraria. La distancia de un número equivale a una quinta justa, que es la relación armónica más estable después de la octava. La herramienta calcula esas cinco opciones para la tonalidad que detecta.
Siguiente paso
Preguntas frecuentes
¿Cómo sé la tonalidad de una canción sin oído absoluto? +
¿Por qué a veces la tonalidad detectada es la relativa? +
¿El BPM detectado puede ser el doble o la mitad? +
¿Qué precisión tiene el detector? +
¿Se sube mi canción a algún servidor? +
¿Por qué analiza sólo los 60 segundos centrales? +
¿Para qué sirve el código Camelot? +
¿Qué significan las cuatro barras de confianza? +
¿Funciona con cualquier género? +
¿Puedo detectar los acordes de la canción? +
Motor de análisis: acousticalc-audio-analysis (Essentia.js, AGPL-3.0). Código fuente, versión y créditos en licencias open source.