BPM計算機
4秒間に8拍数えたら120 BPMです。数えた拍数と計った秒数を入力すると、テンポと1拍の長さ(この例では0.5秒、500ミリ秒)が分かります。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- 拍数
- 8
- 間隔
- 4
- Bpm
- 120 bpm
- 1拍の長さ (秒)
- 0.5
- 拍 (ms)
- 500
BPM計算機は、数えたビート数と秒で測った時間区間を、毎分ビート数のテンポへ変換します。音楽家、DJ、教員、コーチは今もストップウォッチ法を使います。既知の窓で拍を数え、BPMはビートに六十を掛けて区間で割る、という恒等式で1分へ換算します。本ツールはその式を適用し、両値が有限かつ真に正であることを厳格に検査します。
数えたビートとストップウォッチが毎分ビート数になる仕組み
テンポのストップウォッチ法はタップパッドやDAWのボタンより古いものです。時計が動いている間に何拍起きたかを数え、その回数を1分へ換算します。4秒の間に8拍入れば、暗黙の速さは1秒あたり8/4拍、すなわち120 BPMです。
恒等式は BPM が beats に 60 を掛けて interval(秒)で割った値、となります。両オペランドは真に正の有限数でなければなりません。ゼロまたは負の拍数は拍がない、あるいは時間逆転の空想を表し、ゼロまたは負の区間は窓がない、あるいは時計が逆走することを表し、商は未定義または無限になります。
教室の練習は今も15秒カウントを使います。15秒で16拍なら64 BPM、15秒で32拍なら128 BPMです。15秒カウントに4を掛けることは、60を掛けて15で割ることと同じだからです。
グルーヴが不揃いならより長い窓を数えてください。より多くの秒にわたるより多くの拍は、1回の早い・遅いヒットが報告テンポへ与える影響を減らします。
実地の数え方、制限、関連検索
可能なら少なくとも4〜8拍数えてください。ごく短い窓の1拍サンプルは数学的には妥当でも、ライブ演奏では雑音が多くなります。時計は正直に。 ストップウォッチを拍1で始めるか拍0で始めるかのオフバイワンはよくあり、数え間違えるとテンポが一段ずれます。
スタジオの定番確認点は手計算で容易です。4秒で8拍は120 BPM、2秒で4拍は同じグリッド、15秒で32拍は128 BPMです。本ランディングは BPM計算機、数えたビートから毎分ビート数、ビートと秒からテンポを探す利用者向けです。
ミリ秒タイムスタンプを平均するタップテンポパッドでも、BPMをミリ秒の音符表にする表でも、音声オンセット検出器でもありません。順序付きタップ時刻には姉妹機能のタップ間隔からBPM、既知のプロジェクトテンポを音符・ディレイ長に換える場合は姉妹機能のBPM→ミリ秒計算機を使ってください。源が測定窓に対するカウント合計のときに本機能を選んでください。
往復確認は単純です。 beats に 60 を掛け、秒の interval で割り、公開 bpm と12桁丸め内で一致することを確認します。
活用例
ストップウォッチカウントからセッションテンポを設定
制作者は参照トラックに合わせて4秒または8秒ビートを数え、合計と窓を入力し、返されたテンポでDAWのプロジェクトBPMを設定します。
よくある質問
数えたビートと秒からBPMはどう計算しますか?
ビート数を秒の測定区間で割って毎秒ビートを得て、60を掛けます。同等に、BPMは beats に 60 を掛けて interval で割った値です。
beats または interval がゼロや負だとどうなりますか?
非正のカウントや窓は有限テンポを定義できず、ツールは捏造しません。
タップのタイムスタンプを送りますか、拍数ですか?
拍数と秒の区間を送ってください。順序付きタップ時刻(ミリ秒)には、姉妹機能のタップ間隔からBPM計算機を使います。
15秒カウントに4を掛けるのはなぜですか?
1分には15秒ブロックが4つあるので、count × 4 は count × 60 / 15 と等しいです。本計算機は一般形を使うため、15秒に限らず任意の窓長が使えます。
120 BPMのとき1拍は何秒ですか?
1拍は0.5秒、つまり500ミリ秒です。テンポと一緒にこの長さも表示されるので、メトロノームやディレイの設定にそのまま使えます。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/hobby/bpm \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"beats":8,"interval":4}'const res = await fetch("https://api.kit.forhosting.com/hobby/bpm", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"beats": 8,
"interval": 4
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/hobby/bpm",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"beats": 8,
"interval": 4
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/hobby/bpm", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"beats":8,"interval":4}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"beats":8,"interval":4}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/hobby/bpm", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"beats": 8,
"interval": 4
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "hobby.bpm",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
max_abs | 1000000000000 |
min_positive | 1e-12 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
ゼロ拍、長さゼロの窓、欠落フィールド、非数値文字列は invalid_input として拒否され、スクリプトが無限テンポを捏造することはありません。経路は純算術—ネットワークなし、乱数シードなし、壁時計依存なし—なので、無料のブラウザ実行器とプリペイドAPIは安定した丸めのあと毎回同じJSONを返します。
数えたビートとストップウォッチが毎分ビート数になる仕組み
本機能は2フィールドを数値化し、欠落・空文字列・NaN・無限・非正量を拒否したうえで、テンポと1拍あたり秒・1拍あたりミリ秒を公開し、メトロノーム、ディレイ、授業計画が同じ一貫した拍を使えるようにします。丸めは小数12桁に固定され、同じ入力なら Worker とブラウザの JSON がバイト単位で一致します。
APIの呼び出し方と戻り値
beats は数えた合計、interval は秒で測った窓です。クライアントを制御できる場合は整形済み文字列より数値送信を推奨します。4秒カウントのような相対窓が想定ケースであり、ここへタイムスタンプは送りません。必須の数値フィールド beats と interval を2つ含むJSON本体を送ってください。同じ値は第1フィールドの別名 count、beat_count、n_beats、第2フィールドの seconds、time、duration、t でも受け付けます。各フィールドはJSON数値でも厳密な数値文字列でも構いません。成功時の応答は丸めた beats と interval をエコーし、主テンポとして bpm、1拍の長さとして beat_seconds と beat_ms、単位文字列 unit の bpm、bpm が beats に 60 を掛けて interval で割ることを再掲する formula、短い要約 message、生カウントから1拍秒と最終除算まで辿る steps を返します。欠落フィールド、非有限エントリ、数値化に失敗する空文字列、非正の beats または interval はいずれも invalid_input を返し、課金されません。料金は成功リクエストごとに定額 $0.002、単位は item です。各オペランドの絶対値は公開上限内に収め、IEEE倍精度で商が十分定義されるようにします。
実地の数え方、制限、関連検索
指導では成功経路のカウントと、意図的なゼロまたは負の入力を対にして、学習者がすぐに invalid_input を見るようにします。invalid_input を返す失敗タスクはプリペイド残高を消費しないため、学習者が境界を意図的に探る探索スクリプトも安く保てます。
連携の活用例
教室での逆数と15秒カウントの演習
教員は拍数と区間を渡し、学習者が beats × 60 / seconds を手計算し、定番の15秒カウント×4も含めて決定的なBPMフィールドと照合します。
スクリプトでのパルスまたはクリックトラック確認
開発者とコーチは数えた合計と測定窓を渡し、音声ハードウェアや壁時計タイマなしで bpm、beat_seconds、beat_ms を golden フィクスチャに対して検証します。
技術的な質問
BPM計算機は無料ですか?
ブラウザツールは無料でローカル実行です。API呼び出しは成功リクエストごとに $0.002 のKITプリペイド残高を使い、失敗タスクは課金されません。