2音間の音程計算
この計算ツールは、2つの音名と科学的ピッチ表記のオクターブから、楽譜上の音程を判定します。度数、種類、略号、方向、半音数を表示します。音楽理論では異名同音でも綴りが重要なため、響きだけでなく音名の文字も評価します。たとえばF♯–Cは減5度、F♯–B♯は増4度です。下降音程や複音程も単純な異名同音の名称に置き換えず、そのまま扱います。
無料で実行
鍵盤の位置ではなく、楽譜どおりの音名を入力します
最初と次の音を楽譜に記された綴りのまま選び、それぞれのオクターブを科学的ピッチ表記で指定してください。この表記では中央のCがC4です。幹音に加えて、シャープ、フラット、ダブルシャープ、ダブルフラットを使用できます。音程には独立した2つの要素があるため、綴りは欠かせません。度数は音名の文字位置を数え、種類は実際の半音幅をその度数の基準幅と比較して決まります。平均律ではC4–F#4とC4–Gb4は同じ高さに聞こえますが、前者は増4度、後者は減5度です。鍵盤の位置だけを見る計算では、この区別を保持できません。オクターブ欄は別の曖昧さも解消します。C4–C5は完全8度ですが、C4–C4は完全1度です。両方のオクターブを指定すると、すべてを1オクターブ以内へ単純化せず、方向と複音程も判定できます。親しみやすい異名同音へ書き換えず、必ず譜面上の音名をご使用ください。
度数と種類を求める仕組み
度数は、2音間の音名文字を両端を含めて数えて求めます。CからEまではC、D、Eの3文字を含むため3度、CからFまでは4文字を含むため4度の一種です。オクターブをまたぐと数え方が延長され、9度、10度、11度などの複音程になります。次に、すべての変化記号を反映した絶対的な半音距離を計算します。1度、4度、5度とそれらに対応する複音程では、基準となる種類は完全です。2度、3度、6度、7度とそれらの複音程では、広い基準が長、その1半音狭い形が短です。完全または長の基準を1半音広げると増音程になります。完全の基準を1半音狭めると減音程になり、短音程をさらに1半音狭めた場合も減音程です。したがって、12種類の半音表から名称を選ぶのではなく、記譜された音程の標準的な理論に従います。半音数は補助情報として表示し、種類と度数を中心的な回答として示します。
下降音程と複音程の結果を正しく読みます
方向は、オクターブと変化記号を適用した後の実際の高さで決まります。2番目の音が低い場合は下降と表示されますが、音程名は記譜された2音間の両端を含む距離を表します。たとえばE5からC5へ下がる音程は短3度です。複音程は完全な度数を保持します。C4–E5はオクターブ位置も問いの一部であるため、単なる長3度ではなく長10度です。この区別は、声域、管弦楽法、対位法課題、コードボイシング、音域が重要な採譜の確認に役立ちます。略号はP5、m3、A4、M10のように、標準的な種類の記号と完全な度数を組み合わせます。異名同音の音が意図的に別の名称になるのは正常であり、誤りではありません。極端な変化記号によって楽譜上の方向と実音の方向が矛盾する場合は、誤解を招く理論名を返さず、入力の確認を求めます。APIでもブラウザーツールと同じ決定的計算を使用し、1回の料金は$0.002です。
活用例
楽典課題を確認する
異名同音の綴りとオクターブ位置を保ったまま、記譜音程の種類と度数を確認できます。
楽譜を分析する
下降進行や変化音を含め、声部間の単音程・複音程を判定できます。
自動生成された記譜を検証する
ソフトウェアが音高関係を意図した増・減・長・短・完全音程として綴っているか確認できます。
よくある質問
F♯とG♭で音程名が異なるのはなぜですか?
音名の文字が度数を決めるためです。異名同音は同じ高さでも、楽譜上で異なる和声機能を持つ場合があります。
どのオクターブ表記を使用しますか?
中央のCをC4、その直下のBをB3とする科学的ピッチ表記を使用します。
下降音程も計算できますか?
はい。2番目の実音が低ければ下降と表示し、記譜された2音間の完全な音程名を示します。
複音程にも対応していますか?
はい。オクターブ位置を保持するため、C4–E5は3度へ単純化せず10度として返します。
APIリクエストの料金はいくらですか?
APIは1回$0.002です。ブラウザー上の計算ツールは無料でご利用いただけます。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/hobby/music-interval-between-notes \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"first_note":"F#","first_octave":4,"second_note":"C","second_octave":5}'const res = await fetch("https://api.kit.forhosting.com/hobby/music-interval-between-notes", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"first_note": "F#",
"first_octave": 4,
"second_note": "C",
"second_octave": 5
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/hobby/music-interval-between-notes",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"first_note": "F#",
"first_octave": 4,
"second_note": "C",
"second_octave": 5
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/hobby/music-interval-between-notes", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"first_note":"F#","first_octave":4,"second_note":"C","second_octave":5}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"first_note":"F#","first_octave":4,"second_note":"C","second_octave":5}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/hobby/music-interval-between-notes", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"first_note": "F#",
"first_octave": 4,
"second_note": "C",
"second_octave": 5
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "hobby.music_interval_between_notes",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |