Saltar al contenido principal
Herramienta AcoustiCalc Procesamiento local en el navegador

Detector de acordes de una canción

Acordes en orden, alineados a los beats, con cifrado romano y exportación MIDI. Sin subir el audio y sin registro: el análisis corre en tu navegador.

Motor DSP
NNLSChroma · ChordsDetection
Estado del motor
Procesado local

Cómo se calculan los acordes, paso a paso

1. Cromagrama con NNLSChroma

El audio se diezma a 11 kHz para trabajar sólo con la zona donde vive la armonía (hasta 5,5 kHz) y se analiza en tramas de 4096 muestras con ventana de Hann. NNLSChroma descompone cada espectro logarítmico en doce clases de altura mediante mínimos cuadrados no negativos: en lugar de sumar energía por bandas (que duplica la fundamental en el segundo armónico), busca la combinación de notas que mejor explica el espectro. Además estima la afinación global y local, así que una grabación a 441,5 Hz no se desalinea del croma.

2. Beats antes que acordes

BeatTrackerMultiFeature detecta la rejilla de pulsos antes de segmentar. Los cambios de acorde se ajustan al beat más cercano, porque en música real los acordes cambian en el pulso, no en el centro de una ventana de análisis. Sin esta alineación, un cambio a mitad de compás aparece sistemáticamente desplazado.

3. ChordsDetection sobre 24 tríadas

Cada trama de croma (con el canal de bajos ponderado al 50 %, para que la fundamental del bajo mande cuando la guitarra está en una inversión) se compara con 24 plantillas: doce mayores y doce menores. El algoritmo de Viterbi suaviza la secuencia y evita cambios de un solo fotograma. El resultado son tramos con un acorde, un tiempo de inicio, un tiempo de fin y una fuerza de detección entre 0 y 1.

4. Cifrado romano y coherencia tonal

Con la tonalidad detectada, cada acorde se traduce a su grado. El porcentaje de coherencia es el tiempo en el que el acorde pertenece a la escala, dividido por el tiempo total analizado. Un cifrado romano absurdo (por ejemplo un #III constante) es señal de que la tonalidad detectada no es la correcta, y la herramienta lo muestra en lugar de esconderlo.

5. MIDI sin librerías

El archivo se escribe a mano: cabecera MThd, una pista MTrk, evento de tempo con microsegundos por negra, compás 4/4, y notas con delta-times en variables de longitud. La resolución es de 480 ticks por negra, la estándar en DAW. No se usa ninguna librería de MIDI porque para un tipo 0 con acordes en bloque no hace falta.

Para qué sirve saber los acordes

  • Aprender una canción. La progresión con cifrado romano te dice qué tocar y por qué funciona, sin depender de un tutorial en otra tonalidad.
  • Hacer una versión. Transporta a la tonalidad de tu voz y exporta el MIDI para montar el acompañamiento en el DAW.
  • Componer sobre una referencia. Si una progresión te gusta, el cifrado romano te permite reutilizarla en otra tonalidad sin copiar la melodía.
  • Comprobar una mezcla. Si el detector encuentra acordes incoherentes en una mezcla que debería ser tonal, suele haber un problema de afinación entre capas o un bajo que no coincide con la armonía.
  • Preparar un remix o un mashup. Con la tonalidad y los acordes puedes decidir si dos canciones son compatibles antes de gastar horas en el editor.

Siguiente paso

Preguntas frecuentes

¿Cómo se sacan los acordes de una canción? +
El motor separa la armonía del resto del audio en dos pasos: primero calcula un cromagrama con NNLSChroma (deconvolución no negativa del espectro en clases de altura, con corrección de afinación por trama) y después pide a ChordsDetection de Essentia que agrupe esos cromas en tramos estables de acorde. Los tramos se alinean a la rejilla de beats detectada, de modo que cada cambio de acorde cae donde cae musicalmente, no en una frontera arbitraria de ventana.
¿Por qué sólo aparecen acordes mayores y menores, sin séptimas? +
Porque el detector de Essentia compara el croma con 24 plantillas de tríada: las doce mayores y las doce menores. No modela séptimas, novenas, suspensiones ni inversiones. Un Cmaj7 sale como C, un Am7 como Am y un Gsus4 como G. Es una limitación real del método, y la decimos en lugar de disimularla: para cifrados complejos hace falta un modelo entrenado (Chordino, madmom o un transformer), que no cabe en un análisis instantáneo en el navegador.
¿Qué significa el porcentaje de acordes de la tonalidad? +
Es el porcentaje del tiempo analizado en el que el acorde detectado pertenece a la escala de la tonalidad detectada. En pop y rock suele estar entre el 80 % y el 100 %. Si baja del 60 %, o la canción modula, o la tonalidad detectada no es la correcta, o el audio es poco tonal (percusión, ruido, mucha reverberación). Es un control de coherencia, no una nota de calidad.
¿Cómo se usa el cifrado romano? +
El cifrado romano describe la función de cada acorde respecto a la tónica: I es la tónica mayor, ii el segundo grado menor, V el dominante, vi el relativo menor. Con él reconoces progresiones por su forma y no por su tonalidad: I–V–vi–IV es la misma progresión en Do (C–G–Am–F) que en Sol (G–D–Em–C). Sirve para transponer a ojo y para entender por qué dos canciones suenan parecidas.
¿El MIDI exportado tiene el tempo correcto? +
Sí. El archivo incluye un evento de tempo con el BPM detectado y las notas se colocan en ticks de 480 por negra, calculados desde los tiempos reales de cada tramo. Al abrirlo en un DAW verás los acordes en su posición temporal, no en una cuadrícula inventada. Si el tempo detectado es el doble o la mitad del que tú usas, cambia el tempo del proyecto: las posiciones relativas se mantienen.
¿Puedo transportar los acordes a mi voz? +
Sí, con el selector de transporte de −6 a +6 semitonos. La tabla, la progresión y el MIDI se recalculan en el acto. En guitarra, si transportas hacia arriba puedes poner cejilla en el mismo traste que el transporte y seguir tocando las formas originales; la herramienta te indica el traste.
¿Se sube mi canción a algún servidor? +
No. El archivo se decodifica en tu equipo con la Web Audio API y el análisis se ejecuta en un Web Worker con Essentia.js compilado a WebAssembly. La única descarga es el motor (unos 2 MB) la primera vez, que después queda en caché. No hay subida de audio ni cuenta de usuario.
¿Qué precisión tiene el detector de acordes? +
En música tonal con instrumentación clara (guitarra, piano, producción pop) la secuencia suele ser correcta en la mayoría de tramos, con errores típicos en las inversiones y en los acordes con séptima, que se simplifican a su tríada. En mezclas densas con mucha percusión, en metal con guitarras distorsionadas o en música modal la precisión baja. No publicamos un porcentaje de acierto porque no hemos medido un corpus suficientemente grande como para que ese número signifique algo.