Tecnología

Cómo detecta Easy Violin tu violín

Todo ocurre en tu navegador: el sonido entra por el micrófono, se calcula su frecuencia fundamental unas 60 veces por segundo y se compara con la nota que deberías tocar.

Actualizado el

Micrófono → Ventana de audio (2048 muestras) → Función NSDF → Primer máximo clave → Frecuencia fundamental → Nota y cents → Tu resultado
Micrófono
Ventana de audio (2048 muestras)
Función NSDF
Primer máximo clave
Frecuencia fundamental
Nota y cents
Tu resultado

1. El micrófono

Cuando pulsas «Activar micrófono», el navegador te pide permiso. Easy Violin solicita el audio sin cancelación de eco, sin supresión de ruido y sin control automático de ganancia, porque esos filtros alteran el timbre y pueden falsear la afinación. Algunos dispositivos aplican su propio procesado de todas formas; eso no depende de la página.

2. Una ventana de audio

El navegador (Web Audio API) entrega los últimos 2048 valores de la onda sonora: unos 43 milisegundos a 48 kHz. Si el volumen medio es muy bajo, se considera silencio y no se calcula nada.

3. El método de McLeod (MPM)

Para encontrar la frecuencia, Easy Violin usa el McLeod Pitch Method (Philip McLeod y Geoff Wyvill, 2005):

  1. Compara la onda consigo misma desplazada en el tiempo. El resultado, la función de diferencia cuadrática normalizada (NSDF), vale casi 1 cuando el desplazamiento coincide con un periodo de la onda.
  2. Busca los máximos de esa función y elige el primero que alcanza el 90 % del mayor. Así evita confundir un periodo con dos o tres periodos seguidos, que es lo que provoca los errores de octava.
  3. Afina el resultado con una interpolación parabólica entre muestras, lo que da una precisión de fracciones de cent.

Solo se buscan frecuencias entre 170 Hz y 2800 Hz, el rango útil del violín (la nota más grave, el Sol3, está en 196 Hz). Si la señal no es claramente periódica, por ejemplo con ruido, no se muestra ninguna lectura.

4. De la frecuencia a la nota

La frecuencia se convierte a nota con afinación temperada y La4 = 440 Hz, y se calcula la desviación en cents (centésimas de semitono):

Qué precisión tiene

Antes de elegir el método comparamos cinco algoritmos (el anterior de Easy Violin, autocorrelación, YIN, McLeod y variantes) con señales de frecuencia conocida y con diez grabaciones reales de violín. Resultados de McLeod:

PruebaLecturas correctasMétodo anterior
10 grabaciones reales de violín (Sol3 a Do6)100 %94,6 % (4,9 % de errores de octava)
Cuerda Mi (Mi5 a Mi6) con vibrato y ruido100 %53,3 %
Ruido fuerte (relación señal/ruido de 5 dB)100 %0 % (sin lectura)
Ruido sin nota (falsos positivos)0 % de lecturas100 % de lecturas falsas

Con señales de frecuencia conocida, el error medio fue inferior a 1,5 cents, incluso con vibrato. Cada análisis tarda menos de 1 ms en un ordenador actual.

Límites

Privacidad

Todo este cálculo se hace en tu dispositivo. El audio no se graba, no se guarda y no se envía a ningún servidor. Más detalles en privacidad.

Pruébalo

Abre el afinador y toca una cuerda: verás la frecuencia y los cents en tiempo real.

Abrir el afinador Ir a practicar