Detector de Tonalidad

Detecta la tonalidad, el BPM y la rueda Camelot de cualquier canción. Afinador en tiempo real con cents para músicos, DJs y productores.

Upload
Arrastra y suelta un archivo de audio aquí
o haz clic para examinar
Elige un archivo de audio para detectar tonalidad y tono (cualquier formato)

Sobre el Detector de Tonalidad y Tono

Este Detector de Tonalidad y Tono analiza un archivo de audio y reporta la tonalidad musical más probable (p. ej. Do mayor, La menor, Fa# menor), la nota tónica, el modo (mayor o menor), el tempo en BPM, la notación Camelot para mezclas DJ y una lista de tonalidades armónicamente compatibles. Un modo en tiempo real separado escucha tu micrófono y muestra la nota actual y su desviación en cents respecto al tono temperado de 12 tonos más cercano, útil como afinador rápido en el navegador. Todo corre localmente en tu navegador usando la Web Audio API y la librería de extracción de características Meyda — sin subidas, sin servidor, sin registro.

La detección de tonalidad es una tarea de Music Information Retrieval (MIR) con una larga historia académica. El algoritmo aquí usa un cromagrama — un vector de 12 elementos que resume cuánta energía hay en cada clase de altura (Do, Do#, Re, ..., Si) en toda la pista — y lo compara con los 24 perfiles de tonalidad de Krumhansl-Schmuckler (12 mayores + 12 menores) usando similitud coseno. Los perfiles Krumhansl-Schmuckler se derivaron en los años 80 a partir de experimentos perceptuales humanos y siguen siendo una base sólida; los sistemas MIR modernos (Mauch & Dixon 2010, Korzeniowski & Widmer 2017) añaden redes convolucionales encima, pero para el tipo de material claramente tonal que la mayoría de usuarios analiza aquí, el enfoque clásico es rápido, transparente y preciso.

Más allá de la tonalidad en sí, la herramienta reporta la posición Camelot (1A, 1B, 2A, ... 12A, 12B), notación popularizada por Mixed In Key y usada por DJs profesionales para encontrar pistas armónicamente compatibles: canciones con el mismo número se mezclan fácilmente, y ±1 en la rueda también es musicalmente natural. Tonalidades compatibles (relativa mayor/menor, dominante, subdominante) y tonalidades alternativas (los siguientes candidatos más probables del puntaje) se muestran para que verifiques el resultado. El BPM se detecta con un método basado en autocorrelación de inicios.

El afinador en tiempo real usa el algoritmo de detección de tono YIN (de Cheveigné & Kawahara, 2002), estándar de facto para seguimiento monofónico de tono en afinadores y plug-ins de corrección de afinación. YIN es robusto al mezclado armónico y corre en tiempo real a 44,1 kHz en hardware común. Mostramos la clase de tono detectada, la desviación respecto a la nota temperada más cercana en cents y un medidor visual centrado en cero. Los músicos pueden usarlo para afinar instrumentos rápido; los cantantes para verificar precisión de afinación en notas largas.

Aplicaciones útiles: DJs preparando mezclas armónicas (coincidencias en la rueda Camelot), productores buscando canciones de packs de samples que encajen en un proyecto, compositores identificando la tonalidad de una melodía capturada de oído, estudiantes de música transcribiendo o analizando repertorio, directores de coro y banda comprobando que cantan o tocan en la tonalidad correcta, y músicos de música popular española y latinoamericana — flamenco, salsa, bachata, tango, bolero, ranchera — donde confirmar el centro tonal rápido ahorra tiempo de ensayo. La privacidad es por diseño: el archivo se decodifica localmente, el análisis corre en JavaScript y nada se sube.

Cómo funciona la detección

Paso 1, decodificación. La Web Audio API decodifica tu archivo (MP3, WAV, FLAC, OGG, M4A, OPUS, contenedores de vídeo — lo que el navegador soporte) a un búfer PCM flotante de 32 bits a la frecuencia de muestreo nativa. Sumamos estéreo a mono para el análisis, porque la tonalidad es una propiedad global que no se beneficia del procesamiento por canal.

Paso 2, el cromagrama. Calculamos una STFT (típicamente fftSize 4096, hop 1024 a 44,1 kHz, dando ventanas ~93 ms con ~75 % de solapamiento). Cada espectro de magnitud se mapea a 12 clases de tono sumando la energía a través de todas las octavas de cada nota (los picos en La2 = 110 Hz, La3 = 220 Hz, La4 = 440 Hz, La5 = 880 Hz contribuyen al bin 'La'). Pesamos por importancia perceptual — los tonos del registro medio (donde se sitúan la mayoría de las melodías, ~200–2000 Hz) reciben más peso que parciales muy bajos o muy altos. Los cromagramas de cada frame se promedian sobre toda la pista, dando un único vector de 12 elementos que resume el perfil tonal de la canción.

Paso 3, emparejamiento de tonalidad usando el algoritmo Krumhansl-Schmuckler (Krumhansl & Schmuckler, 1990). Cada una de las 24 tonalidades candidatas (12 mayores + 12 menores) tiene un perfil almacenado de 12 elementos que representa con qué frecuencia aparece estadísticamente cada grado de la escala en música tonal en esa tonalidad. El perfil mayor pico en la tónica, dominante (5ª) y mediante (3ª); el menor pico en tónica, dominante y tercera menor. Calculamos la correlación de Pearson entre el cromagrama de la canción y cada perfil candidato. La tonalidad con mayor correlación gana. La confianza es el puntaje máximo en porcentaje; valores por encima del ~80 % indican música claramente tonal, 60–80 % confianza moderada, por debajo de 60 % material atonal o modulante donde el resultado es poco fiable.

Paso 4, detección de BPM. Calculamos una envolvente de inicios siguiendo el flujo espectral — la suma de diferencias positivas entre espectros de magnitud consecutivos — y corremos autocorrelación sobre la envolvente para encontrar la periodicidad más fuerte en el rango típico de tempo (60–200 BPM). El pico de la autocorrelación da el periodo de pulso; convertimos a BPM y limitamos al mismo rango. Es el enfoque Tempogram simple (Grosche & Müller, 2009); funciona bien con canciones de pulso claro y peor con rubato, tiempo libre o material polirítmico.

Paso 5, detección de tono monofónica en tiempo real. Cuando el usuario inicia el modo afinador, abrimos un stream de micrófono a 44,1 kHz vía MediaStreamSource y alimentamos búferes de 2048 muestras al algoritmo YIN. YIN computa una función de diferencia luego una diferencia normalizada acumulativa, encuentra el primer valle por debajo de un umbral (típicamente 0,1) e interpola por parábola el periodo a precisión sub-muestra. El periodo se convierte a frecuencia, la frecuencia a número de nota MIDI, y la desviación en cents es 1200 × log2(freq_detectada / freq_nota_más_cercana). Un pequeño medidor visual muestra la desviación en tiempo real.

Precisión y cuándo los resultados son fiables

El enfoque Krumhansl-Schmuckler alcanza aproximadamente 75–85 % de precisión en detección de tonalidad en los conjuntos de prueba estándar MIREX de música tonal occidental, que incluyen pistas clásicas, rock, pop y jazz seleccionadas por tener una sola tonalidad clara. Los sistemas modernos de aprendizaje profundo empujan esto por encima del 90 %. En la práctica, en grabaciones pop y rock claramente tonales, el algoritmo aquí es lo bastante fiable para que DJs y productores usen herramientas basadas en cromagrama (Mixed In Key, etiquetas de tonalidad de Beatport) en trabajo en vivo. Confianza por debajo del ~70 % significa tratar el resultado como hipótesis, no como hecho.

Donde falla o tiene dificultades: música atonal (free jazz, mucho repertorio clásico del siglo XX, ambient drone, noise), pistas con modulaciones fuertes (una canción que cambia de tonalidad tres o cuatro veces — el algoritmo promedia y puede reportar algo intermedio), música modal sin la fuerte atracción dominante-tónica de la tonalidad de práctica común (cierto folk, jazz modal, K-pop pentatónico, ciertas tradiciones vietnamitas e indonesias), autotune fuerte o efectos vocales melódicos (que deforman el cromagrama), clips muy cortos (< 30 s — material insuficiente para promediar el cromagrama), y música donde bajo y armonía no concuerdan (p. ej. un riff de bajo sintético en Do mientras la progresión dice Sol).

La confusión relativa-mayor / relativa-menor es un fallo clásico: Do mayor y La menor comparten las mismas notas pero distintas tónicas. Si la canción pasa mucho tiempo en la tónica de la tonalidad relativa, los vectores Krumhansl-Schmuckler se parecen y el detector puede elegir mal. La lista de 'tonalidades alternativas' siempre incluye la relativa; si tu oído dice menor pero la herramienta dice mayor, cambia a la relativa menor y vuelve a escuchar. Igualmente, la confusión dominante-tónica (Sol mayor en una tonalidad que en realidad es Do mayor) aparece a veces; la lista de alternativas ayuda a detectarla.

  • Mejor en música tonal occidental (pop, rock, clásica, jazz con armonía funcional clara); 75–85 % de precisión estilo MIREX.
  • Atonal, free jazz, ambient drone y música modal puntúan notablemente más bajo; trata cualquier resultado en estas con escepticismo.
  • Autotune fuerte, vocoder o leads sintéticos con corrección de tono deforman el cromagrama y pueden cambiar la tonalidad detectada.
  • Las pistas modulantes (varias tonalidades) se reportan como una única tonalidad de mejor ajuste — el promedio — que puede no ser musicalmente significativa.
  • Clips muy cortos (menos de 30 segundos) carecen de suficiente promediado de cromagrama para ser fiables.
  • La confusión relativa-mayor / relativa-menor es común; siempre revisa la lista de tonalidades alternativas antes de confiar en el resultado.
  • La detección de BPM funciona mejor con canciones de pulso claro y estable; rubato, tiempo libre y polirritmia puntúan mal.
  • El afinador monofónico en tiempo real espera una nota a la vez; los acordes o instrumentos polifónicos confunden a YIN.
  • Las lecturas en cents dependen de la referencia La4 = 440 Hz; la práctica histórica (p. ej. barroco La=415 Hz) requiere manejo aparte.

Glosario

Cromagrama (perfil de clase de tono)
Vector de 12 elementos que resume cuánta energía hay en cada clase de tono (Do, Do#, Re, Re#, Mi, Fa, Fa#, Sol, Sol#, La, La#, Si) de una señal de audio, sumada a través de octavas. Base de la mayoría de algoritmos de detección de acordes y tonalidad.
Tónica
La nota sobre la cual se centra una tonalidad — el tono 'casa' al que la música tiende a regresar. Do es la tónica de Do mayor; La es la tónica de La menor.
Modo
El patrón de intervalos que define una escala. El modo mayor tiene el patrón W-W-H-W-W-W-H (tonos y semitonos); el menor natural es W-H-W-W-H-W-W. Hay otros cinco 'modos eclesiásticos' clásicos (Dórico, Frigio, Lidio, Mixolidio, Locrio) y muchos modos de música del mundo.
Círculo de quintas
Forma de organizar las 12 tonalidades alrededor de un círculo de modo que las posiciones adyacentes se diferencien por una quinta, haciendo que las tonalidades armónicamente relacionadas (dominante, subdominante) sean visualmente adyacentes. La rueda Camelot es un reetiquetado amigable para DJs.
Rueda Camelot
Notación orientada a DJs popularizada por Mixed In Key. Cada tonalidad se etiqueta con un número (1–12) y una letra (A = menor, B = mayor). Pistas con el mismo número, o ±1, son armónicamente compatibles. Do mayor = 8B, La menor = 8A; comparten número porque comparten las mismas notas.
Menor armónico / menor melódico
Variantes de la escala menor natural: el menor armónico eleva el séptimo grado para proporcionar un tirón dominante–tónica más fuerte; el menor melódico eleva tanto el sexto como el séptimo al ascender y los revierte al descender.
Modulación
Cambio de tonalidad dentro de una pieza. Una canción que empieza en Do mayor y modula a Sol mayor pasa tiempo en el perfil Do y en el perfil Sol, lo que puede confundir a un detector de tonalidad basado en cromagrama promedio.
Perfil de tonalidad Krumhansl-Schmuckler
La plantilla de 12 elementos por tonalidad, derivada de los experimentos perceptuales de Carol Krumhansl en los años 80, que cuantifica cuánto aparece típicamente cada grado de la escala en música tonal mayor y menor. Se correlaciona por coseno con el cromagrama de una canción para estimar la tonalidad más probable.
Detección de tono YIN
Algoritmo monofónico de estimación de frecuencia fundamental (de Cheveigné & Kawahara, 2002). Calcula una función de diferencia normalizada en una ventana deslizante y encuentra el primer valle periódico. Estándar para afinadores y corrección de afinación.
Cents
Unidad logarítmica de intervalo. 100 cents = un semitono; 1200 cents = una octava. ±5 cents es generalmente inaudible y se considera afinado; ±20 cents es notablemente desafinado.

Preguntas Frecuentes

¿Cómo detecta la IA la tonalidad musical?

Calcula un cromagrama (12 energías de clase de tono sumadas en toda la pista) y lo compara con los 24 perfiles Krumhansl-Schmuckler (12 mayores + 12 menores) usando correlación coseno. Gana el perfil de mejor ajuste. Se reporta un puntaje de confianza — valores por encima del ~80 % son fiables, por debajo del 60 % el resultado es incierto. Todo el pipeline corre en tu navegador vía Web Audio API y Meyda.

¿Qué formatos de audio soporta?

Lo que el navegador pueda decodificar: MP3, WAV, OGG, AAC, M4A, FLAC, OPUS, además de contenedores de vídeo (MP4, MKV, MOV, WebM) de los que se extrae el audio automáticamente. La Web Audio API se encarga de la decodificación enteramente en tu dispositivo.

¿Qué es exactamente la tonalidad musical?

Una tonalidad es un centro tonal más un modo. Do mayor significa que la música gravita hacia la nota Do y usa el patrón mayor de intervalos (Do, Re, Mi, Fa, Sol, La, Si). La menor usa las mismas notas pero trata a La como casa. Conocer la tonalidad permite a los músicos transponer, armonizar, improvisar solos que encajan, y explica por qué algunos acordes 'suenan bien' juntos.

¿Qué es la rueda Camelot y cómo se usa?

Camelot es una numeración amigable para DJs de las 24 tonalidades alrededor de un círculo. Cada tonalidad tiene un número (1–12) y letra (A para menor, B para mayor). La regla: pistas que comparten código Camelot mezclan perfectamente; ±1 en la rueda mezcla bien; saltar +7 (quinta perfecta) también funciona. Do mayor = 8B, Sol mayor = 9B, Fa mayor = 7B, La menor = 8A. Mixed In Key, RekordBox y Beatport etiquetan así.

¿Cuán precisa es la detección de tonalidad?

En música occidental claramente tonal (pop, rock, clásica, jazz con armonía funcional), el enfoque Krumhansl-Schmuckler alcanza 75–85 % de precisión en los sets MIREX estándar — competitivo con herramientas comerciales que usan cromagramas. Pistas atonales, modales, muy cortas o con muchas modulaciones puntúan más bajo; el porcentaje de confianza te dice cuánto fiarte de la respuesta.

¿Por qué la herramienta da una tonalidad distinta a la que creo?

Razones comunes: (1) confusión relativa-mayor / relativa-menor — Do mayor y La menor comparten las mismas notas, mira la lista de alternativas; (2) la canción realmente modula y oyes la segunda tonalidad; (3) autotune o efectos de tono fuertes deforman el cromagrama; (4) la grabación está en una afinación no estándar (p. ej. 432 Hz o barroca 415 Hz en lugar de La=440 Hz). Inspecciona la lista de alternativas — a menudo la respuesta correcta es la segunda.

¿Qué significa la desviación en cents?

Indica cuánto se aleja el tono detectado del semitono temperado más cercano. 0 cents = perfectamente afinado. +5 cents = ligeramente sostenido (5 % de un semitono por encima). −20 cents = notablemente bajo. La mayoría puede detectar desviaciones mayores que ±10 cents en tonos sostenidos; ±5 cents se considera 'afinado'.

¿Puedo usarlo como afinador de guitarra en tiempo real?

Sí. El modo en tiempo real abre tu micrófono vía MediaStreamSource, corre detección de tono YIN sobre la señal en directo y muestra la nota detectada y la desviación en cents a 30+ actualizaciones por segundo. Funciona en cualquier instrumento monofónico: guitarra, bajo, violín, flauta, voz. No funciona con acordes ni instrumentos polifónicos — YIN espera una sola fundamental a la vez.

¿En qué se basa la detección de BPM?

Calculamos flujo espectral (la tasa de cambio del espectro de magnitud, que aumenta en los inicios de notas) sobre toda la pista y corremos autocorrelación sobre la envolvente de inicios resultante. El pico de la autocorrelación en el rango 60–200 BPM da el tempo dominante. Es el enfoque Tempogram estándar. Es preciso en canciones con pulso claro, menos en rubato, jazz con tempo flotante o material a tiempo libre.

¿Funciona con flamenco, salsa, bachata, bolero o géneros regionales?

Sí para cualquier material tonal — la mayor parte de la música popular española y latinoamericana se sitúa cómodamente en tonalidades mayores o menores y se detecta bien. Géneros modales (ciertos palos del flamenco andaluz, fado, modal jazz) pueden producir un mayor o menor de 'mejor ajuste' que aproxima el modo pero no es estrictamente correcto. Confianza por debajo del 70 % es tu señal de que el género o la mezcla está luchando con el algoritmo.

¿Mi audio es seguro y privado?

Sí. Decodificación, cómputo del cromagrama, emparejamiento de tonalidad y detección de BPM ocurren en tu navegador vía Web Audio API y Meyda. Tu archivo nunca se sube. La afinación en tiempo real usa tu micrófono localmente y nunca transmite audio. No almacenamos, registramos ni compartimos nada de lo que analizas.

¿Y si la detección de tonalidad es incierta (baja confianza)?

La herramienta reporta un porcentaje de confianza. Si está por debajo del ~70 %, el resultado debe tratarse como suposición. Prueba (1) analizar otra sección de la canción más clara armónicamente, (2) usar un segmento más largo, (3) revisar la lista de tonalidades alternativas, o (4) escuchar la canción contra una tonalidad de referencia conocida en tu DAW o app de afinación.

Referencias y fuentes académicas

  1. Krumhansl, C. L.. (1990). Cognitive Foundations of Musical Pitch (algoritmo Krumhansl-Schmuckler) Oxford University Press.
  2. de Cheveigné, A., & Kawahara, H.. (2002). YIN, a fundamental frequency estimator for speech and music Journal of the Acoustical Society of America 111(4).
  3. Mauch, M., & Dixon, S.. (2010). Approximate Note Transcription for the Improved Identification of Difficult Chords (NNLS Chroma) ISMIR Proceedings.
  4. Temperley, D.. (2007). Music Theory of Tonal Pitch Space (extensiones de Temperley a Krumhansl-Schmuckler) MIT Press.
  5. Comité organizador MIREX. (2024). Music Information Retrieval Evaluation eXchange (MIREX) — Tarea de detección de tonalidad ISMIR / IMIRSEL, Universidad de Illinois.
  6. Korzeniowski, F., & Widmer, G.. (2017). End-to-end Musical Key Estimation Using a Convolutional Neural Network EUSIPCO.

Last reviewed: · Reviewed by Equipo de Ingeniería de Audio de WuTools