Takafumi Horiuchi

Un metronomo che pulsa

Panoramica

Il cerchio al centro dello schermo pulsa al ritmo di ogni clic, rispecchiandone l’intensità. Ho creato un metronomo per iPhone senza pubblicità, account né schermata delle impostazioni.

La schermata del metronomo. Un cerchio bianco al centro di uno schermo nero, quattro punti sopra e 120 BPM con −/+ sotto. Il cerchio si gonfia e torna alla sua dimensione a ogni battito.
Questa schermata interattiva usa le stesse equazioni dell’app e funziona a 120 BPM, con quattro battiti per battuta. Tocca il cerchio per fermarla.

L’ho creato per esercitarmi con il sassofono tenore. Si apre e si può iniziare subito; il battito resta visibile anche quando il suono è difficile da sentire. Ho fatto tutto da solo, dall’ideazione al design, all’implementazione in SwiftUI e alla sintesi dei clic.

Comandi: toccare ciò che si vuole cambiare

Sullo schermo ci sono solo i punti dei battiti, un cerchio e il valore del tempo. Niente menu o istruzioni: si tocca direttamente ciò che si vuole cambiare.

La schermata da fermo. Un cerchio grigio chiaro con un triangolo di riproduzione al centro, quattro punti sopra, 120 BPM e −/+ sotto e una piccola ⓘ in alto a sinistra.
ⓘ
Apre la pagina di supporto.
Punti dei battiti
Tocca per aggiungere un battito, da uno a sette per battuta. Scorri per aggiungere o togliere battiti.
Cerchio
Tocca per avviare o fermare. Tieni premuto, poi batti il ritmo di un brano per impostare il tempo.
Tempo
Trascina per aumentare o diminuire il tempo. Muoviti lentamente per una regolazione più fine. Tocca − o + per variarlo di 1 BPM.
La schermata da fermo. L’unico testo è costituito dai numeri e da “BPM”.

Pulsazione: seguire il tempo e l’intensità di ogni clic

La pulsazione del cerchio viene temporizzata per allinearsi al clic usando la latenza di uscita comunicata da iOS. Gli auricolari Bluetooth possono introdurre un ritardo di circa 0,1–0,3 secondi. L’espansione è proporzionale al volume del clic: il primo battito ha un suono più acuto e forte e una pulsazione visibilmente più ampia.

Grafico dei clic e della dimensione del cerchio in una battuta di quattro battiti. La curva sale subito a ogni clic, raggiungendo 1.25 volte la dimensione a riposo al primo battito e 1.15 ai battiti 2–4; poi scende poco sotto 1 e si assesta.
Clic (aree piene) e dimensione del cerchio (linea) durante una battuta a 120 BPM, con quattro battiti. Il cerchio raggiunge la dimensione massima 0,02 secondi dopo l’inizio del clic, poi si contrae fino a diventare leggermente più piccolo della dimensione di riposo prima di stabilizzarsi, come gelatina.

Il thread audio programma ogni battito con precisione a livello di campione. Il calcolo dei tempi evita l’errore cumulativo, mantenendo lo scarto entro 0,5 campioni anche dopo un’ora di riproduzione continua.

Restano da confermare l’ambito e le condizioni di calcolo del valore di 0,5 campioni. Non va interpretato come una misura dell’istante in cui il suono raggiunge chi ascolta o della sincronizzazione con lo schermo.

Tap tempo: silenzio mentre batti il ritmo

Tieni premuto il cerchio per farlo oscillare come gelatina. Batti il ritmo di un brano o quello che hai in mente: il cerchio si deforma nel punto toccato, oscilla e ritorna. Il feedback aptico permette di sentire il tempo.

