Takafumi Horiuchi

Un metrónomo con pulso

Visión general

El círculo situado en el centro de la pantalla pulsa al ritmo de cada clic y refleja su intensidad. Creé un metrónomo para iPhone sin anuncios, cuentas ni pantalla de ajustes.

Pantalla del metrónomo. Un círculo blanco ocupa el centro de un fondo negro, con cuatro puntos de pulso encima y 120 BPM y botones −/+ debajo. El círculo se expande y recupera su tamaño de reposo en cada pulso.
Esta pantalla interactiva utiliza las mismas ecuaciones que la app y funciona a 120 BPM, con cuatro pulsos por compás. Toca el círculo para detenerlo.

Lo hice para mi propia práctica del saxofón tenor. Basta con abrir la app y ponerla en marcha; el pulso sigue siendo visible aunque cueste oír los clics. Me encargué de la concepción, el diseño, la implementación en SwiftUI y la síntesis de los clics.

Controles: toca lo que quieras cambiar

Los controles son los puntos de pulso, un círculo y un valor de tempo. No hay menús ni instrucciones escritas: toca lo que quieras cambiar.

La app detenida. Un círculo gris claro con un triángulo de reproducción en el centro, cuatro puntos de pulso encima, 120 BPM y botones −/+ debajo, y un pequeño icono de información arriba a la izquierda.
ⓘ
Abrir la página de ayuda.
Puntos de pulso
Toca para añadir un pulso, entre uno y siete por compás. Desliza para añadir o quitar pulsos.
Círculo
Toca para iniciar o detener. Mantén pulsado y después marca el ritmo de una canción con toques para ajustar el tempo.
Tempo
Arrastra para aumentar o reducir el tempo. Muévete despacio para realizar ajustes más precisos. Toca − o + para cambiarlo en 1 BPM.
La app detenida. Su texto se limita a números y «BPM».

Pulso visual: reflejar el momento y la intensidad de cada clic

El pulso del círculo se programa para alinearse con el clic utilizando la latencia de salida que indica iOS. Los auriculares Bluetooth pueden introducir un retraso de aproximadamente 0,1–0,3 segundos. La expansión es proporcional al volumen del clic: el primer pulso tiene un clic más agudo y fuerte y una expansión visiblemente mayor.

Gráfico de los clics y del tamaño del círculo durante un compás de cuatro pulsos. El círculo se expande con cada clic hasta 1,25 veces su tamaño de reposo en el pulso 1 y 1,15 veces en los pulsos 2–4; después se contrae brevemente por debajo del tamaño de reposo antes de estabilizarse.
Clics (áreas rellenas) y tamaño del círculo (línea) durante un compás a 120 BPM con cuatro pulsos. El círculo alcanza su tamaño máximo 0,02 segundos después del inicio del clic y se contrae ligeramente por debajo de su tamaño de reposo antes de estabilizarse, como una gelatina.

El hilo de audio programa cada pulso con precisión a nivel de muestra. El cálculo temporal evita la acumulación de error y mantiene la desviación dentro de 0,5 muestras incluso después de una hora de reproducción continua.

El alcance y las condiciones de cálculo de la cifra de 0,5 muestras todavía deben confirmarse. No debe interpretarse como una medida del momento en que el sonido llega al oyente ni de la sincronización con la pantalla.

Tempo por toques: silencio mientras marcas el ritmo

Mantén pulsado el círculo para que oscile como una gelatina. Marca con toques el ritmo de una canción o el tempo que tienes en mente: el círculo se hunde donde lo tocas, oscila y recupera su forma. La respuesta háptica permite sentir el tempo.

