拍子とBPMから1小節の長さを秒で計算
4/4拍子、120 BPMでは1拍が0.5秒、1小節がちょうど2秒です。拍子の上と下の数字とテンポを入れれば、編集の切れ目や照明、アニメーションを音楽に合わせられます。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- 分子
- 4
- 分母
- 4
- Bpm
- 120
- 拍子記号
- 4/4
- 1小節の拍数
- 4
- 拍の単位
- 1/4
- 拍の長さ (秒)
- 0.5
拍子記号とテンポから、1小節が何秒続くかを正確に求められます。分子、分母、1分あたりの拍数を入力すると、数える1拍の長さと小節全体の長さを返します。本ツールでは分母が示す音符をBPMの拍として扱い、その規則を結果にも明記します。計算は決定的であるため、テンポ表や手計算に頼らず、編曲、映像編集、同期、アニメーション、照明、ソフトウェアテストにご利用いただけます。
小節時間の計算式について
拍子記号は、1小節を満たす音価の数と、数える音価の種類を表します。上の数字が分子で、4/4なら4拍、3/4なら3拍です。下の分母は音符の種類を示し、4は4分音符、8は8分音符、2は2分音符を意味します。
本計算機では、入力したBPMが分母の音符を数えるという規則を明示的に採用しています。そのため1拍の秒数は60をBPMで割った値です。これに分子を掛ければ1小節全体の長さになり、式は「小節の秒数=分子×60÷BPM」です。
4/4、120 BPMでは1拍が0.5秒、4拍で2秒です。同じ数値の6/8を8分音符毎分120拍として扱うと、6拍で3秒になります。分母は別の倍率として式に入るのではなく、BPMが何の音符を数えるかを決めます。
結果には拍子、拍の単位、1小節の拍数、1拍の秒数、小節の秒数、式、テンポ規則を表示するため、後続のプログラムが前提を推測する必要はありません。
複合拍子とテンポ記号の扱い方
複合拍子では、記譜された複数の細かな音符を大きな1拍として感じることがあるため注意が必要です。6/8には8分音符が6個ありますが、演奏上は付点4分音符を2拍として感じることが一般的です。そのため、楽譜は付点4分音符をテンポの基準にし、シーケンサーや別の表は8分音符単位のBPMを示す場合があります。
本計算機は入力元の意図を推測せず、BPMは分母が示す音符を数えるという一貫した契約を使います。6/8のテンポが8分音符毎分120拍なら、6、8、120と入力してください。楽譜に付点4分音符イコール40とある場合は、付点4分音符1個に8分音符が3個含まれるため、先に8分音符毎分120拍へ換算します。
同じ注意は、付点4分音符を大きな拍として感じやすい9/8や12/8、2/2で2分音符を数える場合にも当てはまります。拍の単位を明示すると、もっともらしく見えて実際には2倍または3倍長い結果を避けられます。記譜ソフト、DAW、メトロノーム、印刷楽譜からテンポを移す際は、数値に付いている音符記号を先にご確認ください。
BPMと分母が同じ音価を指せば、アクセント、スウィング、連符、演奏上のまとまり方に関係なく計算は正確です。
制作工程での小節時間の活用方法
小節の長さは、音楽構造を実時間へ合わせるあらゆる作業に役立ちます。照明では小節ごとに変わるキューの基準間隔となり、アニメーションではプロジェクトのフレームレートを使って秒をフレームへ変換できます。開発者はリアルタイム再生を待たず、シーケンサー、タイムライン定規、メトロノーム、MIDIツール、生成システムを決定的な値でテストできます。
分子と分母は整数で送り、対応する2の累乗の分母を選び、bpmには1から1000までの有限値を指定してください。既存連携向けにtempoという別名も受け付けます。音声のアップロードや解析は行わず、テンポ変更、弱起、フェルマータ、ルバート、スウィング、アッチェレランドも検出しません。
固定テンポ区間では返された小節時間に小節数を掛け、テンポマップでは各一定区間を別々に計算して合計し、変更点ごとに音符単位をご確認ください。
活用例
小節境界に編集点を配置
一定のテンポと拍子を秒へ変換し、映像のカット、トランジション、ループ終端を小節末に合わせます。
アニメーションや照明を同期
1小節の時間を、動き、場面転換、舞台キュー、プレゼンテーション効果の反復間隔として利用します。
音楽・タイムラインソフトをテスト
シーケンサー、メトロノーム、テンポ定規、MIDIユーティリティ、生成音楽システム向けの決定的な期待値を作成します。
よくある質問
1小節の長さを求める式は何ですか?
BPMが分母の音符を数える場合、60をBPMで割って1拍を求め、その値に分子を掛けます。
拍子記号の分母は数式を変えますか?
分母はBPMが数える音符を示します。両者が同じ音価を指せば、小節には分子で示した数の拍が入ります。
付点4分音符をテンポとする6/8はどう入力しますか?
付点4分音符のBPMを3倍して8分音符のBPMへ変換し、分子6、分母8を入力してください。
音声ファイルを解析してBPMを検出しますか?
いいえ。 ご指定のBPMと拍子から時間を計算するだけで、音声の送信や解析は行いません。
4/4拍子、120 BPMの1小節は何秒ですか?
2秒です。1拍は60を120で割った0.5秒で、それに拍子の上の数字である4を掛けると1小節の長さになります。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/hobby/music-bar-duration \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"numerator":4,"denominator":4,"bpm":120}'const res = await fetch("https://api.kit.forhosting.com/hobby/music-bar-duration", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"numerator": 4,
"denominator": 4,
"bpm": 120
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/hobby/music-bar-duration",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"numerator": 4,
"denominator": 4,
"bpm": 120
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/hobby/music-bar-duration", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"numerator":4,"denominator":4,"bpm":120}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"numerator":4,"denominator":4,"bpm":120}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/hobby/music-bar-duration", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"numerator": 4,
"denominator": 4,
"bpm": 120
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "hobby.music_bar_duration",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
小節時間の計算式について
値は読みやすく安定したJSONにするため小数第9位までに丸め、実用上十分な時間精度を保ちます。
制作工程での小節時間の活用方法
編集ではbar_duration_secondsに小節数を掛け、カット、タイトル、トランジション、ループ終端を配置できます。フィールド不足、分数の分子、未対応の分母、非有限値、範囲外のテンポにはinvalid_inputを返します。ブラウザ版はAPIと同じ純粋な関数を実行し、成功したAPIリクエストの料金は$0.002です。
技術的な質問
曲中のテンポ変更にも対応できますか?
一定テンポの区間を個別に計算して合計してください。1回のリクエストは1つの固定テンポと拍子を表します。