Tempo Lock · Matière à réflexion
Après le silence du clic
La partie commence par un clic qui marque le tempo, puis ce clic se tait, et le joueur doit continuer à taper le même tempo pendant les mesures silencieuses.
Rédigé et édité en anglais. Cette version française a été produite par traduction automatique ; en cas de doute sur un point précis, l'original anglais fait foi. Lire l'original en anglais →
La structure d'une manche
Une manche de Tempo Lock est bâtie à partir d'une cible qui précise quatre choses : une valeur de battements par minute pour le tempo, un nombre de mesures pendant lesquelles le clic joue, un nombre de mesures silencieuses qui suivent, et la valeur de battements par mesure, le numérateur de la signature rythmique. Le moteur se sert de ces champs pour construire la manche entière, du premier battement audible au dernier battement silencieux. Le tempo fixe l'allure du clic, les mesures audibles déterminent combien de temps le joueur entend le métronome, et les mesures silencieuses posent le défi de tenir ce tempo sans le clic. La valeur de battements par mesure définit combien de battements comporte chaque mesure, et le jeu la fixe à 4, la mesure à quatre temps, dans toutes les manches. 3
Le moteur calcule plusieurs valeurs dérivées à partir de la cible pour alimenter le système de score. Il calcule la durée du battement comme soixante mille divisé par le tempo, ce qui donne la durée d'un seul battement en millisecondes. Il calcule le nombre total de battements comme la somme des mesures audibles et silencieuses multipliée par le nombre de battements par mesure, ce qui donne le nombre total de battements que le joueur doit parcourir. Il calcule le début du silence comme le nombre de mesures audibles multiplié par le nombre de battements par mesure, ce qui marque l'indice exact du battement où le clic cesse de jouer. Ces valeurs dérivées forment le socle mathématique de toute la manche. 3
Le clic et le silence
Le clic est le signal audible qui établit le tempo de la manche. Il joue au tempo cible pendant toute la durée des mesures audibles, marquant chaque battement d'un son bref. Ce clic fonctionne comme un métronome, produisant un son audible à intervalle régulier, à ceci près que l'intervalle est ici fixé par la cible de la manche et non par le joueur. Un décompte de quatre battements se fait entendre d'abord, et le premier battement de chaque mesure reçoit un clic plus aigu. Les musiciens utilisent un métronome pour jouer ou s'entraîner en mesure, en maintenant un tempo stable et un battement régulier. Le clic du jeu remplit exactement cette fonction pendant la phase audible : il fournit au joueur un point de référence auquel accorder ses appuis. 2
Lorsque les mesures audibles s'achèvent, le clic s'interrompt complètement. Le joueur n'entend plus le métronome et doit continuer à taper au même tempo pendant les mesures silencieuses. Ce silence constitue le défi central du jeu, car le joueur doit tenir le tempo dans sa tête, sans référence extérieure. Le silence n'est pas vide : il est rempli du souvenir du tempo et de l'effort du joueur pour le maintenir. Le score mesurera ensuite avec quelle justesse le joueur a tenu ce tempo pendant le silence. 3
Horodatages bruts et déterminisme
Le moteur fonctionne entièrement à partir des horodatages bruts des appuis, mesurés en millisecondes. Chaque appui est enregistré comme une valeur de temps absolue, et tous les calculs découlent de ces horodatages et de la cible. La même suite d'horodatages produit toujours le même résultat, ce qui rend le moteur déterministe et testable sans horloge. Cette approche lève toute ambiguïté dans les calculs temporels et garantit que le score reste cohérent d'une exécution à l'autre avec les mêmes entrées. 3
Les fonctions de score du moteur prennent en entrée les horodatages bruts des appuis, en millisecondes, ainsi que la cible. Cette conception permet de tester le moteur avec des suites d'horodatages prédéterminées et d'en vérifier les sorties sans avoir à faire tourner le jeu en temps réel. Le déterminisme s'étend au générateur de nombres aléatoires initialisé par une graine qui choisit le tempo cible de chaque manche. Une graine et une difficulté données fixent toujours la même cible, et chaque règle est testable à partir de là. 3
Retrouver le tempo à partir des appuis
Le moteur retrouve une estimation du tempo à partir de l'intervalle moyen entre appuis consécutifs. Il calcule les intervalles entre appuis, c'est-à-dire les écarts de temps entre chaque appui et le précédent, puis en calcule la moyenne, en écartant tout intervalle nul ou négatif ; avec moins de deux appuis, il n'annonce aucun tempo. La valeur en battements par minute se déduit de cet intervalle moyen et donne une mesure du tempo que le joueur a tenu pendant la suite d'appuis. Cette fonction opère indépendamment du tempo cible et fournit une mesure objective de la performance réelle du joueur. 3
Le tempo retrouvé s'affiche sur l'écran de résultat sous l'intitulé « Your tempo », votre tempo, à côté de la cible, pour que le joueur voie à quel point il s'est approché de l'allure visée. Le calcul se fait à partir des seuls horodatages bruts, sur l'ensemble des appuis enregistrés, audibles comme silencieux. Il n'est donné qu'à titre indicatif : le score, lui, se calcule à partir de la dérive et non du tempo retrouvé. 3
Mesurer la dérive par rapport à la grille
Le système de score récompense le joueur qui garde ses appuis proches de la grille idéale du métronome pendant la phase silencieuse. Cette grille idéale est faite des positions de battement qu'occuperait un métronome parti sur le premier appui du joueur et poursuivi au tempo cible. Chaque appui est rattaché à la position de battement idéale la plus proche, et l'écart entre les deux constitue la dérive de cet appui. Seuls comptent les appuis dont le battement le plus proche tombe dans la phase silencieuse et, comme chacun est rattaché au battement le plus proche, aucun appui ne peut dériver de plus d'un demi-battement. Chaque battement de la phase silencieuse laissé sans appui est compté comme un manque d'un demi-battement, le pire cas, et intégré à la même moyenne : sauter des battements fait donc monter la dérive moyenne et baisser le score, et un joueur qui n'appuie pas du tout pendant le silence obtient zéro. 3
Cette approche fondée sur la dérive fait de la tenue d'un tempo une grandeur mesurable. Le moteur ne se contente pas de vérifier si les appuis tombent dans une fenêtre : il mesure l'écart précis par rapport aux positions idéales. Une tenue parfaite, à dérive moyenne nulle, vaut 1000, et le score décroît en ligne droite jusqu'à 0 pour une dérive moyenne d'un quart de battement ; une dérive plus faible donne donc toujours un score plus élevé. L'échelle se mesure en battements plutôt qu'en millisecondes, si bien qu'elle signifie la même chose à tous les tempos : à 120 battements par minute, un quart de battement fait 125 millisecondes ; à 80, il en fait 187,5. Un quart de battement est aussi ce que donne en moyenne une frappe au hasard, de sorte qu'appuyer au hasard ne rapporte pratiquement rien. L'écran de résultat indique tout de même la dérive moyenne en millisecondes, et traduit le score en verdict : « Locked in! » (verrouillé) à partir de 850, « Tight. » (serré) à partir de 650, « Wobbly. » (vacillant) à partir de 350, et « Lost the beat. » (le battement est perdu) en dessous. On obtient ainsi une échelle continue de performance plutôt qu'un simple verdict de réussite ou d'échec, ce qui permet une appréciation fine de la précision temporelle. 3
Les préréglages de difficulté
Le jeu propose trois préréglages de difficulté, Easy, Medium et Hard, c'est-à-dire facile, moyen et difficile, qui font varier la plage de tempo et le nombre de mesures silencieuses. Chaque préréglage donne quatre mesures audibles. Easy tire un tempo entre 70 et 100 battements par minute et demande quatre mesures silencieuses ; Medium tire entre 90 et 130 et en demande six ; Hard tire entre 110 et 170 et en demande huit. Ces préréglages offrent au joueur un choix de défi, des tempos paisibles avec de courtes sections silencieuses aux tempos rapides avec de longues tenues silencieuses. 3
Les préréglages fonctionnent dans le même cadre déterministe que le reste du moteur. Chacun définit une cible avec des valeurs de champs précises, et le moteur traite cette cible exactement comme n'importe quelle autre. La difficulté tient à la combinaison du tempo et du nombre de mesures silencieuses, qui fixe à quelle vitesse les battements arrivent et combien de temps le joueur doit les tenir sans le clic. Le système de score reste identique d'un préréglage à l'autre : il mesure la dérive par rapport à la grille idéale quelle que soit la difficulté choisie et, parce que son échelle est graduée en fractions de battement, un score donné représente la même précision relative à un tempo rapide en Hard qu'à un tempo lent en Easy. 3
Le tempo derrière le jeu
En musique, le tempo est la vitesse ou l'allure d'une composition donnée, mesurée en battements par minute. Un tempo de 60 battements par minute signifie un battement par seconde, tandis qu'un tempo de 120 battements par minute est deux fois plus rapide et signifie deux battements par seconde. La valeur de note de chaque battement est généralement celle qu'indique le dénominateur de la signature rythmique. Le tempo peut être indiqué par des termes italiens, des plus lents comme largo et andante aux plus rapides comme allegro et presto, ou par une indication métronomique donnant un BPM précis. Les indications de tempo peuvent transmettre une atmosphère autant qu'une vitesse, et un tempo n'est pas nécessairement fixe : un compositeur peut écrire un accelerando pour accélérer ou un ritardando pour ralentir au fil d'un morceau 1. Le jeu reprend cette notion de tempo comme valeur fixe mesurée en battements par minute, le bpm cible fixant l'allure de toute la manche.
Le tempo dans le jeu est la valeur en battements par minute que le clic joue et que le joueur doit tenir. C'est un nombre unique qui définit la vitesse de la manche, et il figure dans la cible aux côtés des nombres de mesures. Le joueur tape à ce tempo, et le moteur mesure avec quelle justesse il le maintient. Le tempo ne change pas pendant la manche : c'est le point de référence constant à l'aune duquel la performance du joueur est évaluée. 3
L'appareil métronome
Un métronome est un appareil qui produit un clic audible, ou un autre son, à intervalle régulier réglable par l'utilisateur, généralement en battements par minute. Instrumentistes et chanteurs s'exercent avec lui pour tenir un tempo stable et un battement égal. Un métronome mécanique traditionnel utilise un pendule lesté : faire glisser le poids vers le haut de la tige ralentit le tempo et le faire glisser vers le bas l'accélère, et le mécanisme produit un clic à chaque oscillation. Johann Maelzel a breveté un métronome mécanique en 1815 et l'a produit en série à partir de 1816, en s'appuyant sur un dispositif antérieur à ressort et à pendule inversé dû à Dietrich Nikolaus Winkel, auquel il a ajouté une échelle numérique de tempo ; les métronomes modernes existent aussi sous forme d'appareils électroniques à quartz et de logiciels 2.
Le clic du jeu fonctionne comme un métronome pendant la phase audible : il joue le tempo cible pendant les mesures audibles. Il fournit l'intervalle régulier que le joueur doit retrouver dans ses appuis. Lorsque le clic s'interrompt, le joueur doit maintenir le même tempo sans l'appareil, ce qui met à l'épreuve sa capacité à tenir le tempo intérieurement. Le rôle du métronome dans le jeu est d'établir le tempo, puis de se retirer, laissant le joueur le porter seul. 3
La cible et ses champs
La cible est la structure de données centrale qui définit chaque manche. Elle contient quatre champs : le tempo en battements par minute ; le nombre de mesures audibles pendant lesquelles le clic joue ; le nombre de mesures silencieuses qui suivent ; et le nombre de battements par mesure, le numérateur de la signature rythmique, qui vaut 4 pour la mesure à quatre temps. Ensemble, ces champs déterminent la structure de la manche, du nombre de battements de la phase audible à celui de la phase silencieuse. 3
Le moteur utilise la cible pour calculer toutes les valeurs dérivées qui régissent la manche. Du tempo, il déduit la durée de chaque battement en millisecondes. Des nombres de mesures et des battements par mesure, il déduit le nombre total de battements et le battement où commence le silence. La cible est fixée pour toute la manche, ce qui signifie que le tempo et les nombres de mesures restent constants du début à la fin. Le joueur ne peut y répondre qu'en tapant au bon tempo et en calant ses appuis sur la grille idéale. 3
Des horodatages au score
Le chemin qui mène des horodatages des appuis au score final suit une suite de calculs bien définie. D'abord, le jeu enregistre chaque appui comme un horodatage en millisecondes, en ignorant les appuis donnés plus d'un demi-battement avant la fin du décompte de quatre battements. Pendant la phase audible, le joueur tape avec le clic et installe ainsi son sens du tempo. Lorsque le clic s'interrompt, il continue de taper pendant les mesures silencieuses. Le moteur mesure alors la dérive de chaque appui de la phase silencieuse par rapport à la grille idéale du métronome ancrée sur le premier appui, fait la moyenne de ces dérives en comptant chaque battement silencieux non tapé comme un manque d'un demi-battement, puis convertit cette moyenne, prise comme fraction du battement, en un score de 0 à 1000. À côté du score, il indique le tempo retrouvé à partir de l'intervalle moyen entre appuis ainsi que le nombre d'appuis de la phase silencieuse. 3
Cette chaîne de traitement est entièrement déterministe. À graine et difficulté identiques, la même cible est engendrée. À cible et horodatages identiques, le même score est calculé. Le moteur ne dépend ni de l'heure de l'horloge ni d'aucune référence extérieure : il ne dépend que des horodatages et de la cible. Le système en devient à la fois fiable et testable, puisque chaque étape peut être vérifiée avec des entrées prédéterminées et des sorties attendues. 3
La phase silencieuse comme mesure
C'est dans la phase silencieuse que se fait la mesure. Pendant la phase audible, le clic fournit une référence et le joueur peut ajuster ses appuis pour s'y accorder. Pendant la phase silencieuse, cette référence n'existe plus, et les appuis du joueur révèlent à quel point il a intériorisé le tempo. Le moteur mesure cette intériorisation en comparant chaque appui à la position de battement idéale extrapolée à partir du premier appui du joueur, au tempo cible. L'écart entre l'appui et la position idéale est la dérive de cet appui. 3
La phase silencieuse est aussi le moment où la conception du jeu se révèle le plus clairement. Le clic joue le tempo cible pendant les mesures audibles, puis s'interrompt, et le joueur doit continuer à taper le même tempo pendant les mesures silencieuses. La durée de la phase silencieuse, déterminée par le nombre de mesures silencieuses et le nombre de battements par mesure, fixe la longueur de la période de mesure. Des phases silencieuses plus longues obligent le joueur à tenir le tempo sur davantage de battements, ce qui laisse plus de place à l'accumulation de la dérive. Le système de score mesure la dérive de chaque appui de la phase silencieuse, sanctionne chaque battement silencieux laissé sans appui et fait la moyenne du tout pour produire un score final : une petite erreur de tempo qui s'amplifie sur une longue tenue fait donc monter la dérive moyenne et baisser le score. 3
Un déterminisme fondé sur la graine
Le système tout entier est déterministe, à partir d'un générateur de nombres aléatoires initialisé par une graine. Une graine donnée fixe toujours la même cible, et chaque règle est testable à partir de là. La graine détermine le tempo, tiré comme un nombre entier dans la plage de la difficulté choisie ; les nombres de mesures, eux, viennent du préréglage de difficulté lui-même. Comme la graine et la difficulté déterminent entièrement la cible, elles produisent toujours la même structure de manche. Cette propriété s'étend au score, puisque les mêmes horodatages d'appuis face à la même cible produisent toujours le même score. 3
Le déterminisme fondé sur la graine sert à la fois le joueur et le développeur. Pour le joueur, il signifie que les manches sont cohérentes et équitables : la même suite d'appuis donnera toujours le même résultat. Le mode Daily, la partie quotidienne, tire sa graine de la date en UTC, de sorte que tous ceux qui jouent ce jour-là à une difficulté donnée reçoivent la même cible, tandis que Practice, l'entraînement, tire une nouvelle graine aléatoire à chaque manche. Pour le développeur, il signifie que le moteur peut être testé en profondeur avec des graines et des suites d'appuis prédéterminées. Le déterminisme n'est pas une contrainte : c'est une qualité qui rend le système temporel du jeu transparent et fiable. 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.