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.
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):
- 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.
- 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.
- 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):
- Afinador: una nota se muestra como «afinada» a ±10 cents o menos.
- Práctica: una nota cuenta como acierto si suena a ±35 cents de la esperada en los 140 ms alrededor de su inicio. En modo Perfección, la cascada se detiene hasta que la tocas afinada.
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:
| Prueba | Lecturas correctas | Mé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 ruido | 100 % | 53,3 % |
| Ruido fuerte (relación señal/ruido de 5 dB) | 100 % | 0 % (sin lectura) |
| Ruido sin nota (falsos positivos) | 0 % de lecturas | 100 % 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
- Detecta una nota a la vez: no evalúa dobles cuerdas ni acordes.
- El ruido fuerte, el eco de la sala o los micrófonos con reducción de ruido agresiva pueden impedir la lectura.
- Si la melodía de referencia suena por los altavoces mientras el micrófono está activo, el micrófono también la oye. Por eso Easy Violin baja su volumen, recomienda auriculares y no guarda como récord ese resultado. Mientras suena un tono de referencia, el micrófono se ignora.
- Solo usa La4 = 440 Hz.
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.