テンポカウンターとは?
テンポカウンターは、希望のBPM(1分あたりの拍数)を入力すると、その速度に合わせて正確なタイミングでビープ音を再生してくれる運動用メトロノームツールです。ブラウザのオーディオ再生スケジューリング機能を直接活用しているため、拍がだんだんズレていくドリフト現象がなく、最初から最後まで正確に合います。下降動作と上昇動作でそれぞれ異なる音が鳴るため、画面を見なくても音だけで拍を合わせることができ、2拍が終わるたびにレップ数が自動的に増えます。すべての運動が同じ速度に合うわけではないため、プッシュアップ・シットアップ・スクワットのように下降・上昇がはっきりした運動の種類を選ぶと、その運動に無理のない基本BPMが自動的に入力されます。多くの無料メトロノーム・拍カウンターアプリはsetIntervalで拍を再生しますが、この方式は数分経つだけで拍が目に見えてずれます。このツールは最初からオーディオスケジューリング(AudioContext)を基盤に作られているため、そうしたずれが起きません。
使い方
運動の種類からやりたい運動を選ぶと、その運動に合った基本BPMが自動的に入力されます。必要であればBPMの値を直接変更することもでき、リストにない運動の場合は「カスタム設定」を選んで好きな速度に合わせてください。「開始」ボタンを押すと、その速度で拍の音が再生され始めます。下降区間では低い音、上昇区間では高い音が鳴り、2拍(下降+上昇)が終わるたびにレップカウンターが1つずつ増えます。運動が終わったら「停止」ボタンを押して止めてください。
こんなときに便利です
- ウェイトトレーニングで一定のテンポで動作の速度を保ちたいとき
- スクワットやプッシュアップのように下降・上昇がはっきりした運動の拍を合わせたいとき
- 決まったテンポでレップ数を正確に数えながら運動したいとき
- 画面を見ずに音だけで運動の拍を確認したいとき
AudioContextスケジューリングがsetIntervalより正確な理由
通常のsetInterval()関数で拍を作ると、JavaScriptエンジンが他の処理(レンダリング、ガベージコレクションなど)で忙しいときに数ミリ秒ずつ遅延が積み重なり、数分経つだけで拍が目に見えてずれる「ドリフト」現象が起きます。このツールはブラウザのオーディオ処理スケジュール(AudioContextのcurrentTime)を基準に、次の複数の拍をあらかじめ予約しておく方式(look-aheadスケジューリング)を使っています。オーディオスケジュールは他のJavaScript処理とは別の精密なタイマーで動作するため、どれだけ長く再生しても拍がずれません。
運動テンポの活用方法
- 一般的に筋力トレーニングの下降(エキセントリック)動作は上昇より遅く、下降に2〜3秒、上昇に1秒程度のテンポがよく推奨されます
- 初心者はまず低いBPM(遅いテンポ)でフォームを身につけ、慣れてきたら徐々にBPMを上げていくのがおすすめです
- リストにない運動でも「直接設定」で好きなBPMを自由に入力できます
- レップ数を数え忘れても、画面のレップカウンターが自動的に加算されるので、最後の数字だけ確認すればOKです
よくある質問
- 拍が後半になるほどズレませんか?
- いいえ、ズレません。ブラウザのオーディオスケジューリング機能(AudioContext)で次の拍をあらかじめ正確な時刻に予約しておく方式のため、一般的なタイマーよりもはるかに精密に拍が保たれます。
- レップ数はどのように計算されますか?
- 下降の拍1つと上昇の拍1つ、合計2拍が終わるたびにレップ数が1ずつ増えます。
- BPMの範囲はどのくらいですか?
- 20〜240 BPMの間で設定できます。
- 運動の種類を選ぶとBPMが固定されますか?
- いいえ。運動の種類を選ぶと、その運動に合った基本BPMが入力されるだけで、その後もBPM入力欄で自由に値を変更できます。
- イヤホンやBluetoothスピーカーを使っても拍は正確ですか?
- はい、Bluetooth機器は多少の遅延(レイテンシー)がある場合がありますが、これは音が出る経路の遅延であり、拍そのものの間隔には影響しません。ただしBluetoothの遅延が気になる場合は、有線イヤホンの方がより即座に聞こえます。
- 運動種類を選ばずにすぐ始められますか?
- はい、「直接設定」を選ぶか、どれか一つを選んでからBPMの値だけ好きなように変更すれば大丈夫です。
- ブラウザのタブをバックグラウンドにすると音が止まりますか?
- いいえ、Web Audio APIはバックグラウンドでも再生が続くよう設計されているため、他の作業をしながらでも音で拍を聞き続けられます。