MAX 7 MIDI基礎1
- k.s.c
- 2017年8月23日
- 読了時間: 2分
P386〜
MIDIメッセージは、1バイト(=8bit)のデータの並びであり、1〜 16のMIDIチャンネル区別をもっている「チャンネルメッセージ」とMIDIシステム全体に共有される「システムメッセージ」に大別される。
チャンネルメッセージにはMIDIコントローラーを演奏した際に送信されるノートオン・オフ、ピッチベンドなどのメッセージが含まれ、システムメッセージには同期用のタイミングクロックや音色プログラム等を転送するためのシステム・エクスクルーシブ(16進数の「F0」ではじまり「F7」で終了する、音源機器固有の機能制御信号。SysExとも表記する)などのメッセージが含まれる。
例えば、鍵盤型のMIDIコントローラーを押すと、"音を鳴らせ"という意味を持ったノート・オンメッセージが送信される。このノート・オンは、具体的には[144(ステータスバイト)、60(データバイト)、127(データバイト)]といった3バイトからなるデータ配列であり、1バイトずつ順次転送される。
1番目の144は、ステータス・バイトと呼ばれ、メッセージが何であるかの種類を宣言する。MIDIには、1〜16のチャンネルがあり、1本のMIDIケーブルの中であっても区別して転送することが出来るが、これはステータス・バイトがチャンネル別に定義されているためである。
144はチャンネル1のノート・オン、145はチャンネル2のノート・オン・・という具合である。このMIDIチャンネルの区別により、複数のMIDI機器がMIDIケーブルで接続されている状態でも、送信側と受信側でチャンネルを併せて特定の機器だけ選択的にコントロールすることが出来る。
ステータス・バイトの後に続くデータ列は、データバイトと呼ばれ、実際のデータ内容を示している。ノート・オンの場合は2個と決まっており、それぞれノートナンバー(鍵盤上の位置=音の高さ)、ベロシティ(鍵盤を押す速度=音の強さ)を示している。したがって、上記の144、60、127の数列は、チャンネル1のノートオン、ノートナンバー60、ベロシティ127、という内容となる。
ちなみに、ある1バイト(=8bit)のデータが、ステータス・バイトなのかデータ・バイトなのかを区別するために、8bit中の1bitが使用されており、8bitは2の8乗の256段階(0〜255)までの値を表現できるが、ステータスバイトは先頭ビットが1となって残り7ビットで、128〜255の範囲、データバイトは先頭ビットが0のため残り7ビットで、0〜127の範囲になる。データバイトの値0〜127は、MIDIを扱う場合に頻繁に目にする数値の範囲である。
ステータスバイト
1○○○○○○○
データバイト
0○○○○○○○
ただし、実際には、各バイトを区切る目的で、先頭にスタート・ビット(0)、末尾に(1)を付け加えた計10ビットのデータ配列としてシリアル転送されている。