Seis imágenes del contorno del círculo después de un solo toque en su borde superior. La parte superior se hunde a los 0,03 segundos, comienza a recuperarse a los 0,08, se deforma ligeramente en vertical y horizontal a los 0,17 y 0,3 segundos y vuelve a ser circular a los 1,3 segundos.
Contorno del círculo después de un solo toque en su borde superior, dibujado con las mismas ecuaciones que utiliza la app. El contorno punteado es un círculo perfecto.
Versión de desarrollo de la app. El círculo es gris en el modo de tempo por toques. Debajo hay un panel en japonés de ajuste de la gelatina, con deslizadores y explicaciones, entre ellas «Elasticidad (velocidad de oscilación): 3,6 ciclos por segundo» y «Viscosidad (amortiguación de las oscilaciones): 0,10».
Ajusté la oscilación con un panel disponible solo en la versión de desarrollo. Modifiqué diez parámetros, entre ellos elasticidad y viscosidad, mediante deslizadores mientras tocaba el círculo para sentir el resultado. Comparé configuraciones llamadas «flan», «warabi mochi» y «más líquido» y elegí «gelatina» como opción predeterminada: un rebote vivo que se estabiliza en unos 0,9 segundos.

La app permanece deliberadamente en silencio mientras marcas el ritmo. Reproducir un sonido en respuesta a cada toque introduciría un retraso audible por Bluetooth y se superpondría a los clics del metrónomo. Cuando dejas de tocar, los clics al tempo marcado comienzan a un nivel casi inaudible y aumentan gradualmente hasta su volumen habitual durante seis segundos.

Después de cinco toques, los puntos que representan la vibración se reducen gradualmente mientras las barras de clic crecen desde un nivel casi inaudible durante seis segundos.
Cinco toques a 120 BPM seguidos de una pausa. De abajo arriba: toques, vibración (marcas más pequeñas indican menor intensidad) y clics (marcas más altas indican mayor volumen). El volumen aumenta a un ritmo constante en decibelios, evitando un salto brusco desde un sonido tenue.

Sonido: elegir una altura que pueda oír por encima del saxofón

Los clics se sintetizan a partir de ondas sinusoidales, sin archivos de audio grabado. Construí una página de comparación y comparé los sonidos tres veces a través del altavoz del iPhone mientras tocaba el saxofón tenor. Elegí 1875 Hz y 1250 Hz, 1,25 veces las frecuencias originales. Se sitúan por encima del rango donde se concentra la energía del saxofón y por debajo del que suele sonar estridente.

Eje de frecuencias de 100 Hz a 10 kHz. La energía del saxofón tenor se concentra en la zona baja; el rango que suele sonar estridente es de 2,5–4 kHz. Los clics a 1250 Hz y 1875 Hz se sitúan entre ambas bandas; las frecuencias originales de 1000 Hz y 1500 Hz se muestran con líneas punteadas.
La banda sombreada muestra dónde se concentra la energía del saxofón tenor, disminuyendo hacia la derecha. La banda rayada marca el rango de 2,5–4 kHz, que suele sonar estridente. Las líneas punteadas muestran las frecuencias originales (1000 y 1500 Hz); las continuas, las elegidas. La altura de las líneas representa el volumen.

Los sonidos más agudos y largos y las versiones con armónicos añadidos eran más fáciles de oír. Aun así, elegí sonidos que conservaban un timbre electrónico suave y neutro.

Mantener la sencillez: lo que dejé fuera

Prescindí de las opciones que pudieran hacer dudar. Antes de eliminar cada función, comprobé si la app podía funcionar sin ella.

Anuncios, seguimiento y cuentas
Los descarté desde el principio. La app no inicia solicitudes de red.
Pantalla de ajustes
Todo ocurre en una sola pantalla.
Selección de sonidos
Bastan dos sonidos: uno para los pulsos acentuados y otro para los no acentuados. Más opciones invitan a la indecisión.
Control deslizante de volumen
Bastan los botones de volumen del dispositivo.
Modo claro
Una sola pantalla con fondo negro.
Ocho o más pulsos por compás
Cuenta 12/8 en cuatro pulsos y 9/8 en tres.
Subdivisiones (corcheas, tresillos, semicorcheas)
No son esenciales para la función principal de la app, pero serían la primera función que consideraría añadir.
Introducir el tempo con el teclado
Bastan los botones −/+ y el arrastre.

Desarrollada en SwiftUI sin bibliotecas externas, la app funciona en iPhone con iOS 17 o posterior. Su nombre en inglés es No Ads Simplest Metronome. Las instrucciones completas y la política de privacidad están en la página de ayuda en inglés.