![]() ![]() MIDIメッセージの分類と解説 ![]() |
|
3級・2級とも試験範囲に入る項目ですが、実質的には2級にしか出ません。 MIDIデータを作っていても、この『MIDIメッセージ』を気にしながら作ることはないでしょう。データ制作技術には直接関係がないために、これらの知識がない人も多くいます。それで問題はないのですが、MIDI検定ではMIDIの“規格”そのものも問題範囲になっていますので、あらためて勉強する必要が出てきます。 テキストを見ても解りづらい方もいるようですので、ここで詳しく解説してみましょう。 そもそも『MIDIのバイト』とは何なのでしょうか。“バイト”つまり“8ビット(=2進数の8桁)”がひとつのかたまりとなって、それらの複数の集まりで構成されたものが『MIDIのバイト』と呼ばれるものです。 これらのバイトは「00000000」〜「11111111」の256個あり、MSB(最上位桁)が「0」のもの(00000000〜01111111)の128個が『データバイト』、MSB(最上位桁)が「1」のもの(10000000〜11111111)の128個が『ステータスバイト』となります。上の図で、『データバイト』が“00H〜7FH”となっていますが、これは2進数“00000000〜01111111”を16進数表記したもので、10進数に直せば“0〜127”ということなのです。『ステータスバイト』も同様に“80H〜FFH”というのは2進数“10000000〜11111111”の16進数で、10進数で表記すると“128〜255”ということです。 これらがどのように送信され、どのような機能を果たすのかですが、基本は下記の組み合わせとなります。
具体的に、『1チャンネルにおいてコントロールチェンジ7番を115に設定する』というメッセージでは
ちなみに、テキスト等で“BnH”“CnH”などと表記しているものを“B0H〜BFH”“C0H〜CFH”などと表に記述しましたが、“n”とは「1〜16チャンネル」の16進数で、1チャンネルが“0”、16チャンネルが“F”となるわけです。 では、各項目を詳しく解説しましょう。 まず、コントロールチェンジなどで“データ値”として与えられているものが『0〜127』の128段階であることを確認しましょう。例えばボリュームの設定などがそうですよね。コントロールチェンジのナンバーは『0〜127』の128種類が存在することも確認して下さい。ボリュームなら『コントロールナンバー7番』ですよね。この『コントロールナンバー7番』というのも、『コントロール情報』として与えられている『0〜127』番のうちの1つを『データ値』として選択しているのです。この『データ値』にあたるものが『データバイト』ということになるのです。 『ステータスバイト』では、「どのような機能のデータを送信するか」を音源に伝える役割をするものです。例えば「何チャンネルに送信する」とか、「音源すべてに影響させるデータを送信する」とか、『MIDIメッセージ』に含まれる『データバイト』の目的を音源に認識させるためのものが『ステータスバイト』になります。 上記のような具体例を挙げると、
1つ目は、上記の具体例から送信チャンネルのみ変化させましたが、『8チャンネルにおいてコントロールチェンジ7番を115に設定する』というものです。2つ目は『8チャンネルにおいて7番の鍵盤を115のベロシティーで押した』というものです。 電話番号の“市内局番”が違えば、最後の4桁が同じでも違う人の家に掛かってしまいますよね?それと同じことなのです。 『データバイト』は“00H〜7FH”となっていますが、これを10進数に直せば“0〜127”と同意です。 『ステータスバイト』も同様に“F0H〜FFH”は“128〜255”になりますが、こちらは16進数のままにしておいた方が理解が早いです。 『ステータスバイト』には「チャンネルメッセージ」と「システムメッセージ」の2種類があります。 「チャンネルメッセージ」とは、「各MIDIチャンネルにおいてそれぞれ設定のできるもの」と考えて下さい。例えば“コントロールチェンジ”で設定するものは各チャンネルごとに独立して設定しますよね? 「システムメッセージ」とは、「チャンネルに関係なく、音源のシステム設定をさせるもの」と考えて下さい。 『チャンネルメッセージ』には「チャンネルボイスメッセージ」と「チャンネルモードメッセージ」の2種類があります。 「チャンネルボイスメッセージ」はその名の通り、「ボイス(音)」に変化をもたらすためのものです。コントロールチェンジをはじめ、プログラムチェンジで音色を設定したり、ノートオンは“何チャンネルの鍵盤をどれぐらいのベロシティで押す”というものであったりなど、各チャンネルごとの“音”に関するメッセージとなります。 「チャンネルモードメッセージ」は、各チャンネルでの“モード”の設定をします。「何チャンネルをモノにする」とか、「何チャンネルの音をすべて鳴らないようにする」とか、「何チャンネルの音の設定をリセットする」など、音の鳴らせ方の切り換えをするメッセージとなります。 『システムメッセージ』の方は「システムエクスクルーシブメッセージ」「システムコモンメッセージ」「システムリアルタイムメッセージ」の3種類があります。その名の通り“システム”に指示を出すメッセージなので、『チャンネルメッセージ』とは異なり「何チャンネルに送信する」という意味を持っていないステータスバイトとなります。 「システムエクスクルーシブメッセージ」は、MIDI機器固有のデータのやり取りに使用します。例えば、コントロール情報などの共通するメッセージ以外に操作できる機能を、その機器独自のメッセージによって操作したりするために使うわけです。ローランド用のエクスクルーシブメッセージがヤマハの機器では反応しないのもそのためです。なお、機器独自のメッセージ方法であるため、ステータスバイトである“F0H”以降のデータバイトの数には制限がありません。また、『チャンネルメッセージ』のように「何チャンネルに送信する」という意味を持っていないため、データバイトでチャンネル指定をするのです。 「システムコモンメッセージ」は、基本的にはリアルタイムメッセージと共に使われます。エンドオブエクスクルシーブ(F7H)に関しては、エクスクルシーブの最後に置かれます。このように、単独で使われることのないメッセージ群です。 「システムリアルタイムメッセージ」はデータバイトを持たず、このメッセージ群にあるステータスバイトのみで役割を果たします。また、他のメッセージよりも最優先で送信されます。 各項目の用語解説そのものは試験対象外ですが、意味合いが分かっていれば応用も効くかも知れません。意味も分からず丸覚えするよりは、はるかに意味のあることです。 MIDIメッセージに関わる問題は、このような難しいものは出ません。ただ、試験範囲に相当する部分においては理解を深めておきましょう。参考にして下さい。 |
無断使用・配布を禁ず![]() 制作・著作 Minoru.N |
![]() ![]() |