setInterval のインスタンスが 2 つあります。それぞれが異なる関数をトリガーしています (これらの 2 つの関数のタイトルはQuarterNoteFuncとthirdNoteFunc です)。QuarterNoteFuncの間隔は 600 ミリ秒です。thirdNoteFuncの間隔は 300 ミリ秒です。これらの機能は両方とも、繰り返し間隔で異なるオーディオ ファイルをトリガーするため、基本的な音楽リズムが作成されます。2 つの関数呼び出しの間のリズムは、最終的に Google Chrome で「ドリフト」し、2 つのサウンドの間のリズムが解消されます。私の質問は:
ブラウザベースのタイミングはガベージですが、「グローバル」タイミングがオフセットされてもサウンドがロックされ、サウンドが同期し続けるように、ある種の「ハード」タイミングリファレンスを作成する方法であるように思われます。同じ変数ミリ秒 (以下のコード) を割り当てるとこれが抑制されると思いましたが、間違っていました。
(省略された)コードは次のようになります
ミリ秒 = 600;
QuarterNote = setInterval(quarterNoteFunc, ミリ秒);
EighthNote = setInterval(eighthNoteFunc, ミリ秒/2);