トップページへ戻る

ピアノスケッチ JSON仕様 v4

ブラウザへの読み込みと、手元のAIにJSONを作らせるための公開仕様です。サーバー保存・非公開APIではこの契約を厳格に検証します。

AIで曲を作る画面へ

制約

  • 単音メロディ専用。和音(pitch配列)は未対応です。
  • 拍子の分母は4固定で、分子は2〜4です。6/8・三連符は未対応です。
  • 音符は小節をまたげます。楽譜では必要に応じてタイで表示されます。
  • 同じ時間帯に複数の音符を置けません。
  • APIとサーバー保存は補正せず、正規のv4 payloadだけを受理します。

フィールド

名前型・値域
version{"type":"integer","value":4}
tempo{"type":"integer","min":50,"max":180}
key{"type":"string","values":["C","G","D","A","E","B","F#","Db","Ab","Eb","Bb","F","Am","Em","Bm","F#m","C#m","G#m","D#m","Bbm","Fm","Cm","Gm","Dm"]}
measures{"type":"integer","min":3,"max":100}
timeSigNumerator{"type":"integer","min":2,"max":4,"denominator":4}
octaveSpan{"type":"integer","min":2,"max":3}
wrapCount{"type":"integer","min":3,"max":6}
showNames{"type":"boolean"}
showPianoNames{"type":"boolean"}
notes{"type":"array","maxItems":4800}
notes[].step{"type":"integer","min":0}
notes[].dur{"type":"integer","values":[1,2,3,4,6,8,12,16]}
notes[].pitch{"type":"string","range":"C3〜C6(octaveSpan=2時はC4〜C6)"}

AIへの指示文

サンプル

{
    "version": 4,
    "tempo": 92,
    "key": "C",
    "measures": 3,
    "timeSigNumerator": 4,
    "octaveSpan": 2,
    "wrapCount": 3,
    "showNames": true,
    "showPianoNames": true,
    "notes": [
        {
            "step": 0,
            "dur": 4,
            "pitch": "C4"
        },
        {
            "step": 4,
            "dur": 4,
            "pitch": "D4"
        },
        {
            "step": 8,
            "dur": 4,
            "pitch": "E4"
        },
        {
            "step": 12,
            "dur": 4,
            "pitch": "F4"
        }
    ]
}