Document
MIDI-JSON変換ルール
Creators' HubでのMIDIとJSONの間の変換ルールです。MIDIメッセージがどのようなJSONメッセージに変換されるか、どのようなJSONメッセージを書けばMIDIに変換されるかを示しています。(現在利用できるメッセージの一覧です。このルールはamei-musicのgithubでオープンに議論・検討して仕様を決めて拡張していきます)
Note On
MIDI: [0x9n note_num velocity]
JSON:
{
"address":"/midi/noteon",
"args":[ch,note_num,velocity]
}
Note Off
MIDI: [0x8n note_num velocity]
JSON:
{
"address":"midi/noteoff",
"args":[ch,note_num,velocity]
}
Note Pressure
MIDI: [0xAn note_num value]
JSON:
{
"address":"/midi/notepressure",
"args":[ch,note_num,value]
}
Control Change
MIDI: [0xBn type value]
JSON:
{
"address":"/midi/controlchange",
"args":[ch,type,value]
}
Program Change
MIDI: [0xCn value]
JSON:
{
"address":"/midi/programchange",
"args":[ch,value]
}
Channel Pressure
MIDI: [0xDn value]
JSON:
{
"address":"/midi/channelpressure",
"args":[ch,value]
}
Pitch Bend
MIDI: [0xEn msb lsb]
JSON:
{
"address":"/midi/pitchbend",
"args":[ch,msb,lsb]
}
System Exclusive
MIDI: [0xF0 value1 value2 value3 ... 0xF7]
JSON:
{
"address":"/midi/sysex",
"args":[0xF0, value1, value2, value3, ... , 0xF7]
}
具体例
以上の記述では、MIDIメッセージ中のnはOSCメッセージのch(チャンネル番号)にあたります。
チャンネルは0から15(16進数で0からF)までの値を取り、その他の値は0から127までを設定できます。以下に具体例を示します。
- Note Onメッセージ
- チャンネル: 15(16進数で表すとF)
- ノートナンバー: 60
- ベロシティ: 100
MIDI: [0x9F 60 100]
JSON :
{
"address":"/midi/noteon",
"args":[15,60,100]
}