Tempo Lock · 考えるための糧
クリックが止んだあとで
ゲームはテンポを刻むクリック音で始まります。やがてそのクリックは鳴りやみ、プレイヤーは無音の小節のあいだも同じテンポで叩きつづけなければなりません。
英語で執筆・編集されました。この日本語版は機械翻訳によって作成されたものです。正確さが重要な箇所については、英語の原文が正式なものです。 英語の原文を読む →
1ラウンドの構造
Tempo Lockの1ラウンドは、4つのことを指定するターゲットから組み立てられます。テンポを表す1分あたりの拍数、クリックが鳴る小節の数、それに続く無音の小節の数、そして1小節あたりの拍数、すなわち拍子記号の分子です。エンジンはこれらの項目を使って、最初に聞こえる拍から最後の無音の拍まで、ラウンド全体を構成します。テンポはクリックの速さを決め、聞こえる小節の数はプレイヤーがメトロノームを聞く長さを決め、無音の小節の数は、クリックなしでそのテンポを保つという挑戦の大きさを決めます。1小節あたりの拍数は各小節に何拍あるかを定め、ゲームはこれをどのラウンドでも4、すなわち4分の4拍子に設定しています。3
エンジンはターゲットからいくつかの派生値を計算し、採点の仕組みを支えます。1拍の長さは6万をテンポで割った値として計算され、これが1拍の長さをミリ秒で与えます。総拍数は、聞こえる小節と無音の小節の合計に1小節あたりの拍数を掛けた値として計算され、これがプレイヤーの叩き通すべき拍の総数を与えます。無音の開始位置は、聞こえる小節の数に1小節あたりの拍数を掛けた値として計算され、これがクリックの鳴りやむ拍の番号をちょうど示します。これらの派生値が、ラウンド全体の数学的な土台をなします。3
クリックと沈黙
クリックは、そのラウンドのテンポを定める、耳に聞こえる合図です。聞こえる小節のあいだターゲットのテンポで鳴り、短い音で1拍ずつを刻みます。このクリックはメトロノームとして働き、一定の間隔で音を出しますが、ここでその間隔を決めるのはプレイヤーではなく、そのラウンドのターゲットです。まず4拍のカウントインが鳴り、各小節の1拍目のクリックは音程が高くなります。音楽家はメトロノームを使って拍に乗って演奏したり練習したりし、一定のテンポと規則正しい拍を保ちます。ゲームのクリックは、聞こえる局面のあいだ同じ役目を果たし、プレイヤーが自分のタップを合わせるための基準点になります。2
聞こえる小節が終わると、クリックは完全に止みます。プレイヤーにはもうメトロノームが聞こえず、無音の小節のあいだも同じテンポで叩きつづけなければなりません。この沈黙こそが、このゲームの核心にある難しさです。外的な基準なしに、テンポを心の中で保たなければならないからです。沈黙は空っぽではありません。そこはテンポの記憶と、それを保とうとするプレイヤーの試みで満たされています。スコアはのちに、その沈黙のあいだプレイヤーがどれだけうまくテンポを保てたかを測ることになります。3
生のタイムスタンプと決定性
エンジンはもっぱら、ミリ秒で測られた生のタップのタイムスタンプから動きます。タップは1つ1つ絶対時刻の値として記録され、計算はすべて、これらのタイムスタンプとターゲットから導かれます。同じタイムスタンプの列からは必ず同じ結果が出るので、エンジンは決定的であり、時計なしでテストできます。この作りは計時の計算からあいまいさを取り除き、同じ入力なら実行のたびに採点が一致することを保証します。3
エンジンの採点関数は、ミリ秒単位の生のタップのタイムスタンプとターゲットを入力に取ります。この設計のおかげで、エンジンはあらかじめ決めたタイムスタンプの列でテストでき、その出力はゲームを実時間で動かさずに検証できます。決定性は、ラウンドごとのターゲットのテンポを選ぶ、シードを与えられた乱数生成器にまで及びます。シードと難易度が決まれば毎回同じターゲットが定まり、そこから先のあらゆるルールがテスト可能になります。3
タップからテンポを復元する
エンジンは、連続するタップの間隔の平均からテンポの推定値を復元します。タップ間の間隔、つまり各タップとその1つ前との時間差を計算し、その平均を求めます。その際、0または負の間隔は飛ばします。タップが2つに満たない場合は、テンポをまったく報告しません。1分あたりの拍数はこの平均間隔から導かれ、叩かれた一続きのあいだプレイヤーが保っていたテンポの尺度を与えます。この関数はターゲットのテンポとは無関係に働き、プレイヤーの実際の出来ばえを客観的に測ります。3
復元されたテンポは結果画面に「Your tempo」(あなたのテンポ)としてターゲットの隣に表示され、プレイヤーは意図された速さにどれだけ近づけたかを見ることができます。計算は生のタイムスタンプだけから、記録されたすべてのタップ、つまり聞こえる局面と無音の局面の両方にわたって行われます。これは情報として示されるだけで、スコアそのものは復元されたテンポではなく、ずれから計算されます。3
グリッドからのずれを測る
採点の仕組みは、無音の局面のあいだプレイヤーのタップが理想のメトロノームのグリッドにどれだけ近いかに報います。理想のグリッドとは、プレイヤーの最初のタップでメトロノームが始まり、ターゲットのテンポで鳴りつづけたとした場合の拍の位置です。各タップはもっとも近い理想の拍の位置に対応づけられ、両者の差がそのタップのずれになります。数に入るのは、もっとも近い拍が無音の局面に入るタップだけであり、どのタップももっとも近い拍に対応づけられる以上、1つのタップのずれが半拍を超えることはありません。無音の局面でタップされずに残った拍はどれも、最悪の場合である半拍のずれとして課され、同じ平均に織り込まれます。ですから拍を飛ばせば平均のずれは大きくなり、スコアは下がります。そして沈黙のあいだ何も叩かないプレイヤーの得点は0になります。3
このずれに基づく手法は、テンポを保つことを測定可能な量に変えます。エンジンは、タップがある窓の中に収まっているかを単に確かめるのではなく、理想の位置からの正確な隔たりを測ります。平均のずれが0の完璧な保持は1000点となり、スコアは平均のずれが4分の1拍のところで0まで直線的に落ちるので、ずれが小さいほど必ず点は高くなります。尺度はミリ秒ではなく拍を単位としているため、どのテンポでも同じ意味を持ちます。毎分120拍では4分の1拍は125ミリ秒、毎分80拍では187.5ミリ秒です。また4分の1拍は、でたらめに叩いたときの平均でもあるので、でたらめなタップはほぼ何も得られません。結果画面は平均のずれをミリ秒でも示したうえで、スコアを判定に変えます。850以上なら「Locked in!」(ぴたりと嵌まった!)、650以上なら「Tight.」(締まっている)、350以上なら「Wobbly.」(ぐらついている)、それ未満なら「Lost the beat.」(拍を見失った)です。こうして、合否の二択ではなく連続的な出来ばえの尺度が生まれ、計時の正確さをきめ細かく評価できるようになります。3
難易度のプリセット
ゲームにはEasy(やさしい)、Medium(ふつう)、Hard(むずかしい)という3つの難易度プリセットがあり、テンポの範囲と無音の小節の数が変わります。どのプリセットでも、聞こえる小節は4つです。Easyは毎分70から100拍のテンポを引き、無音の小節を4つ求めます。Mediumは90から130を引いて6つを、Hardは110から170を引いて8つを求めます。これらのプリセットは、短い無音のゆるやかなテンポから、長く保たせる速いテンポまで、挑戦の度合いをプレイヤーに選ばせます。3
プリセットは、エンジンの他の部分とまったく同じ決定的な枠組みの中で働きます。各プリセットは具体的な値を持つターゲットを定め、エンジンはそのターゲットを、他のどのターゲットともまったく同じように処理します。難しさは、テンポと無音の小節数の組み合わせにあり、それが拍の来る速さと、クリックなしでプレイヤーが保たなければならない長さを決めます。採点の仕組みはどのプリセットでも変わらず、選ばれた難易度に関わらず理想のグリッドからのずれを測ります。そしてその尺度は拍の何分の1かで定められているので、同じ得点は、Hardの速いテンポでもEasyの遅いテンポでも、同じだけの相対的な精度を表します。3
ゲームの背後にあるテンポ
音楽において、テンポとはある楽曲の速さや歩みのことで、1分あたりの拍数で測られます。毎分60拍のテンポは1秒に1拍を意味し、毎分120拍のテンポはその倍の速さで、1秒に2拍を意味します。1拍にあたる音符の長さは、ふつう拍子記号の分母が示すものです。テンポはイタリア語の標語で示されることがあり、largo(ラルゴ)やandante(アンダンテ)のような遅いものから、allegro(アレグロ)やpresto(プレスト)のような速いものまであります。あるいは、具体的なBPMを与えるメトロノーム記号で示されることもあります。テンポの指示は速さだけでなく気分も伝えることができ、テンポは固定されている必要もありません。作曲家は曲の途中で、速めるaccelerando(アッチェレランド)や遅くするritardando(リタルダンド)を書き込むことができます1。ゲームはこのテンポという概念を、1分あたりの拍数で測られる固定値として使い、ターゲットのbpmがラウンド全体の速さを決めます。
ゲームにおけるテンポとは、クリックが鳴らし、プレイヤーが保たなければならない1分あたりの拍数の値です。それはラウンドの速さを定める1つの数であり、小節の数と並んでターゲットの中に現れます。プレイヤーはこのテンポで叩き、エンジンはそれをどれだけよく保てているかを測ります。テンポはラウンドの途中で変わりません。プレイヤーの出来ばえを評価する、動かない基準点なのです。3
メトロノームという装置
メトロノームとは、使用者が設定できる一定の間隔で、聞こえるクリック音などを出す装置で、その間隔はふつう1分あたりの拍数で指定します。奏者や歌い手は、一定のテンポと均一な拍を保つために、これに合わせて練習します。伝統的な機械式メトロノームは錘のついた振り子を使います。棒に沿って錘を上へずらせばテンポは遅くなり、下へずらせば速くなり、機構は振れるたびにクリック音を出します。Johann Maelzelは1815年に機械式メトロノームの特許を取り、1816年から量産しました。これはDietrich Nikolaus Winkelによる、ぜんまい仕掛けの倒立振り子を用いた先行設計に基づき、そこに数値のテンポ目盛りを加えたものです。現代のメトロノームには、水晶発振式の電子機器やソフトウェアもあります2。
ゲームのクリックは、聞こえる局面のあいだメトロノームとして働き、聞こえる小節のあいだターゲットのテンポを鳴らします。プレイヤーがタップで合わせるべき一定の間隔を与えるのです。クリックが止むと、プレイヤーはその装置なしで同じテンポを保たなければならず、テンポを内側で保持する力が試されます。このゲームにおけるメトロノームの役目は、テンポを定め、それから自らを退けて、プレイヤーひとりにテンポを運ばせることにあります。3
ターゲットとその項目
ターゲットは、各ラウンドを定める中心的なデータ構造です。項目は4つあります。1分あたりの拍数で表したテンポ、クリックが鳴る聞こえる小節の数、それに続く無音の小節の数、そして1小節あたりの拍数、すなわち拍子記号の分子で、4分の4拍子であるため4です。これらの項目が合わさって、聞こえる局面の拍数から無音の局面の拍数まで、ラウンドの構造を決めます。3
エンジンはターゲットを使って、ラウンドを支配する派生値をすべて計算します。テンポからは、1拍の長さをミリ秒で導きます。小節の数と1小節あたりの拍数からは、総拍数と、沈黙の始まる拍を導きます。ターゲットはそのラウンドのあいだ固定されており、つまりテンポと小節の数は終始変わりません。プレイヤーにできるのは、ふさわしいテンポで叩き、理想のグリッドに合うようタップの時機を計ることで応えることだけです。3
タイムスタンプからスコアへ
タップのタイムスタンプから最終スコアに至る道筋は、はっきりした一連の計算をたどります。まずゲームは各タップをミリ秒のタイムスタンプとして記録しますが、4拍のカウントインが終わる半拍以上前に打たれたタップは無視します。聞こえる局面では、プレイヤーはクリックに合わせて叩き、自分のテンポの感覚を作ります。クリックが止むと、プレイヤーは無音の小節のあいだも叩きつづけます。それからエンジンは、無音の局面の各タップについて、最初のタップに錨を下ろした理想のメトロノームのグリッドからのずれを測り、叩かれなかった無音の拍を半拍のずれとして数えながら、それらの平均を取り、拍の何分の1かとして見たその平均を0から1000までのスコアに写します。スコアと並んで、タップ間隔の平均から復元したテンポと、無音の局面のタップの数も報告します。3
この一連の流れはすべて決定的です。同じシードと難易度からは、同じターゲットが生成されます。同じターゲットと同じタップのタイムスタンプからは、同じスコアが計算されます。エンジンは実時間の時計にも、いかなる外部の基準にも依存せず、依存するのはタイムスタンプとターゲットだけです。そのおかげでこの仕組みは信頼でき、またテストもできます。あらかじめ決めた入力と期待される出力によって、どの段階も検証できるからです。3
測定としての無音の局面
測定が行われるのは無音の局面です。聞こえる局面ではクリックが基準を与え、プレイヤーはそれに合うようタップを調整できます。無音の局面にはそうした基準がなく、プレイヤーのタップは、そのテンポをどれだけ体に入れてきたかを露わにします。エンジンはこの内在化の度合いを、各タップと、プレイヤーの最初のタップからターゲットのテンポで外挿した理想の拍の位置とを比べることで測ります。タップと理想の位置との差が、そのタップのずれです。3
無音の局面はまた、このゲームの設計がもっともはっきり現れる場でもあります。クリックは聞こえる小節のあいだターゲットのテンポを鳴らし、そこで止み、プレイヤーは無音の小節のあいだも同じテンポで叩きつづけなければなりません。無音の局面の長さは、無音の小節の数と1小節あたりの拍数によって決まり、それが測定される期間の長さになります。無音の局面が長いほど、プレイヤーはより多くの拍にわたってテンポを保たねばならず、ずれの積み重なる余地が増えます。採点の仕組みは、無音の局面のタップすべてについてずれを測り、叩かれずに残った無音の拍すべてに罰を課し、それらをまとめて平均して最終スコアにします。ですから、長く保つあいだに育っていく小さなテンポの狂いは、平均のずれを大きくし、スコアを下げるのです。3
シードによる決定性
この仕組み全体は、シードを与えられた乱数生成器から決定的に定まります。シードが決まれば毎回同じターゲットが定まり、そこから先のあらゆるルールがテスト可能になります。シードはテンポを決め、テンポは選ばれた難易度の範囲から整数として引かれます。小節の数は難易度のプリセットそのものから来ます。シードと難易度がターゲットを完全に決めるので、両者からは必ず同じラウンドの構造が生まれます。この性質は採点にも及びます。同じターゲットに対する同じタップのタイムスタンプからは、必ず同じスコアが出るからです。3
シードによる決定性は、プレイヤーにも開発者にも役立ちます。プレイヤーにとっては、ラウンドが一貫していて公平だということを意味します。同じタップの列からは、必ず同じ結果が出るのです。Daily(デイリー)モードはシードをUTCの日付から導くので、その日にある難易度で遊ぶ人は全員が同じターゲットを受け取ります。一方、Practice(練習)はラウンドごとに新しい乱数シードを選びます。開発者にとっては、あらかじめ決めたシードとタップの列でエンジンを徹底的にテストできるということです。決定性は制約ではありません。ゲームの計時の仕組みを見通しよく、また信頼できるものにしてくれる特長なのです。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.