曲の小節数計算機
120 BPM、4/4拍子の3分の曲は、1小節2秒でちょうど90小節になります。曲の長さ、テンポ、拍子を入れれば、フレーズの組み立てやラジオ用の短縮版、マーカーの計画に使えます。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- 分
- 3
- 秒
- 0
- Bpm
- 120
- 拍子記号
- 4/4
- 継続時間 (秒)
- 180
- 拍の単位
- quarter
- 1小節の拍数
- 4
- 1拍の長さ (秒)
- 0.5
曲の小節数計算機は、録音の長さ、テンポ、拍子記号から、そのトラックに含まれる完全な小節の数へ変換します。アレンジ作業、ラジオエディット、DAWのマーカー用スクリプトはいずれもその整数を必要とします。8小節のフレーズ、16小節のヴァース、32小節のソロは、実際にいくつの全小節が収まるかが分かって初めて意味を持ちます。再生画面やファイルに表示された分と秒、プロジェクトのBPM、4/4・3/4・6/8などの拍子を入力してください。応答は実数としての正確な小節数、完全小節の整数、最後の小節を埋めない余り拍、1小節の秒数、手計算で追える順序付き手順を返します。
長さ・テンポ・拍子が完全小節になる仕組み
1分あたりの拍数は、書かれた拍のパルスが60秒に何回あるかを数えます。本計算機はそのパルスを、拍子記号の分母が示す音符として扱います。4/4と3/4では四分音符、6/8と12/8では八分音符、2/2のカットタイムでは二分音符です。
したがって1小節には分子が示す数だけそのパルスが入り、普通拍子は4拍、ワルツは3拍、複合の6/8はメトロノームを八分音符に合わせたとき6つの八分音符拍を持ちます。曲の長さは分を60倍して残りの秒を足し、秒へ直します。その長さを分で表した値にテンポを掛けると、録音に収まる総拍数が得られます。
総拍数を分子で割ると、実数としての正確な小節数になります。完全小節は、その正確な数を超えない最大の整数です。ダウンビートに着地するトラックが浮動小数点の誤差で1小節少なく報告されないよう、ごく小さな丸めイプシロンを先に掛けます。
4/4で120 BPMの3分の曲は360拍、完全小節はちょうど90です。3/4で100 BPMの4分の曲は400拍、完全小節133、余り1拍です。非正の長さやテンポは拒否します。
ゼロや負のパルスは非物理的な小節数を作り、アレンジ図やマーカースクリプトを壊すからです。
実務のコツ、上限、この道具が対象外であること
分と秒は推測せず、プレーヤーやファイルのメタデータから読んでください。無視した3秒のフェードは、完全小節数が同じでも余りをずらします。6/8を付点四分のパルスとして叩く場合は先に換算します。
クライアントを制御できるときは、整形済みの時計文字列より数値送信を優先します。数値文字列は厳密な有限数値パターンに一致する場合のみ受理されます。よく使うスタジオ基準は、4/4・120 BPMの3分が90小節、3/4・100 BPMの4分が完全小節133と余り1拍、6/8・96 BPMの2分が完全小節192です。
BPM検出器でも調判定でもフレーズ構造解析でも、リアルタイム音声処理でもありません。
活用例
完成ミックスを8小節・16小節の区画へ落とす
制作者は配信上の長さ、セッションBPM、拍子を入力し、波形を当て推量する代わりに8または16の完全小節ごとにアレンジ用マーカーを置きます。
よくある質問
長さとBPMから曲の小節数をどう計算しますか?
長さを秒に直し、BPMを掛け、60で割ると総拍数です。拍子の分子(1小節あたりの拍)で割り、切り下げます。
6/8と4/4では、1拍の数え方がどう違いますか?
BPMは分母の音符を数えます。4/4では1拍は四分音符で、小節は4拍です。6/8では1拍は八分音符で、小節は6拍です。6/8を付点四分で叩く場合は、その感じたテンポを先に八分音符のBPMへ換算してください。
120 BPM、4/4拍子の3分の曲は何小節ですか?
90小節です。曲は180秒で、このテンポでは1拍が0.5秒、4拍で1小節なので、1小節は2秒になります。
120 BPMで1小節は何秒ですか?
4/4拍子なら2秒です。0.5秒の拍が4つ並びます。3/4拍子では1小節が3拍なので、同じテンポでもそれより短くなります。
余った拍とは何ですか?
最後の完全な小節のあとに残り、1小節を満たさない拍のことです。120 BPM、4/4拍子の3分の曲は360拍がちょうど90小節に収まるので、余りはありません。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/hobby/music-bar-count \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"minutes":3,"seconds":0,"bpm":120,"time_signature":"4/4"}'const res = await fetch("https://api.kit.forhosting.com/hobby/music-bar-count", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"minutes": 3,
"seconds": 0,
"bpm": 120,
"time_signature": "4/4"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/hobby/music-bar-count",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"minutes": 3,
"seconds": 0,
"bpm": 120,
"time_signature": "4/4"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/hobby/music-bar-count", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"minutes":3,"seconds":0,"bpm":120,"time_signature":"4/4"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"minutes":3,"seconds":0,"bpm":120,"time_signature":"4/4"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/hobby/music-bar-count", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"minutes": 3,
"seconds": 0,
"bpm": 120,
"time_signature": "4/4"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "hobby.music_bar_count",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
max_minutes | 600 |
max_seconds | 36000 |
max_duration_seconds | 36000 |
max_bpm | 400 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
非正の長さやテンポ、公開集合外の拍子はinvalid_inputとなり、セッション雛形が負や無限の小節数を保存しません。経路は純粋な算術で、ネットワークも乱数シードも壁時計依存もなく、無料のブラウザ実行と前払いAPIは、公開価格$0.002の成功リクエストごとに、固定小数点丸め後に同じJSONを返します。
長さ・テンポ・拍子が完全小節になる仕組み
次の小節を埋めない余りのパルスは remainder_beats として返ります。
APIの呼び出し方と応答の中身
合算した長さは0より大きく最大36000秒、テンポは0より大きく最大400 BPMです。必須フィールド4つをJSON本体で送ってください。印刷上のトラック長は minutes と seconds、テンポは bpm、拍子は閉じた一覧 4/4、3/4、2/4、5/4、6/4、7/4、2/2、3/2、6/8、9/8、12/8、3/8、5/8、7/8 の time_signature です。minutes は duration_minutes、min、mins も受け付けます。seconds は duration_seconds、sec、secs も受け付け、59を超える値も許されるので、3分45秒のファイルを 0 minutes と 225 seconds として送れます。テンポは tempo、beats_per_minute、tempo_bpm も受け付けます。拍子は time_sig、meter、metre、signature も受け付けます。欠落、非数値文字列、非有限値、未知の拍子、範囲外は invalid_input で課金されません。成功時は丸めた入力を返し、duration_seconds、beat_unit、beats_per_bar、beat_seconds、beat_ms、bar_seconds、bar_ms、total_beats、exact_bars、complete_bars と同義の complete_measures、remainder_beats、remainder_seconds、真偽の incomplete_bar を置きます。formula は complete_bars が duration_seconds に bpm を掛けて60で割り、beats_per_bar で割った値の floor である閉じた関係を述べます。steps 配列は生の minutes と seconds から切り下げた個数まで進み、テストで中間値を検証できます。料金は成功リクエストあたり定額 $0.002(単位 item)です。
実務のコツ、上限、この道具が対象外であること
その感じたテンポでの1小節あたり付点四分2拍は、本エンドポイントが使う慣例どおり、数を3倍した八分音符6拍に相当します。公開範囲内にBPMを保ち、WorkerとブラウザのIEEE倍精度で逆数の拍長が有限になるようにしてください。指導では正の成功経路と、意図的な0テンポや0長さを組み合わせ、厳格な invalid_input 経路を示してください。このページは曲の小節数計算機、トラックの小節数、テンポと拍子からの小節カウンタを探す利用者向けです。invalid_input の失敗タスクは前払い残高を消費せず、学習者が端を意図的に試す探索スクリプトを安く保てます。往復確認は、duration_seconds に bpm を掛けて60で割り、分子で割って切り下げ、complete_bars と一致することを見れば十分です。
連携の活用例
ラジオエディットが強拍で終わるかを確かめる
編集者はカット前後の complete_bars と remainder_beats を比べ、短縮ミックスが余りの端数ではなく小節線に着地するかを確認します。
カタログのメタデータからDAWマーカーを生成する
開発者はカタログ行の minutes、seconds、BPM、time_signature を渡し、音声を復号せず golden フィクスチャに対して complete_bars を検証します。
技術的な質問
なぜ完全小節は正確な小節数より小さくなり得ますか。
exact_bars は実数です。complete_bars は終わった小節の整数です。次の小節を埋めない余りの拍は remainder_beats として返り、incomplete_bar は true になります。
長さやBPMが0または負だとどうなりますか。
値が非正のため、道具は invalid_input を返します。長さゼロのトラックや非正のテンポでは小節数は定義されません。
曲の小節数計算機は無料ですか。
ブラウザの道具は無料で、端末上で動きます。API呼び出しは成功リクエストあたり $0.002 の前払いKIT残高を使い、失敗したタスクは課金されません。