MIDI 1.0とは

MIDIメッセージ(MIDIフォーマットとか、MIDIプロトコルとか、MIDIデータとか言うことも…)についてあちこちに書き散らしてきました。 ここにインデックスを書いておきたいと思います。

MIDI 1.0の仕様書は、こちらのサイト からpdfをダウンロードすることができます。1983年に規格が作成され、1998年に規格書として第1版が発行された とのことです。ちなみにpdf版は、2019年に配布が始まりました。

MIDIは8ビット3バイトのメッセージか、MIDIは8ビット2バイトのメッセージ、あるいは1バイトのメッセージ のいずれかで定義されています。 基本的には最初のバイトの上位4ビット(下の例では"p")で何をするメッセージかが決まります。

3バイトの場合&nbps;&nbps;&nbps;&nbps;0xpq 0xrs 0xtu
2バイトの場合&nbps;&nbps;&nbps;&nbps;0xpq 0xrs
1バイトの場合&nbps;&nbps;&nbps;&nbps;0xpq

- "p"が8,9,A,C,D,Eの場合はメッセージはチャンネルボイスメッセージに一意に決まります。
- "p"がBの場合は、チャンネルボイスメッセージのコントロールチェンジもしくはチャンネルモードメッセージです。
- "p"がFの場合は、システムメッセージのいずれかです。
次に一覧表を示します。

チャンネルメッセージ チャンネルボイスメッセージ ノートオフ(0x80)
ノートオン(0x90)
ポリフォニックキープレッシャー(0xA0)(*1)
コントロールチェンジ(0xB0)
プログラムチェンジ(0xC0)
チャンネルプレッシャー(0xD0)
ピッチベンド(0xE0)
チャンネルモードメッセージ (*2) オールサウンドオフ(0xB0 0x78 0x00)
リセットオールコントローラー(0xB0 0x79 0x00)
オールノートオフ(0xB0 0x7B)
オムニオフ(0xB0 0x7C 0x00)
オムニオン(0xB0 0x7D 0x00)
モノモードオン(0xB0 0x7E 0x00)
モノモードオフ(0xB0 0x7F 0x00)
システムメッセージ システムエクスクルーシブメッセージ システムエクスクルーシブメッセージスタート(0xF0)
システムエクスクルーシブメッセージエンド(0xF7)
システムコモンメッセージ MTC ウォータフレームメッセージ(0xF1 0xdd)
ソングポジションポインタ(0xF2 LSB MSB)
ソングセレクト(0xF3 0xdd)
未定義(0xF4, 0xF5)
チューンリクエスト(0xF6)
エンドオブシステムエクスクルーシブ(0xF7)
システムリアルタイムメッセージ タイミングクロック(0xF8)
スタート(0xFA)
コンティニュー(0xFB)
アクティブセンシング(0xFE)
システムリセット(0xFF)

(*1)   イーチキーアフターと言うこともあります。
(*2)   基本的に3バイト目は未定義です。