第2.0章 MIDIのデータ構造


次の第2章からはMIDI信号がどのようなデータ構造になっているかを見ていきます。


2.01 MIDIメッセージ


MIDI では、演奏情報を表すために動作や設定値ごとにある特定の値が決められており、これを MIDIメッセージと呼んでいます。
例えば、キーボードで鍵盤を押すと「ノートオン」というメッセージが送られ、どのキーがどのくらいの強さで押されたかが決められたメッセージの定義に基づいて送られるわけです。
他の演奏情報にもメッセージがしっかり決められていて、これらの組み合わせで 1つの演奏として実現されているのです。この MIDIメッセージを理解することが MIDI機器をうまくコントロールするために必要となってくるのです。


2.02 MIDIメッセージの分類

MIDIメッセージは次の表のように分類できます。これらを第2章から詳しく説明していきます。

MIDIバイト
(00H〜FFH)
データバイト
(00H〜7FH)
ステータスバイト
(80H〜FFH)
チャンネルメッセージ
(80H〜EFH)
チャンネルボイス
 ●ノートオフ
 ●ノートオン
 ●ポリフォニックキープレッシャー
 ●コントロールチェンジ
 ●プログラムチェンジ
 ●チャンネルプレッシャー
 ●ピッチベンド
チャンネルモード
 ●オールサウンドオフ
 ●リセットオールコントローラ
 ●ローカルコントロール
 ●オールノートオフ
 ●オムニオフ
 ●オムニオン
 ●モノモードオン
 ●ポリモードオン
システムメッセージ
(F0H〜FFH)
システムエクスクルシブ
システムコモン
 ●MTCクォータフレーム
 ●ソングポジションポインタ
 ●ソングセレクト
 ●チューンリクエスト
 ●エンドオブエクスクルシブ(EOX)
システムリアルタイム
 ●タイミングクロック
 ●スタート
 ●コンティニュー
 ●ストップ
 ●アクティブセンシング
 ●システムリセット

1番大きなデータの分類として、データバイトステータスバイトがあります。この 2つは、原則として対となって送られます。先にステータスバイトが送られ次に送られるデータバイトの内容がどういう情報を示しているのかを伝えておくのです。データバイトは設定や演奏などの情報を伝える数値です。
つまり、データバイトが同じものでもステータスバイトが違えば全く別の情報を表しています。このように、MIDIメッセージはステータスバイトによって実際の情報の意味づけがされているので、これを理解すること=MIDIメッセージを理解することと言っても過言ではないでしょう。

ステータスバイトとデータバイトの見分けは MSBでできます。MSBが 1であれば、ステータスバイト、0であればデータバイトです。


2.03 システムとチャンネル

MIDI には、システムとチャンネルという考え方があります。
システムというのは、MIDIケーブル 1つのことだと思って構いません。そのシステムの中にチャンネル16あるのです。
といってもチャンネルは物理的なものではなく、論理的・仮想的なものです。「システム」を電波とすれば、「チャンネル」はテレビやラジオのチャンネルと同じような関係です。
このチャンネルは複数の MIDI機器を繋げたときにそれぞれ別のパートを演奏させたいときなどに有効です。もしチャンネルがなかったら全ての音源が同じように演奏してしまいます。
チャンネルはテレビのチャンネルと同様、送信側と受信側が合ってないと正しく機能しません。
メッセージにもこのシステム全体に機能するメッセージと、チャンネル単位にしか機能しないメッセージがあります。それぞれシステムメッセージチャンネルメッセージと呼ばれます。
チャンネル設定チャンネルの設定
送信側と受信側のチャンネルが一致してはじめて正確に演奏される。
左図では、チャンネル 5のデータは送信されていないので、ギター音源から音は出ない。

最近使われている音源の大部分はマルチティンバータイプの音源です。このタイプの音源は、複数のチャンネルを同時に受信して演奏することが可能です。


  次へ2.1 ノートオン・オフ
前へ1.1 MIDI誕生

△戻る
▲トップに戻る