piapia123
es

Metrónomo

Multimedia

Todo se ejecuta en tu navegador: no se sube nada

Metrónomo
120 BPM · 500 ms

⚠️ Los pulsos se **programan con antelación** en el reloj de audio (no se disparan «cuando toca»), así que no se desfasan aunque el hilo principal esté ocupado; también siguen siendo exactos si cambias a otra pestaña.

⚠️ Lo que separa a este metrónomo de la mayoría es algo que no se ve: los pulsos se programan con antelación en el reloj de audio en vez de dispararse con un temporizador. El enfoque de temporizador tiene tres problemas inevitables. Los temporizadores se desvían (un callback retrasado por trabajo del hilo principal llega tarde, y el retraso se acumula, fácilmente decenas de milisegundos por minuto, que un músico oye al momento). Un sonido tiene que empezar en un instante preciso del futuro, no ahora mismo. Y una pestaña en segundo plano ve sus temporizadores limitados a una vez por segundo, lo que destroza el pulso. Así que aquí un temporizador que corre cada 25 milisegundos solo encola en el reloj de audio los siguientes 100 milisegundos de pulsos, y el dispositivo de audio decide cuándo suenan de verdad: que el temporizador llegue tarde no importa. Otras tres cosas: tempo por toques (toca al ritmo y se calcula el BPM), compás y acento (un acento en el primer pulso de cuatro, sensación de vals en tres) y términos de tempo (grave 40, andante 76, allegro 120) para no tener que recordar números. Todo se sintetiza en tu navegador.

Funciones

  • ⚠️ Los pulsos se programan con antelación en el reloj de audio, así que ni un hilo principal ocupado ni una pestaña en segundo plano los desvían
  • 30–300 BPM, con el deslizador y el campo numérico sincronizados
  • Compases de 2/4, 3/4, 4/4 y 6/4, con el acento asignable a cualquier pulso (o desactivado)
  • ⚠️ El acento va una octava arriba (1200 Hz frente a 800 Hz), así que el primer pulso se oye en cualquier sitio
  • Tempo por toques: toca al ritmo y obtienes el BPM; una pausa de dos segundos empieza una ronda nueva
  • La irregularidad al tocar se señala, porque una lectura temblorosa habla más de los toques que del tempo
  • Términos de tempo con un clic: grave, adagio, andante, moderato, allegro, presto, prestissimo
  • Teclado: la barra espaciadora para empezar y parar
  • El sonido se sintetiza en el navegador; sin archivos de audio y sin red

Cómo se usa

  1. Elige un término de tempo, o arrastra el deslizador y escribe un BPM
  2. Fija el compás y en qué pulso cae el acento
  3. Pulsa «Empezar» o la barra espaciadora; el tempo por toques encuentra el BPM que buscas
  4. Pulsa la barra espaciadora otra vez para parar

Preguntas frecuentes

¿Por qué no disparar el sonido con setInterval directamente?
Porque así se desvía sin remedio. Un temporizador solo promete que pasa al menos ese tiempo; un callback retrasado por otro trabajo llega tarde, y el retraso se acumula: decenas de milisegundos por minuto, que cualquier músico oye al momento. La solución es dejar que el temporizador solo encole pulsos en el reloj de audio y que el dispositivo decida cuándo suenan. Que el temporizador llegue decenas de milisegundos tarde es inofensivo, porque programa con 100 milisegundos de antelación.
¿Sigue siendo exacto en una pestaña en segundo plano?
Sí, porque el sonar ya está entregado al reloj de audio, y los navegadores limitan sobre todo los temporizadores y el renderizado en segundo plano. ⚠️ Ojo: el sonido no se detiene al cambiar de pestaña. Reproducir audio mantiene activa una pestaña, y eso es comportamiento del navegador, no algo que controle esta herramienta. Pulsa la barra espaciadora para pararlo.
¿Por qué el acento y el resto suenan distintos?
El acento va a 1200 Hz frente a 800 Hz del resto, así que la diferencia es de tono y no de volumen. Una diferencia de volumen es inaudible en un altavoz pequeño mientras que una de tono se nota en cualquier cosa. Pon el acento en el primer pulso para oír el compás, o desactívalo para un pulso uniforme.
¿Por qué la lectura del tempo por toques se va?
Porque te está midiendo a ti. La lectura usa el intervalo medio entre el primer y el último toque, en vez de la media de los huecos contiguos, que metería cada temblor en el resultado; cuanto más regular toques, más exacta es. Con menos de tres toques no aparece el aviso de irregularidad, porque la muestra es demasiado pequeña para decir algo. ⚠️ Un hueco de dos segundos empieza una ronda nueva; sin eso, dos toques, una pausa y dos más se leerían como un tempo muy lento.

Herramientas relacionadas