BPMと小節からメトロノームのクリック仕様を生成
音声のレンダリングや解析を行わず、再現可能なメトロノームのクリックトラック仕様を作成します。1分当たりの拍数、4/4や6/8などの拍子、整数の小節数を指定してください。結果には時刻0からの全クリックが並び、それぞれの小節と拍が示され、各小節の第1拍はアクセント付きとして記録されます。構造化された出力は、サウンドの予約、アニメーションの制御、練習ツールの作成、拍を扱うソフトウェアのテストにご利用いただけます。
無料で実行
音楽のグリッドを指定します
正のBPM値、分子/分母形式の拍子、正の整数の小節数を入力してください。BPMは分母が示す音価の1分当たりの拍数です。そのため、4/4で120 BPMなら四分音符が0.5秒ごとに、6/8で120 BPMなら八分音符が0.5秒ごとに配置されます。分子は1小節に含まれるクリック数を決めます。再生システムでは通常、冒頭の強拍をタイムラインの先頭に予約するため、生成器も最初のクリックをタイムスタンプ0に置きます。以降のクリックは、正確に60をBPMで割った秒数ずつ進みます。この定義には、暗黙のカウントイン、スウィング、細分化、音声レイテンシーは含まれません。必要な場合は、返されたスケジュールを明示的に変換するか、オフセットを加えてください。入力が小さく音楽的に明確なので、特定のサンプルレートや音声ファイルに依存せず、ブラウザー音声、ネイティブ音声エンジン、映像タイムライン、テストデータ、楽譜アプリで共通して利用できます。
タイムスタンプとアクセントを確認します
各クリックのレコードには、1から始まる通し番号、小節番号、拍番号、秒単位のタイムスタンプ、アクセントのフラグが含まれます。各小節の第1拍ではaccentedがtrueとなり、それ以外の拍ではfalseとなります。この情報により、レンダラーは強拍に強いクリック音を選び、その他の拍には通常の音を割り当てられます。タイムスタンプは小数第9位までに丸められるため、JSON出力の安定性を保ちながら、一般的なテンポではマイクロ秒未満の精度を維持します。概要にはクリック間隔、総時間、クリック数、1小節当たりの拍数、拍の音価も含まれます。総時間は最後のクリック時刻だけではなく、最後の拍の区間が終わるまでの全範囲です。たとえば120 BPMの4/4を1小節生成すると、クリックは0、0.5、1、1.5秒に置かれますが、全体の長さは2秒です。この違いを考慮すると、音声やアニメーションのタイムラインを確保する際に最後の拍が切れることを防げます。
仕様を安全にスケジュールします
結果はレンダリング済みの音声ではなく、時刻の仕様としてお取り扱いください。Web Audioアプリでは、再生開始時刻を各タイムスタンプに加え、フラグに応じてアクセント用または通常用のバッファーを予約できます。デジタルオーディオワークステーションのスクリプトでは秒を固有のタイムライン単位に変換でき、テストスイートではスピーカーやメディアコーデックを使わずに想定されるトランスポートイベントを比較できます。この関数は決定的であり、同じ入力からは常に同じJSONが得られます。ネットワーク、現在時刻、乱数は使用しません。0、負数、欠落値、無限値、数値でない文字列など、無効なテンポは拒否されます。拍子の分子は1から32、分母は1から32の範囲にある通常の2の累乗である必要があります。小節数は正の整数とし、実用的な応答サイズを保つため全体を10,000クリックまでに制限します。タイムスタンプは0を基準とするため、アプリの遅延や機器の補正は呼び出し側で管理し、最終的な再生環境が判明してから追加してください。
活用例
ブラウザーのメトロノームを制御
簡潔な音楽設定から、Web Audioのタイムラインに通常音とアクセント音を予約できます。
拍に同期するアニメーションを作成
視覚的な合図、練習指示、照明イベントを、小節と拍の正確な時刻に合わせられます。
トランスポート処理をテスト
音声をレンダリングせず、シーケンサー、練習アプリ、再生エンジン用の再現可能な期待イベントを作成できます。
よくある質問
料金はいくらですか?
APIは1回のリクエスト当たり$0.002で、同じ決定的な計算をブラウザーでは無料で実行できます。
最初のクリックは時刻0ですか?
はい。タイムスタンプ0は、第1小節の第1拍に当たるアクセント付きの強拍です。
強拍はどのように示されますか?
各小節の第1拍ではaccentedがtrueになり、それ以外のクリックではaccentedがfalseになります。
音声ファイルが生成されますか?
いいえ。音声、アニメーション、テストの各システムが描画または利用できる、構造化されたクリック予定を返します。
6/8におけるBPMの意味は何ですか?
BPMは分母が表す拍の音価に適用されます。6/8では、6つの八分音符の拍それぞれにクリックが置かれます。
総時間が最後のタイムスタンプより長いのはなぜですか?
最後のクリックは最終拍の開始点です。総時間にはその拍の区間全体が含まれるため、指定した小節が完全になります。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/audio/metronome-click-track \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"bpm":120,"time_signature":"4/4","bars":2}'const res = await fetch("https://api.kit.forhosting.com/audio/metronome-click-track", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"bpm": 120,
"time_signature": "4/4",
"bars": 2
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/audio/metronome-click-track",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"bpm": 120,
"time_signature": "4/4",
"bars": 2
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/audio/metronome-click-track", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"bpm":120,"time_signature":"4/4","bars":2}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"bpm":120,"time_signature":"4/4","bars":2}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/audio/metronome-click-track", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"bpm": 120,
"time_signature": "4/4",
"bars": 2
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "audio.metronome_click_track",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
max_items | 10000 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |