Tempo Lock · Aliment pentru gândire
După ce clicul se stinge
Jocul începe cu un clic care marchează tempoul, apoi clicul amuțește, iar jucătorul trebuie să continue să atingă ecranul în același tempo, de-a lungul măsurilor tăcute.
Scris și editat în limba engleză. Această versiune în română a fost produsă prin traducere automată; acolo unde precizia contează, originalul în engleză este autoritatea. Citiți originalul în engleză →
Structura unei runde
O rundă din Tempo Lock este construită pornind de la o țintă care precizează patru lucruri: o valoare în bătăi pe minut pentru tempo, un număr de măsuri în care se aude clicul, un număr de măsuri tăcute care urmează și valoarea bătăilor pe măsură, numărătorul indicației de măsură. Motorul folosește aceste câmpuri pentru a construi întreaga rundă, de la prima bătaie sonoră până la ultima bătaie tăcută. Tempoul dă ritmul clicului, măsurile sonore hotărăsc cât timp aude jucătorul metronomul, iar măsurile tăcute ridică provocarea de a păstra acel tempo fără clic. Valoarea bătăilor pe măsură arată câte bătăi încap în fiecare măsură, iar jocul o fixează la 4, măsura de patru pătrimi, în fiecare rundă. 3
Motorul calculează, pornind de la țintă, mai multe valori derivate care susțin sistemul de punctare. Calculează lungimea bătăii ca șaizeci de mii împărțit la tempo, ceea ce dă durata unei singure bătăi în milisecunde. Calculează numărul total de bătăi ca sumă a măsurilor sonore și tăcute înmulțită cu bătăile pe măsură, ceea ce dă numărul total de bătăi prin care trebuie să bată jucătorul. Calculează începutul tăcerii ca număr de măsuri sonore înmulțit cu bătăile pe măsură, ceea ce marchează exact indicele bătăii la care clicul încetează. Aceste valori derivate formează temelia matematică a întregii runde. 3
Clicul și tăcerea
Clicul este semnalul sonor care stabilește tempoul rundei. El bate în tempoul-țintă pe durata măsurilor sonore, marcând fiecare bătaie cu un sunet scurt. Acest clic funcționează ca un metronom, producând un sunet la interval uniform, doar că aici intervalul este fixat de ținta rundei, nu de jucător. Mai întâi se aude o numărătoare de intrare de patru bătăi, iar prima bătaie a fiecărei măsuri primește un clic mai înalt. Muzicienii folosesc metronomul ca să cânte sau să exerseze în tempo, păstrând un tempo constant și o bătaie regulată. Clicul din joc are exact această funcție în faza sonoră, oferindu-i jucătorului un reper cu care să își potrivească atingerile. 2
Când măsurile sonore se încheie, clicul se stinge cu totul. Jucătorul nu mai aude metronomul și trebuie să continue să atingă ecranul în același tempo, de-a lungul măsurilor tăcute. Această tăcere creează miezul provocării din joc, fiindcă jucătorul trebuie să țină tempoul în minte fără reper exterior. Tăcerea nu este goală; este plină de amintirea tempoului și de încercarea jucătorului de a-l păstra. Punctajul va măsura mai târziu cât de bine a ținut jucătorul acel tempo în timpul tăcerii. 3
Marcaje de timp brute și determinism
Motorul lucrează în întregime cu marcaje de timp brute ale atingerilor, măsurate în milisecunde. Fiecare atingere este înregistrată ca o valoare de timp absolută, iar toate calculele pornesc de la aceste marcaje împreună cu ținta. Aceeași succesiune de marcaje de timp produce întotdeauna același rezultat, ceea ce face motorul determinist și testabil fără ceas. Această abordare înlătură orice ambiguitate din calculele de sincronizare și asigură că punctarea rămâne consecventă între rulări diferite cu aceleași date de intrare. 3
Funcțiile de punctare din motor primesc ca date de intrare marcajele de timp brute ale atingerilor, în milisecunde, împreună cu ținta. Această concepție înseamnă că motorul poate fi testat cu succesiuni de marcaje de timp prestabilite, iar rezultatele pot fi verificate fără a rula jocul în timp real. Determinismul se întinde și asupra generatorului de numere aleatorii cu sămânță, care alege tempoul-țintă al fiecărei runde. O anumită sămânță și o anumită dificultate dau de fiecare dată aceeași țintă, iar de acolo înainte fiecare regulă este testabilă. 3
Recuperarea tempoului din atingeri
Motorul recuperează o estimare a tempoului din intervalul mediu dintre atingeri consecutive. Calculează intervalele dintre atingeri, adică diferențele de timp dintre fiecare atingere și cea dinaintea ei, apoi le face media, sărind peste orice interval nul sau negativ; cu mai puțin de două atingeri nu raportează niciun tempo. Valoarea în bătăi pe minut se deduce din acest interval mediu, dând o măsură a tempoului pe care jucătorul l-a păstrat în succesiunea de atingeri. Această funcție lucrează independent de tempoul-țintă și oferă o măsurare obiectivă a prestației reale a jucătorului. 3
Tempoul recuperat este afișat pe ecranul de rezultat ca „Your tempo” („tempoul dumneavoastră”), alături de cel-țintă, astfel încât jucătorul să vadă cât de aproape a fost de ritmul dorit. Calculul pornește doar de la marcajele de timp brute, luând toate atingerile înregistrate, sonore și tăcute deopotrivă. El este raportat doar cu titlu informativ: punctajul propriu-zis se calculează din abatere, nu din tempoul recuperat. 3
Măsurarea abaterii de la grilă
Sistemul de punctare îl răsplătește pe jucător pentru că își ține atingerile aproape de grila ideală a metronomului în faza tăcută. Grila ideală este alcătuită din pozițiile de bătaie care ar apărea dacă un metronom ar porni la prima atingere a jucătorului și ar merge mai departe în tempoul-țintă. Fiecare atingere este asociată celei mai apropiate poziții ideale de bătaie, iar diferența dintre ele reprezintă abaterea acelei atingeri. Contează doar atingerile a căror bătaie cea mai apropiată cade în faza tăcută, iar pentru că fiecare este asociată celei mai apropiate bătăi, nicio atingere nu poate abate cu mai mult de o jumătate de bătaie. Fiecare bătaie din faza tăcută rămasă fără atingere este taxată ca o ratare de o jumătate de bătaie, cazul cel mai rău, și este cuprinsă în aceeași medie, așa că sărirea bătăilor urcă abaterea medie și coboară punctajul, iar un jucător care nu atinge nimic în tăcere primește zero. 3
Această abordare bazată pe abatere transformă păstrarea unui tempo într-o mărime măsurabilă. Motorul nu verifică pur și simplu dacă atingerile cad într-o fereastră oarecare; măsoară abaterea precisă față de pozițiile ideale. O păstrare perfectă, cu abatere medie zero, aduce 1000 de puncte, iar punctajul scade în linie dreaptă până la 0 la o abatere medie de un sfert de bătaie, așa că o abatere mai mică dă întotdeauna un punctaj mai mare. Scara se măsoară în bătăi, nu în milisecunde, așa că înseamnă același lucru la orice tempo: la 120 de bătăi pe minut, un sfert de bătaie înseamnă 125 de milisecunde, la 80 înseamnă 187,5. Un sfert de bătaie este, de altfel, și media la care ajunge atingerea la întâmplare, așa că atingerea aleatorie nu aduce mai nimic. Ecranul de rezultat raportează totuși abaterea medie în milisecunde și preface punctajul într-un verdict: „Locked in!” („fixat!”) de la 850 în sus, „Tight.” („strâns”) de la 650 în sus, „Wobbly.” („șovăielnic”) de la 350 în sus și „Lost the beat.” („ați pierdut bătaia”) sub acest prag. Aceasta creează o scară continuă a prestației, în locul unui rezultat binar de tip admis-respins, îngăduind o evaluare fină a preciziei temporale. 3
Niveluri de dificultate predefinite
Jocul oferă trei niveluri de dificultate predefinite — „Easy”, „Medium” și „Hard” (ușor, mediu și greu) —, care variază intervalul de tempo și numărul de măsuri tăcute. Fiecare nivel dă patru măsuri sonore. „Easy” extrage un tempo între 70 și 100 de bătăi pe minut și cere patru măsuri tăcute; „Medium” extrage între 90 și 130 și cere șase; „Hard” extrage între 110 și 170 și cere opt. Aceste niveluri le oferă jucătorilor o alegere a provocării, de la tempouri blânde cu porțiuni tăcute scurte până la tempouri rapide cu răstimpuri tăcute lungi. 3
Nivelurile predefinite lucrează în același cadru determinist ca tot restul motorului. Fiecare nivel definește o țintă cu valori precise ale câmpurilor, iar motorul prelucrează acea țintă exact cum ar prelucra oricare alta. Dificultatea stă în combinația dintre tempo și numărul de măsuri tăcute, care hotărăște cât de repede vin bătăile și cât timp trebuie jucătorul să le țină fără clic. Sistemul de punctare rămâne același la toate nivelurile, măsurând abaterea de la grila ideală indiferent de dificultatea aleasă, iar pentru că scara lui este fixată în fracțiuni de bătaie, un anumit punctaj înseamnă aceeași precizie relativă la un tempo rapid de „Hard” ca și la unul lent de „Easy”. 3
Tempoul din spatele jocului
În muzică, tempoul este viteza sau ritmul unei compoziții date, măsurat în bătăi pe minut. Un tempo de 60 de bătăi pe minut înseamnă o bătaie pe secundă, în timp ce un tempo de 120 de bătăi pe minut este de două ori mai rapid, adică două bătăi în fiecare secundă. Valoarea de notă a fiecărei bătăi este de obicei cea arătată de numitorul indicației de măsură. Tempoul poate fi arătat prin termeni italienești, de la unii lenți precum largo și andante până la unii rapizi precum allegro și presto, sau printr-o indicație de metronom care dă un anumit număr de bătăi pe minut. Indicațiile de tempo pot transmite și starea de spirit, nu doar viteza, iar un tempo nu trebuie neapărat să fie fix: un compozitor poate scrie un accelerando pentru a grăbi sau un ritardando pentru a încetini în cursul unei piese 1. Jocul folosește această noțiune de tempo ca valoare fixă măsurată în bătăi pe minut, numărul de bătăi pe minut al țintei dând ritmul întregii runde.
Tempoul din joc este valoarea în bătăi pe minut pe care o bate clicul și pe care jucătorul trebuie să o păstreze. Este un singur număr care definește viteza rundei și care apare în țintă alături de numărul de măsuri. Jucătorul atinge ecranul în acest tempo, iar motorul măsoară cât de bine îl păstrează. Tempoul nu se schimbă în timpul rundei; el este reperul constant față de care se evaluează prestația jucătorului. 3
Aparatul numit metronom
Metronomul este un aparat care produce un clic sau un alt sunet la un interval uniform, ce poate fi fixat de utilizator, de obicei în bătăi pe minut. Instrumentiștii și cântăreții exersează după el ca să păstreze un tempo constant și o bătaie egală. Un metronom mecanic tradițional folosește un pendul cu greutate: împingerea greutății în sus pe tijă încetinește tempoul, iar coborârea ei îl grăbește, iar mecanismul scoate un clic la fiecare oscilație. Johann Maelzel a brevetat un metronom mecanic în 1815 și l-a produs în serie începând din 1816, pornind de la o construcție mai veche, cu arc și pendul inversat, a lui Dietrich Nikolaus Winkel, și adăugându-i o scară numerică a tempoului; metronoamele moderne există și ca aparate electronice cu cuarț sau ca programe 2.
Clicul din joc funcționează ca un metronom în faza sonoră, bătând tempoul-țintă pe durata măsurilor sonore. El oferă intervalul uniform cu care jucătorul trebuie să își potrivească atingerile. Când clicul se stinge, jucătorul trebuie să păstreze același tempo fără aparat, ceea ce îi pune la încercare putința de a ține tempoul în sine. Rolul metronomului în joc este să stabilească tempoul și apoi să se retragă, lăsându-l pe jucător să ducă tempoul mai departe singur. 3
Ținta și câmpurile ei
Ținta este structura de date centrală care definește fiecare rundă. Ea conține patru câmpuri: tempoul în bătăi pe minut; numărul de măsuri sonore în care se aude clicul; numărul de măsuri tăcute care urmează; și bătăile pe măsură, numărătorul indicației de măsură, care este 4 pentru măsura de patru pătrimi. Aceste câmpuri hotărăsc împreună structura rundei, de la numărul de bătăi din faza sonoră până la cel din faza tăcută. 3
Motorul folosește ținta pentru a calcula toate valorile derivate care guvernează runda. Din tempo deduce durata fiecărei bătăi în milisecunde. Din numărul de măsuri și din bătăile pe măsură deduce numărul total de bătăi și bătaia la care începe tăcerea. Ținta este fixă pe toată runda, ceea ce înseamnă că tempoul și numărul de măsuri rămân constante. Jucătorul nu poate răspunde țintei decât atingând ecranul în tempoul potrivit și sincronizându-și atingerile cu grila ideală. 3
De la marcaje de timp la punctaj
Drumul de la marcajele de timp ale atingerilor până la punctajul final urmează o succesiune limpede de calcule. Mai întâi, jocul înregistrează fiecare atingere ca marcaj de timp în milisecunde, ignorând atingerile făcute cu mai mult de o jumătate de bătaie înainte de sfârșitul numărătorii de intrare de patru bătăi. În faza sonoră, jucătorul atinge ecranul odată cu clicul, formându-și simțul tempoului. Când clicul se stinge, jucătorul continuă să atingă ecranul de-a lungul măsurilor tăcute. Motorul măsoară apoi abaterea fiecărei atingeri din faza tăcută față de grila ideală a metronomului, ancorată la prima atingere, face media acestor abateri, socotind fiecare bătaie tăcută neatinsă ca o ratare de o jumătate de bătaie, și transpune media, luată ca fracțiune din bătaie, într-un punctaj de la 0 la 1000. Alături de punctaj raportează tempoul recuperat din intervalul mediu dintre atingeri și numărul de atingeri din faza tăcută. 3
Acest lanț de prelucrări este pe de-a-ntregul determinist. Cu aceeași sămânță și aceeași dificultate se generează aceeași țintă. Cu aceeași țintă și aceleași marcaje de timp ale atingerilor se calculează același punctaj. Motorul nu depinde de ceasul de perete și nici de vreun reper exterior; depinde doar de marcajele de timp și de țintă. Aceasta face sistemul deopotrivă de încredere și testabil, fiindcă fiecare pas poate fi verificat cu date de intrare prestabilite și rezultate așteptate. 3
Faza tăcută ca măsurătoare
Faza tăcută este locul unde are loc măsurătoarea. În faza sonoră, clicul oferă un reper, iar jucătorul își poate potrivi atingerile după el. În faza tăcută nu există un asemenea reper, iar atingerile jucătorului dezvăluie cât de bine a interiorizat tempoul. Motorul măsoară această interiorizare comparând fiecare atingere cu poziția ideală a bătăii, extrapolată de la prima atingere a jucătorului în tempoul-țintă. Diferența dintre atingere și poziția ideală este abaterea acelei atingeri. 3
Faza tăcută este și locul unde concepția jocului se vede cel mai limpede. Clicul bate tempoul-țintă pe durata măsurilor sonore, apoi se stinge, iar jucătorul trebuie să continue să atingă ecranul în același tempo, de-a lungul măsurilor tăcute. Durata fazei tăcute, hotărâtă de numărul de măsuri tăcute și de bătăile pe măsură, stabilește lungimea perioadei de măsurare. Fazele tăcute mai lungi îl obligă pe jucător să țină tempoul mai multe bătăi, ceea ce sporește șansa ca abaterea să se acumuleze. Sistemul de punctare măsoară abaterea fiecărei atingeri din faza tăcută, taxează fiecare bătaie tăcută rămasă neatinsă și le face media pe toate într-un punctaj final, așa că o mică eroare de tempo care crește pe parcursul unei păstrări lungi urcă abaterea medie și coboară punctajul. 3
Determinismul pornit de la o sămânță
Întregul sistem este determinist, pornind de la un generator de numere aleatorii cu sămânță. O anumită sămânță dă de fiecare dată aceeași țintă, iar de acolo înainte fiecare regulă este testabilă. Sămânța hotărăște tempoul, extras ca număr întreg din intervalul dificultății alese; numărul de măsuri vine din chiar nivelul de dificultate. Pentru că sămânța și dificultatea determină pe deplin ținta, ele produc întotdeauna aceeași structură de rundă. Această proprietate se întinde și asupra punctării, de vreme ce aceleași marcaje de timp ale atingerilor față de aceeași țintă dau întotdeauna același punctaj. 3
Determinismul pornit de la o sămânță îi slujește deopotrivă jucătorului și dezvoltatorului. Pentru jucător, înseamnă că rundele sunt consecvente și cinstite; aceeași succesiune de atingeri va da întotdeauna același rezultat. Modul Zilnic își obține sămânța din data în timp universal, așa că toți cei care joacă în ziua respectivă la o anumită dificultate primesc aceeași țintă, în timp ce modul Exercițiu alege o sămânță aleatorie nouă pentru fiecare rundă. Pentru dezvoltator, înseamnă că motorul poate fi testat temeinic cu semințe și succesiuni de atingeri prestabilite. Determinismul nu este o constrângere; este o însușire care face sistemul de sincronizare al jocului transparent și de încredere. 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.