BPMをミリ秒に変換する計算機
120 BPMでは四分音符が500 ms、付点八分音符が375 msです。テンポを入力すると、全音符から32分音符まで、付点や3連符も含めた音符の長さとディレイタイムがすぐに分かります。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- BPM
- 120
- 1拍のms
- 500 ms
- 拍あたりのms
- 500
BPMからミリ秒への計算機は、毎分ビート数で表されたテンポを、DAW、ペダルボード、楽譜で必要となる正確な音符の長さとディレイタイムに変換します。プロジェクトのBPMを入力するだけで、四分音符1拍のミリ秒数、全音符から三十二分音符までの付点・三連符を含む音符の長さの一覧表、そして1/4、1/8付点、1/8三連符といったマルチエフェクターやディレイプラグインが想定するラベル付きのディレイタイム表が得られます。エコーをグリッドに同期させるプロデューサー、音符の価値を説明する教師、メトロノームやステップシーケンサーのテストを書く開発者は皆、表計算ソフトを開かずに60000をBPMで割るという同じ決定的な計算を必要としています。
BPMが音符とディレイのミリ秒に変わる仕組み
毎分ビート数は、60秒間に発生する四分音符の拍の数を表します。その逆数関係は単純で、西洋の制作現場で普遍的です。1拍あたりのミリ秒数は60000をテンポで割った値なので、120BPMなら四分音符1拍が500ミリ秒、100BPMなら600ミリ秒、60BPMなら1000ミリ秒になります。
この1拍の長さが分かれば、他のすべての音符は拍の固定倍率です。全音符は4拍、二分音符は2拍、八分音符は半拍、十六分音符は4分の1拍、三十二分音符は8分の1拍です。付点のある音符は元の長さの1.5倍に伸びるため、付点四分音符は1.5拍、付点八分音符は0.75拍です。
三連符は親の音符2つ分の長さに等しい3つの音を詰め込むため、四分音符の三連符は3分の2拍、八分音符の三連符は3分の1拍になります。ディレイやマルチタップの機材は、1/4、1/8付点、1/8三連符のような分数ラベルで同じ長さを表示しており、計算は同一で、変わるのはキーの辞書だけです。ゼロ以下のBPMを拒否するのは潔癖さではありません。
ゼロ除算や負の拍は物理的にあり得ないディレイタイムを生み、自動化スクリプトやハードウェアのMIDIクロックを壊します。
実践のコツ、制限、関連する検索
BPMは公開されている絶対値の範囲内に収めてください。クライアントを制御できる場合は、整形済みの文字列より数値を送ることをお勧めします。文字列の数値は厳密な有限数値パターンに一致する場合のみ受け付けられます。
スタジオでよく使う基準値は覚えやすいものです。120BPMなら四分音符で500ミリ秒、八分音符で250ミリ秒、十六分音符で125ミリ秒。72BPMはバラードのディレイ確認に便利で、140BPMはエレクトロニックダンスの代表的な基準です。
プロジェクトのテンポが分かっていてミリ秒の表だけが必要な場合にこの機能を選んでください。グリッドのないフリータイムの録音が元データなら、先にBPMを検出するかタップしてください。
活用例
ディレイとリバーブの時間をプロジェクトのグリッドに同期
プロデューサーはセッションのBPMを入力し、1/4、1/8_dotted、1/8_tripletのミリ秒値をプラグインのディレイ欄にコピーして、エコーが拍に乗るようにします。
音楽理論のワークシートと音符の価値の練習
教師は選んだテンポで全音符から三十二分音符までの決定的な表を生成し、学生が手計算と固定のmsの答えを比較できるようにします。
よくある質問
BPMをミリ秒に変換するにはどうすればよいですか?
四分音符1拍あたりのミリ秒数は60000をBPMで割った値です。他の音符はその拍の長さに拍単位の相対的な長さを掛けます(例えば八分音符は0.5拍です)。
1拍は常に四分音符ですか?
この計算機ではその通りです。BPMが四分音符の拍を数えるという標準的な制作現場の慣習に従っており、4/4拍子のほとんどのDAWのテンポマップと一致します。
BPMからミリ秒への計算機は無料ですか?
ブラウザのツールは無料でローカルで動作します。失敗したタスクに課金されることはありません。
120 BPMの付点八分のディレイタイムは何ミリ秒ですか?
375 msです。付点八分音符は500 msの1拍の4分の3にあたるからです。ディレイをこの値にすると、拍の間に付点らしい響きのエコーが入ります。
BPMがゼロや負の値だとどうなりますか?
計算を受け付けません。ゼロでは割り算ができず、負のテンポでは現実にありえないディレイタイムになり、オートメーションや機材の同期を乱すためです。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/hobby/bpm-to-ms \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"bpm":120}'const res = await fetch("https://api.kit.forhosting.com/hobby/bpm-to-ms", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"bpm": 120
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/hobby/bpm-to-ms",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"bpm": 120
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/hobby/bpm-to-ms", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"bpm":120}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"bpm":120}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/hobby/bpm-to-ms", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"bpm": 120
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "hobby.bpm_to_ms",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
max_abs | 1000000000000 |
min_bpm | 1e-12 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
ゼロ以下のテンポは明確なinvalid_inputエラーで拒否されるため、スクリプトが負や無限のディレイタイムを黙って生成することはありません。処理は純粋な数学のみで、ネットワークも乱数も時計への依存もないため、無料のブラウザ実行環境とプリペイドAPIは、呼び出すたびに固定の小数丸めを行った同じJSONを返します。
BPMが音符とディレイのミリ秒に変わる仕組み
そのためこの機能はテンポを厳密に正の有限数として扱い、公開するすべての長さを小数点以下12桁に丸めて安定したJSONにし、学生や単体テストが60000割るBPMと拍の倍率を手計算で再現できるよう、順序付きのsteps配列を提供します。
APIの呼び出し方と返ってくる内容
絶対値は公開されている上限の1兆以内に収め、値は厳密にゼロより大きい必要があります。steps配列は生のテンポから拍の長さ、代表的な音符とディレイの行までをたどるので、テストで中間値を検証できます。必須の有限数を1つ含むJSONボディを送信します。キーはbpmで、tempo、beats_per_minute、tempo_bpmという別名も受け付けます。ゼロ以下の値、フィールドの欠落、非数値の文字列、非有限の数値はinvalid_inputを返し、課金されることはありません。成功時の応答は、丸められたbpmをエコーし、beat_msとms_per_beatに同じ四分音符のミリ秒長を設定し、unitには文字列ms、formulaにはduration_ms = 60000 ÷ bpm × note_beats(1拍は四分音符)という閉じた関係式、messageには短い英語の要約が入ります。note_durations_msオブジェクトにはwhole、half、quarter、eighth、sixteenth、thirty_second、dotted_half、dotted_quarter、dotted_eighth、dotted_sixteenth、triplet_quarter、triplet_eighth、triplet_sixteenthが並びます。delay_times_msオブジェクトには、1/1、1/2、1/4、1/8、1/16、1/32や1/4_dotted、1/8_tripletのような付点・三連符のバリアントという制作現場のラベルで同じ物理量が並びます。料金は成功したリクエストごとに一律$0.002で、単位アイテムはitem、限界単価はゼロです。
実践のコツ、制限、関連する検索
そうすれば逆数の拍の長さがWorkerでもブラウザでもIEEE倍精度で有限に保たれます。授業では、正常な正のテンポの例と、あえてゼロや負のテンポを入れてinvalid_inputの厳格な経路を示す例を組み合わせ、付点や三連符のキーが付点なしの親の1.5倍または3分の2倍と一致することを確認してください。このページは、BPMからミリ秒への計算機、テンポから音符の長さへの変換、毎分ビート数からのディレイタイム(ms)を探す人を対象としており、スイングやシャッフルのノリを生成するエンジンではなく、サンプルレートやMIDIの四分音符あたりティック数の変換器でもなく、リアルタイムのメトロノーム音声生成器でもありません。invalid_inputを返した失敗タスクはプリペイド残高を消費しないため、学習者があえて境界ケースを試す探索的スクリプトでも費用を抑えられます。往復確認は簡単です。 60000をbpmで割ってbeat_msと小数点以下12桁の丸めの範囲で一致することを確かめ、全音符、付点四分音符、八分音符の三連符の行について文書化された拍数を掛けて確認してください。
連携の活用例
シーケンサーとメトロノームの単体テスト
開発者は既知のBPM値を入力し、壁時計タイマーや音声ハードウェアなしで、beat_msとnote_durations_msをgoldenのフィクスチャと照合します。
技術的な質問
BPMがゼロまたは負の場合はどうなりますか?
テンポが正でないため、ツールはinvalid_inputを返します。ゼロ以下のテンポではディレイや音符の長さは定義されません。
note_durations_msとdelay_times_msの違いは何ですか?
ミリ秒の値は同じです。note_durations_msは音楽用語(quarter、dotted_eighth)を使い、delay_times_msはディレイプラグインで一般的なDAW式のラベル(1/4、1/8_dotted)を使います。