Sei fotogrammi del contorno dopo un tocco sul bordo superiore. Si infossa a 0.03 secondi, inizia a tornare a 0.08, si deforma leggermente in verticale e in orizzontale a 0.17 e 0.3 e torna circolare a 1.3 secondi.
Il contorno del cerchio dopo un solo tocco sul bordo superiore, disegnato con le stesse equazioni dell’app. Il contorno tratteggiato indica un cerchio perfetto.
Una versione di sviluppo. Il cerchio è grigio in modalità tap tempo. Sotto, un pannello giapponese di “Regolazione della gelatina” mostra cursori e spiegazioni, tra cui “Elasticità (velocità di oscillazione): 3.6 cicli/secondo” e “Viscosità (smorzamento): 0.10”.
Ho regolato l’oscillazione con un pannello disponibile soltanto nella versione di sviluppo. Tramite cursori ho modificato dieci parametri, tra cui elasticità e viscosità, toccando il cerchio per sentirne la risposta. Ho confrontato le impostazioni «budino», «warabi mochi» e «più liquido», scegliendo come predefinita «gelatina»: un rimbalzo vivace che si esaurisce in circa 0,9 secondi.

L’app rimane intenzionalmente silenziosa durante i tocchi. Un suono in risposta a ogni tocco introdurrebbe un ritardo udibile via Bluetooth e si sovrapporrebbe ai clic del metronomo. Quando smetti di toccare, i clic al tempo impostato iniziano quasi impercettibili e raggiungono gradualmente il volume normale in sei secondi.

Dopo cinque tocchi, i punti della vibrazione si riducono gradualmente, mentre le barre dei clic crescono da un livello quasi impercettibile nell’arco di sei secondi.
Cinque tocchi a 120 BPM, seguiti da una pausa. Dal basso verso l’alto: tocchi, vibrazioni (segni più piccoli indicano vibrazioni più deboli) e clic (segni più alti indicano clic più forti). Il volume aumenta a velocità costante in decibel, evitando un salto improvviso da un suono tenue.

Suono: scegliere un’altezza udibile mentre suono il sassofono

I clic sono sintetizzati da onde sinusoidali, senza file audio registrati. Ho realizzato una pagina di confronto e confrontato i suoni tre volte attraverso l’altoparlante dell’iPhone mentre suonavo il sassofono tenore. Ho scelto 1875 Hz e 1250 Hz, pari a 1,25 volte le frequenze originali. Si trovano sopra la fascia in cui l’energia del sassofono è più intensa e sotto quella che tende a suonare stridente.

Asse delle frequenze da 100 Hz a 10 kHz. La fascia del sassofono tenore occupa la parte bassa; quella stridente si trova a 2.5–4 kHz. I clic a 1250 Hz e 1875 Hz sono tra le due; gli originali a 1000 Hz e 1500 Hz sono tratteggiati.
La fascia ombreggiata mostra dove si concentra l’energia del sassofono tenore, che diminuisce verso destra. La fascia tratteggiata indica l’intervallo 2,5–4 kHz, che tende a risultare stridente. Le linee tratteggiate mostrano le frequenze originali (1000 e 1500 Hz), quelle continue le frequenze scelte. L’altezza delle linee rappresenta il volume.

I suoni più acuti e lunghi, e le versioni con armoniche aggiunte, erano più facili da sentire. Ho comunque scelto suoni che conservassero un timbro elettronico morbido e neutro.

Mantenere la semplicità: che cosa ho escluso

Ho escluso le opzioni che avrebbero fatto esitare nella scelta. Per ogni funzione, prima di eliminarla ho verificato se l’app potesse farne a meno.

Pubblicità, tracciamento e account
Ho escluso questi elementi fin dall’inizio. L’app non avvia comunicazioni di rete di propria iniziativa.
Schermata delle impostazioni
Tutto si svolge in un’unica schermata.
Scelta dei timbri
Bastano due suoni, per i battiti accentati e non accentati. Altre opzioni favoriscono l’indecisione.
Cursore del volume
Bastano i tasti del volume del dispositivo.
Modalità chiara
Un’unica schermata con sfondo nero.
Otto o più battiti per battuta
Il 12/8 si conta in quattro battiti, il 9/8 in tre.
Suddivisioni (ottavi, terzine, sedicesimi)
Non sono essenziali alla funzione principale dell’app, ma sarebbero la prima aggiunta che prenderei in considerazione.
Digitare il tempo
Bastano i pulsanti −/+ e il trascinamento.

Realizzata in SwiftUI senza librerie esterne, l’app funziona su iPhone con iOS 17 o successivo. Il nome inglese è No Ads Simplest Metronome. Le istruzioni complete e l’informativa sulla privacy sono disponibili nella pagina di supporto (in inglese).