¿Cómo funciona la detección de BPM y tonalidad en el navegador?
A diferencia de los servicios que procesan pistas en servidores remotos, este detector utiliza la interfaz Web Audio API nativa para realizar el procesamiento digital de señales (DSP) en tiempo real en la memoria de tu dispositivo:
1. Detección de BPM por autocorrelación
Calcula la curva de energía de los transitorios rítmicos (bombos, percusiones y cambios de fase). A continuación, evalúa la autocorrelación cruzada en intervalos temporales correspondientes al rango de 60 a 190 BPM para encontrar la periodicidad rítmica predominante.
2. Cromagrama y algoritmo Krumhansl-Schmuckler
Descompone el espectro sonoro en las 12 clases de altura musical ($C, C\sharp, D, \dots, B$). El vector cromático resultante se compara mediante correlación de Pearson frente a los perfiles armónicos estándar de tonalidades mayores y menores de la musicología cognitiva.
3. Mezclas armónicas con la Rueda Camelot
Traduce la tonalidad a números de 1 a 12 (A para menor, B para mayor). Para una transición armónica suave, mezcla con canciones de la misma clave (ej. 8A con 8A), sube o baja una hora para modular energía (8A $\to$ 9A o 7A), o cambia de modo relativo (8A $\to$ 8B).