Takafumi Horiuchi

Un métronome qui bat

Présentation

Le cercle au centre de l’écran bat au même instant et avec la même intensité que chaque clic. J’ai créé un métronome pour iPhone sans publicité, sans compte et sans écran de réglages.

L’écran du métronome. Un cercle blanc au centre d’un écran noir, quatre points au-dessus et 120 BPM avec −/+ en dessous. Le cercle gonfle puis revient à sa taille à chaque temps.
Cet écran s’anime dans la page avec les mêmes équations que l’app (120 BPM, quatre temps par mesure). Touchez le cercle pour l’arrêter.

Je l’ai créé pour mes séances de saxophone ténor. On l’ouvre et on peut démarrer aussitôt ; la pulsation reste visible même quand le son est difficile à entendre. J’ai tout fait seul, de la conception au design, à l’implémentation en SwiftUI et à la synthèse des clics.

Commandes — toucher ce que l’on veut changer

L’écran ne contient que les points des temps, un cercle et la valeur du tempo. Ni menus ni instructions : on touche directement ce que l’on veut changer.

L’écran à l’arrêt. Un cercle gris clair avec un triangle de lecture au centre, quatre points au-dessus, 120 BPM et −/+ en dessous, et un petit ⓘ en haut à gauche.
ⓘ
Ouvre la page d’assistance.
Points
Touchez pour ajouter un temps (1–7). Faites glisser pour en ajouter ou en retirer.
Cercle
Touchez pour démarrer ou arrêter. Maintenez le doigt, puis tapez au rythme d’un morceau pour fixer le tempo.
Chiffres
Faites glisser pour accélérer ou ralentir. Un mouvement lent permet un réglage fin. −/+ change la valeur d’une unité.
L’écran à l’arrêt. Le seul texte est constitué des chiffres et de « BPM ».

Pulsation — au même instant, avec la même intensité

Le cercle gonfle quand le son arrive à l’oreille, et non lorsqu’il est émis. Le retard d’environ 0.1–0.3 seconde des écouteurs Bluetooth est compensé à partir de la latence de sortie signalée par iOS. L’amplitude du gonflement est proportionnelle au volume du clic : au premier temps, le son est plus aigu et plus fort, et le cercle gonfle davantage.

Graphique des clics et de la taille du cercle sur une mesure à quatre temps. La courbe monte immédiatement à chaque clic, atteint 1.25 fois la taille au repos au premier temps et 1.15 aux temps 2–4, puis descend légèrement sous 1 avant de se stabiliser.
Les clics (aplats) et la taille du cercle (courbe) sur une mesure à quatre temps, à 120 BPM. Le cercle atteint son maximum 0.02 seconde après le son, se contracte un peu trop, comme de la gelée, puis s’immobilise.

Le thread audio détermine l’instant des temps à l’échantillon près. Le calcul évite l’accumulation des erreurs : même après une heure de lecture continue, l’écart reste inférieur ou égal à 0.5 échantillon.

Tempo par frappes — le silence pendant la saisie

Un appui long fait trembler le cercle comme de la gelée. Tapez au rythme d’un morceau ou du tempo que vous imaginez : le cercle s’enfonce au point touché, oscille et reprend sa forme. La vibration vous restitue le tempo.

Six images du contour après une frappe sur le bord supérieur. Il s’enfonce à 0.03 seconde, commence à revenir à 0.08, se déforme légèrement verticalement et horizontalement à 0.17 et 0.3, puis redevient circulaire à 1.3 seconde.
Le contour après une frappe sur le bord supérieur, tracé avec les mêmes équations que l’app. Le pointillé représente un cercle parfait.
Une version de développement. Le cercle est gris en mode de saisie du tempo. En dessous, un panneau japonais « Réglage de la gelée » affiche des curseurs et leurs explications, dont « Élasticité (vitesse d’oscillation) : 3.6 cycles/seconde » et « Viscosité (amortissement) : 0.10 ».
J’ai réglé l’oscillation avec un panneau réservé à la version de développement. Je modifiais dix valeurs, dont l’élasticité et la viscosité, avec des curseurs, tout en tapant le cercle pour éprouver le résultat. Après comparaison avec « flan », « warabi mochi » et « plus liquide », j’ai retenu « gelée » : un rebond vif qui s’apaise en environ 0.9 seconde.

Le silence pendant les frappes est volontaire. Un retour sonore immédiat arriverait en retard en Bluetooth et se superposerait aux clics du métronome. Quand on cesse de taper, les clics au tempo saisi commencent presque inaudibles et atteignent leur volume habituel en six secondes.

Après cinq frappes, les points représentant la vibration rétrécissent progressivement, tandis que les barres des clics grandissent depuis un niveau presque inaudible pendant six secondes.
Cinq frappes à 120 BPM, puis un arrêt. De bas en haut : frappes, vibration (plus petit signifie plus faible), clics (plus haut signifie plus fort). Le volume augmente régulièrement en décibels pour éviter un saut soudain depuis un son ténu.

Son — choisir à l’oreille une hauteur qui porte au-dessus du saxophone

Les clics sont synthétisés à partir de sinusoïdes, sans fichiers audio. J’ai créé une page de comparaison et effectué trois écoutes comparatives sur le haut-parleur de l’iPhone en jouant du saxophone ténor. J’ai retenu 1875 Hz et 1250 Hz, soit 1.25 fois les fréquences initiales : au-dessus de la zone la plus forte du saxophone et en dessous de celle qui paraît facilement perçante.

Un axe de fréquences de 100 Hz à 10 kHz. Le saxophone ténor occupe le bas du spectre ; la zone perçante se situe à 2.5–4 kHz. Les clics à 1250 Hz et 1875 Hz sont entre les deux. Les fréquences initiales de 1000 Hz et 1500 Hz sont en pointillés.
La bande ombrée indique où se concentre l’énergie du saxophone ténor (plus faible vers la droite) ; les hachures indiquent les 2.5–4 kHz perçants. Les pointillés sont les sons initiaux (1000/1500 Hz), les traits pleins les sons retenus. La hauteur représente le volume.

Des sons plus aigus et plus longs, ou enrichis en harmoniques, étaient plus audibles. J’ai pourtant choisi dans la plage qui conservait un caractère électronique doux et neutre.

Soustraire — ce que j’ai laissé de côté

Rien qui fasse hésiter entre des options. J’ai vérifié pour chaque élément si l’app pouvait fonctionner sans lui, puis je l’ai retiré.

Publicité, suivi et comptes
Décidé dès le départ. L’app n’établit aucune communication réseau de sa propre initiative.
Écran de réglages
Tout se fait sur un seul écran.
Choix de timbres
Deux sons suffisent, pour les temps accentués et non accentués. Les options font hésiter.
Curseur de volume
Les boutons de volume de l’appareil suffisent.
Mode clair
Un seul écran noir.
Huit temps ou plus
Le 12/8 se compte en quatre temps, le 9/8 en trois.
Subdivisions (croches, triolets, doubles croches)
Elles ne sont pas indispensables. Elles restent le premier ajout envisagé.
Saisie numérique du tempo
−/+ et le glissement suffisent.

Réalisé en SwiftUI, sans bibliothèques externes. Fonctionne sur iPhone avec iOS 17 ou version ultérieure. Son nom anglais est No Ads Simplest Metronome. Je prépare sa sortie sur l’App Store (septembre 2026). Le mode d’emploi complet et la politique de confidentialité figurent sur la page d’assistance (en anglais).