Tempo Lock · Spunti di riflessione
Quando il click si spegne
Il gioco comincia con un click che scandisce il tempo, poi quel click tace, e il giocatore deve continuare a battere lo stesso tempo lungo le battute silenziose.
Scritto e redatto in inglese. Questa versione italiana è stata prodotta con traduzione automatica; dove conta la precisione, fa fede l'originale inglese. Leggi l'originale in inglese →
La struttura di un round
Un round di Tempo Lock è costruito a partire da un target che specifica quattro cose: un valore di battiti per minuto per il tempo, un numero di battute durante le quali il click suona, un numero di battute silenziose che seguono e il valore di battiti per battuta, cioè il numeratore dell'indicazione di tempo. Il motore usa questi campi per costruire l'intero round, dal primo battito udibile all'ultimo battito silenzioso. Il tempo fissa l'andatura del click, le battute udibili determinano per quanto il giocatore sente il metronomo e le battute silenziose stabiliscono la sfida di tenere quel tempo senza il click. Il valore di battiti per battuta definisce quanti battiti cadono in ogni battuta, e il gioco lo imposta a 4, il tempo ordinario, in ogni round. 3
Il motore calcola dal target diversi valori derivati che servono al sistema di punteggio. Calcola la durata del battito come sessantamila diviso il tempo, che dà la durata di un singolo battito in millisecondi. Calcola il numero totale di battiti come la somma delle battute udibili e silenziose moltiplicata per i battiti per battuta, che dà il numero complessivo di battiti che il giocatore deve percorrere battendo. Calcola l'inizio del silenzio come le battute udibili moltiplicate per i battiti per battuta, il che segna l'esatto indice di battito in cui il click smette di suonare. Questi valori derivati costituiscono la base matematica dell'intero round. 3
Il click e il silenzio
Il click è il segnale udibile che stabilisce il tempo del round. Suona al tempo del target per tutta la durata delle battute udibili, segnando ogni battito con un suono breve. Questo click funziona come un metronomo, producendo un suono udibile a intervalli uniformi, anche se qui l'intervallo è fissato dal target del round e non dal giocatore. Per primo suona un conteggio iniziale di quattro battiti, e il primo battito di ogni battuta riceve un click di tono più acuto. I musicisti usano il metronomo per suonare o esercitarsi a tempo, mantenendo un'andatura costante e una pulsazione regolare. Il click del gioco svolge la stessa funzione durante la fase udibile, offrendo al giocatore un punto di riferimento da eguagliare con i propri tocchi. 2
Quando le battute udibili finiscono, il click si spegne del tutto. Il giocatore non sente più il metronomo e deve continuare a battere allo stesso tempo lungo le battute silenziose. Questo silenzio crea la sfida centrale del gioco, perché il giocatore deve tenere il tempo nella propria mente senza il riferimento esterno. Il silenzio non è vuoto: è pieno del ricordo del tempo e del tentativo del giocatore di mantenerlo. Il punteggio misurerà poi quanto bene il giocatore ha tenuto quel tempo durante il silenzio. 3
Timestamp grezzi e determinismo
Il motore lavora interamente a partire dai timestamp grezzi dei tocchi, misurati in millisecondi. Ogni tocco è registrato come un valore temporale assoluto, e tutti i calcoli derivano da questi timestamp insieme al target. La stessa sequenza di timestamp produce sempre lo stesso risultato, il che rende il motore deterministico e testabile senza un orologio. Questo approccio elimina ogni ambiguità dai calcoli temporali e garantisce che il punteggio sia coerente fra esecuzioni diverse con gli stessi dati in ingresso. 3
Le funzioni di punteggio del motore prendono in ingresso i timestamp grezzi dei tocchi in millisecondi insieme al target. Questa scelta di progetto fa sì che il motore possa essere testato con sequenze di timestamp predeterminate e che i risultati possano essere verificati senza dover eseguire il gioco in tempo reale. Il determinismo si estende al generatore di numeri casuali con seed che sceglie il tempo del target per ogni round. Un dato seed e una data difficoltà fissano sempre lo stesso target, e da quel punto in poi ogni regola è verificabile. 3
Ricavare il tempo dai tocchi
Il motore ricava una stima del tempo dall'intervallo medio fra tocchi consecutivi. Calcola gli intervalli fra un tocco e l'altro, cioè le differenze di tempo fra ogni tocco e quello che lo precede, e poi ne calcola la media, scartando ogni intervallo nullo o negativo; con meno di due tocchi non riporta alcun tempo. Il valore in battiti per minuto è derivato da questo intervallo medio e dà una misura del tempo che il giocatore ha mantenuto durante la sequenza battuta. Questa funzione opera indipendentemente dal tempo del target e fornisce una misura oggettiva della prestazione effettiva del giocatore. 3
Il tempo ricavato compare nella schermata dei risultati come "Your tempo" ("il tuo tempo") accanto a quello del target, così il giocatore può vedere quanto si è avvicinato all'andatura prevista. Il calcolo lavora sui soli timestamp grezzi, su ogni tocco registrato, udibile o silenzioso. È riportato a puro titolo informativo: il punteggio vero e proprio è calcolato dalla deriva, non dal tempo ricavato. 3
Misurare la deriva dalla griglia
Il sistema di punteggio premia il giocatore che tiene i propri tocchi vicini alla griglia ideale del metronomo durante la fase silenziosa. La griglia ideale è formata dalle posizioni dei battiti che si avrebbero se un metronomo partisse sul primo tocco del giocatore e proseguisse al tempo del target. Ogni tocco viene associato alla posizione di battito ideale più vicina, e la differenza fra le due è la deriva di quel tocco. Contano solo i tocchi il cui battito più vicino cade nella fase silenziosa e, poiché ciascuno è associato al battito più vicino, nessun singolo tocco può derivare di più di mezzo battito. Ogni battito della fase silenziosa lasciato senza tocco viene addebitato come una mancanza di mezzo battito, il caso peggiore, ed entra nella stessa media, così saltare battiti alza la deriva media e abbassa il punteggio, e chi non tocca nulla nel silenzio totalizza zero. 3
Questo approccio basato sulla deriva trasforma il tenere un tempo in una quantità misurabile. Il motore non si limita a controllare se i tocchi cadano entro una certa finestra: misura lo scostamento preciso dalle posizioni ideali. Una tenuta perfetta, con deriva media nulla, vale 1000, e il punteggio scende in linea retta fino a 0 con una deriva media di un quarto di battito, così una deriva minore produce sempre un punteggio più alto. La scala è misurata in battiti anziché in millisecondi, perciò significa la stessa cosa a qualunque tempo: a 120 battiti per minuto un quarto di battito vale 125 millisecondi, a 80 ne vale 187,5. Un quarto di battito è anche ciò che si ottiene in media battendo a caso, perciò battere a caso non frutta quasi nulla. La schermata dei risultati riporta comunque la deriva media in millisecondi e traduce il punteggio in un verdetto: "Locked in!" ("in presa") da 850 in su, "Tight." ("preciso") da 650, "Wobbly." ("incerto") da 350, e "Lost the beat." ("hai perso il tempo") sotto quella soglia. Nasce così una scala continua di prestazione anziché un esito binario di successo o fallimento, che permette una valutazione fine della precisione ritmica. 3
I livelli di difficoltà preimpostati
Il gioco offre tre livelli di difficoltà preimpostati, Easy, Medium e Hard (facile, medio e difficile), che variano l'intervallo dei tempi e il numero di battute silenziose. Ogni livello dà quattro battute udibili. Easy estrae un tempo fra 70 e 100 battiti per minuto e chiede quattro battute silenziose; Medium estrae fra 90 e 130 e ne chiede sei; Hard estrae fra 110 e 170 e ne chiede otto. Questi livelli offrono al giocatore una scelta di sfida, da tempi tranquilli con brevi sezioni silenziose a tempi veloci con lunghe tenute in silenzio. 3
I livelli preimpostati operano nello stesso quadro deterministico del resto del motore. Ciascuno definisce un target con valori specifici nei suoi campi, e il motore elabora quel target esattamente come farebbe con qualsiasi altro. La difficoltà sta nella combinazione fra tempo e numero di battute silenziose, che stabilisce quanto in fretta arrivano i battiti e per quanto a lungo il giocatore deve tenerli senza il click. Il sistema di punteggio resta coerente fra tutti i livelli, misurando la deriva dalla griglia ideale a prescindere dalla difficoltà scelta e, poiché la sua scala è espressa in frazioni di battito, uno stesso punteggio indica la stessa precisione relativa a un tempo veloce di Hard come a un tempo lento di Easy. 3
Il tempo dietro il gioco
In musica il tempo è la velocità o l'andatura di una data composizione, misurata in battiti per minuto. Un tempo di 60 battiti per minuto indica un battito al secondo, mentre un tempo di 120 battiti per minuto è due volte più rapido e indica due battiti ogni secondo. Il valore di nota di ciascun battito è di solito quello indicato dal denominatore dell'indicazione di tempo. Il tempo può essere segnalato da termini italiani, da quelli lenti come largo e andante a quelli veloci come allegro e presto, oppure da un'indicazione metronomica che dà un BPM preciso. Le indicazioni di tempo possono trasmettere il carattere oltre alla velocità, e un tempo non deve per forza restare fisso: un compositore può scrivere un accelerando per accelerare o un ritardando per rallentare all'interno di un brano 1. Il gioco usa questo concetto di tempo come valore fisso misurato in battiti per minuto, e il bpm del target fissa l'andatura dell'intero round.
Il tempo nel gioco è il valore in battiti per minuto che il click suona e che il giocatore deve tenere. È un singolo numero che definisce la velocità del round e compare nel target accanto ai conteggi delle battute. Il giocatore batte a questo tempo e il motore misura quanto bene lo mantiene. Il tempo non cambia durante il round: è il riferimento costante rispetto al quale viene valutata la prestazione del giocatore. 3
Il metronomo come dispositivo
Un metronomo è un dispositivo che produce un click udibile, o un altro suono, a intervalli uniformi impostabili dall'utente, di solito in battiti per minuto. Strumentisti e cantanti si esercitano insieme a esso per tenere un tempo costante e una pulsazione uniforme. Un metronomo meccanico tradizionale usa un pendolo con un contrappeso: facendo scorrere il peso verso l'alto lungo l'asta il tempo rallenta, facendolo scorrere verso il basso accelera, e il meccanismo produce un click a ogni oscillazione. Johann Maelzel brevettò un metronomo meccanico nel 1815 e lo produsse in serie dal 1816, partendo da un precedente progetto a molla con pendolo rovesciato di Dietrich Nikolaus Winkel e aggiungendovi una scala numerica dei tempi; i metronomi moderni esistono anche come dispositivi elettronici al quarzo e come software 2.
Il click del gioco funziona da metronomo durante la fase udibile, suonando il tempo del target per le battute udibili. Fornisce l'intervallo uniforme che il giocatore deve eguagliare con i propri tocchi. Quando il click si spegne, il giocatore deve mantenere lo stesso tempo senza il dispositivo, il che mette alla prova la sua capacità di tenere il tempo dentro di sé. Il ruolo del metronomo nel gioco è stabilire il tempo e poi togliersi di mezzo, lasciando che sia il giocatore a portarlo avanti da solo. 3
Il target e i suoi campi
Il target è la struttura dati centrale che definisce ogni round. Contiene quattro campi: il tempo in battiti per minuto; il numero di battute udibili durante le quali suona il click; il numero di battute silenziose che seguono; e i battiti per battuta, cioè il numeratore dell'indicazione di tempo, che vale 4 per il tempo ordinario. Questi campi determinano insieme la struttura del round, dal numero di battiti della fase udibile a quello della fase silenziosa. 3
Il motore usa il target per calcolare tutti i valori derivati che governano il round. Dal tempo ricava la durata di ciascun battito in millisecondi. Dai conteggi delle battute e dai battiti per battuta ricava il numero totale di battiti e il battito in cui comincia il silenzio. Il target resta fisso per tutto il round, il che significa che il tempo e i conteggi delle battute restano costanti. Il giocatore può rispondere al target solo battendo al tempo giusto e collocando i propri tocchi sulla griglia ideale. 3
Dai timestamp al punteggio
Il percorso dai timestamp dei tocchi al punteggio finale segue una sequenza chiara di calcoli. Per prima cosa il gioco registra ogni tocco come un timestamp in millisecondi, ignorando i tocchi effettuati più di mezzo battito prima della fine del conteggio iniziale di quattro battiti. Durante la fase udibile il giocatore batte insieme al click e si costruisce il proprio senso del tempo. Quando il click si spegne, il giocatore continua a battere lungo le battute silenziose. Il motore misura poi la deriva di ogni tocco della fase silenziosa rispetto alla griglia ideale del metronomo ancorata al primo tocco, ne fa la media contando ogni battito silenzioso non toccato come una mancanza di mezzo battito, e converte quella media, presa come frazione del battito, in un punteggio da 0 a 1000. Insieme al punteggio riporta il tempo ricavato dall'intervallo medio fra i tocchi e il numero di tocchi della fase silenziosa. 3
Questa catena è interamente deterministica. A parità di seed e di difficoltà viene generato lo stesso target. A parità di target e di timestamp dei tocchi viene calcolato lo stesso punteggio. Il motore non dipende dall'orologio di sistema né da alcun riferimento esterno: dipende solo dai timestamp e dal target. Questo rende il sistema affidabile e verificabile, perché ogni passaggio può essere controllato con dati in ingresso predeterminati e risultati attesi. 3
La fase silenziosa come misura
La fase silenziosa è il punto in cui avviene la misura. Durante la fase udibile il click fornisce un riferimento e il giocatore può correggere i propri tocchi per adeguarvisi. Durante la fase silenziosa un riferimento del genere non esiste, e i tocchi del giocatore rivelano quanto bene abbia interiorizzato il tempo. Il motore misura questa interiorizzazione confrontando ogni tocco con la posizione di battito ideale estrapolata dal primo tocco del giocatore al tempo del target. La differenza fra il tocco e la posizione ideale è la deriva di quel tocco. 3
La fase silenziosa è anche il punto in cui il progetto del gioco si rivela con più chiarezza. Il click suona il tempo del target per le battute udibili, poi si spegne, e il giocatore deve continuare a battere lo stesso tempo lungo le battute silenziose. La durata della fase silenziosa, determinata dal numero di battute silenziose e dai battiti per battuta, stabilisce la lunghezza del periodo di misura. Fasi silenziose più lunghe obbligano il giocatore a tenere il tempo per più battiti, il che aumenta la possibilità che la deriva si accumuli. Il sistema di punteggio misura la deriva di ogni tocco della fase silenziosa, addebita ogni battito silenzioso lasciato senza tocco e fa la media del tutto in un punteggio finale, così un piccolo errore di tempo che cresce lungo una tenuta lunga alza la deriva media e abbassa il punteggio. 3
Determinismo a partire dal seed
L'intero sistema è deterministico a partire da un generatore di numeri casuali con seed. Un dato seed fissa sempre lo stesso target, e da quel punto in poi ogni regola è verificabile. Il seed determina il tempo, estratto come numero intero dall'intervallo della difficoltà scelta; i conteggi delle battute vengono invece dal livello di difficoltà stesso. Poiché il seed e la difficoltà determinano completamente il target, producono sempre la stessa struttura di round. Questa proprietà si estende anche al punteggio, dato che gli stessi timestamp dei tocchi con lo stesso target producono sempre lo stesso punteggio. 3
Il determinismo a partire dal seed serve sia al giocatore sia allo sviluppatore. Per il giocatore significa che i round sono coerenti ed equi: la stessa sequenza di tocchi darà sempre lo stesso risultato. La modalità Daily (quotidiana) ricava il proprio seed dalla data in UTC, così chiunque giochi quel giorno a una data difficoltà riceve lo stesso target, mentre Practice (allenamento) sceglie un nuovo seed casuale per ogni round. Per lo sviluppatore significa che il motore può essere collaudato a fondo con seed e sequenze di tocchi predeterminati. Il determinismo non è un vincolo: è una caratteristica che rende trasparente e affidabile il sistema temporale del gioco. 3
Sources & notes
- "Tempo," Wikipedia, in music, tempo is the speed or pace of a given composition, measured in beats per minute (BPM): a tempo of 60 beats per minute signifies one beat per second, while a tempo of 120 beats per minute is twice as rapid, signifying two beats every second. The note value of each beat is typically the one indicated by the denominator of the time signature. Tempo may be indicated by Italian markings, from slow ones such as largo and andante (at a walking pace) to fast ones such as allegro and presto, or by a metronome mark giving a specific BPM. Tempo markings can convey mood as well as speed, and a tempo need not be fixed: a composer may write an accelerando to speed up or a ritardando to slow down within a piece. en.wikipedia.org/wiki/Tempo.
- "Metronome," Wikipedia, a device that produces an audible click or other sound at a uniform interval that can be set by the user, typically in beats per minute. Musicians use a metronome to play or practise in time, keeping a steady tempo and a regular beat. A traditional mechanical metronome uses a weighted pendulum: sliding the weight up the rod slows the tempo and sliding it down speeds it up, and the mechanism produces a click with each swing. Johann Maelzel patented a mechanical metronome in 1815 and mass-produced it from 1816, building on an earlier spring-powered, inverted-pendulum design by Dietrich Nikolaus Winkel and adding a numerical tempo scale; modern metronomes also come as quartz electronic devices and software. en.wikipedia.org/wiki/Metronome.
- Tempo Lock game engine: a pure, deterministic timing engine with no audio and no DOM. A target sets a tempo in beats per minute, a number of audible bars while a click plays, a number of silent bars to hold after it stops, and a beats-per-bar time-signature numerator (4 for 4/4). The click plays the target tempo for the audible bars, then cuts out, and the player must keep tapping the same tempo through the silent bars. The beat length in milliseconds is sixty thousand divided by the tempo; the total beat count is the audible plus silent bars times the beats per bar; and the silent phase starts at the audible bars times the beats per bar. The scoring functions take raw tap timestamps in milliseconds together with the target, so the same inputs always give the same result and the engine is testable without a clock. The tempo is recovered from the average interval between taps. Drift is the average distance of silent-phase taps from the nearest beat of an ideal grid anchored on the first tap and stepped at the target tempo; each silent-phase beat without a tap counts as a miss of half a beat, and with fewer than two taps the drift is half a beat. The score is 1000 at zero drift, falling linearly to 0 at a quarter of a beat, so the scale is relative to the tempo; the result grades are “Locked in!” at 850 or more, “Tight.” at 650 or more, “Wobbly.” at 350 or more, and “Lost the beat.” below that. Difficulty presets: Easy 70–100 BPM with 4 audible and 4 silent bars, Medium 90–130 with 4 and 6, Hard 110–170 with 4 and 8. The tempo is drawn from a seeded random number generator; Daily mode seeds it from the UTC date, Practice from a random number. Read from the game’s own source.
- Further reading on Metronome, Re-examining Czerny’s and Moscheles’s Metronome Marks for Beethoven’s Piano Sonatas. doi.org.
- Further reading on Metronome, Turn the Beat On: An Evidenced-Based Practice Journey Implementing Metronome Use in Emergency Department Cardiac Arrest . pubmed.ncbi.nlm.nih.gov.