MIDIについての基礎知識

第6幕

プログラム・チェンジ
プログラム・チェンジ・メッセージ
Cn <プログラム番号>

 プログラム・チェンジは、音色の切り替えが行われたことを知らせるメッセージで、キーボード楽器などの音色セレクト・ボタンを押して、音色を切り換えると出力される。これを受信したスレーブの楽器は、自動で音色が切り替わる。また、音色ばかりでなく、エフェクターのエフェクトや、MIDIパッチベイのパッチの切り替えなどにも利用可能である。
 MIDIでは音色配列つまりプログラム番号と音色が決まっているわけではないので、それぞれの楽器に割り当てられているプログラム番号の音色が選ばれる。そのため、あらかじめ自分の持っている楽器のプログラム番号と音色を把握しておかなければ、欲しい音色で演奏することが出来ない。ただしそれでは、おとが一生懸命MIDIデータを作ってホームページに載せても、音源が違えば聞けない。その辺の標準化を行っているのがGeneral MIDI(GM)で、それを拡張したローランドのGSやYAMAHAのXGである。GMのプログラム番号を使えば、およそほとんどの音源で同じ様な音色が鳴るのでご心配なく。同じ様なと書いたのは、楽器メーカーによって音源の方式が違うので、「R社の音源でギターを選んで作ったのにY社のギターの音ではイメージが違っちゃった」ということがある。GM、GS、XGについての説明は覚えていたらいずれ書きます。このフレーズばっかり。
 メッセージは、プログラム・チェンジを知らせるステータス"Cn(n=0〜F)"に続く1バイトのデータ・バイトから構成されている。データ・バイトはプログラム番号で0〜127の128通りの音色を切り換えることが可能である。ただし、最近では音色の増加によって128種類では足りなくなってきており、独自にバンクを設けて2段階式で音色の選択を行えるようになっている。

プログラム・ナンバー
 プログラム・チェンジ・メッセージで送られる番号がプログラム番号である。ただし、上にも書いたがプログラム番号で選択される音色は、GMなどを除けば一元的に決まってはいない。また、ステージなどで使用する場合などには、プログラム番号を使いやすいように並べ替えて両手がふさがっている場合でも、足踏みスイッチ等で切り換えられるようにすることも出来る。
 さらに、メーカーや楽器によって音色の管理方法が違う。おとのローランドの音源は1、2、3、だがKORGのPOLY800IIは11、12、〜、21、22、となっている。00〜99とか他にも色々ある。従って、プログラム番号の1番を送っても11が選択されたり、音源のプログラム番号21をそのまま入力すると実はプログラム番号の9番であったりする。

バンク・セレクト・メッセージ
Bn 00<MSB> Bn 20<LSB>
 プログラム・チェンジのデータ・バイトは1バイトなので、0〜127の128通りしか音色を切り換える事が出来ない。しかし、最近の音源はバンク切り替えを持ち128どころか数百の音色を選択できるものまで登場している。ちなみに最新(このページを書いた当時)のXG音源である「MU2000」は1,454音色を、最強のGS音源とうたわれている「SC-8850」は1,640音色を持っている。どちらも、128ボイス/64パートの音源である。したがって、プログラム・チェンジだけでは全ての音色をダイレクトに呼び出すことは出来ない。
 そこで、MIDIでもバンクを切り換えられるようにバンク・セレクトが定義された。あらかじめバンク・セレクトによってバンクを切り換えておき、次にプログラム・チェンジを送ってバンク内の音色を切り換える。音色の選択幅を拡張しようというわけである。
 このメッセージは、コントロール・チェンジに定義されており、バンク・ナンバーはコントロール番号の"00H"でMSB、"20H"でLSBが送られる。LSBとMSBで合計14ビットが使えるから、最大で16384通りのバンクが選択できる。
 なお、バンク・セレクトはスレーブ側の曖昧な解釈を防ぐために、必ずMSBとLSBをセットにして送らなければならない。送信したバンク・セレクト情報は、次に送られてくるまで保存されるので、プログラム・チェンジのたびに送る必要はない。また、バンク・セレクトを送っただけでは音色は切り替わらない。あくまでも、音色の切り替えはプログラム・チェンジである。
メッセージの使いこなし
 おとの場合、各トラックの1小節目には、必ず左の様なデータを入力している。ここで、下から3つのデータがプログラム・チェンジに関する情報である。
 一番下が、プログラム・チェンジ・メッセージであるが、ステータス"Cn(n=0〜F)"は、普通のソフトウエアーでは、設定しなくても自動的に送信されるので気にしなくても良いだろう。それにに続く1バイトのデータ・バイトに、プログラム番号を入力する。図では0が入力されているので、GS(GM)音源では受け取った音色は"Piano1"に設定される。ただし、音源のバンクが0に設定されている時だけである。
 通常(初期設定)は、音源のバンクが0に設定されている。しかし、他の人が作ったMIDIデータを演奏したときは、バンクが切り替わっている可能性がある。そこで、1小節目のプログラム・チェンジの前には必ずバンク・セレクト・メッセージを入力するようにしている。図では、MSB、LSBともに0が送信される。GS音源で、プログラム番号25はSteel-str. Gt.であるが、その番号のコントロール番号0が8のバンクには、12str. Gt.の音色が準備されている。これを使用したいときは、PG.BANK 0に8を入力して、プログラム番号25を入力すればよい。
 バンクを使用するとき気を付けなければ行けない点は、バンクで準備されている音色は、その音源の個性や性能を生かしたものが多く、特徴のある曲作りが出来る反面、同じ音源でないと同じ表現が出来ない。違う音源だと、そのバンクに音色が準備されていなかったり、他の音色が割り当てられているかも知れない。つまり、自分で作ったMIDIデータを他の人に聞いてもらう場合は、バンクなるべく使用しないで、GMの規格で作ることをお勧めする。また、個性的な音色では、音源側で複数音(2ボイス以上)使用している場合がある。MIDIデータでは、一つの音を鳴らすメッセージしか出力していないのに、音源側では2つ以上の音が鳴っているのである。たとえば、GS音源の12str. Gt.は2ボイス使用している。MIDIデータは、音源の同時発音数を越えていないのに、音源側は同時発音数を越えてしまい、音が鳴らない状況が起こる場合があるので注意しよう。

ピッチ・ベンド
ピッチ・ベンド・メッセージ
En <MSB><LSB>
 ピッチ・ベンド・メッセージは、コントロール・チェンジに入れても良さそうなメッセージで、おとはコントロール・チェンジ・メッセージだと思っていた。しかし、実際にはこのように独立したステータスが与えられている。これは、ピッチ・ベンドの使用頻度が非常に高く、電子楽器には欠かせない機能であることと、分解能に問題があり、コントロール・チェンジには入れられなかったのだろう。
 コントロール・チェンジの場合、1メッセージには1バイトのデータしか送ることが出来ないため、最大でも128段階の分解能しかえられない。これでは滑らかなベンド効果は期待できない。もちろんコントロール・チェンジはLSBを送ることで14ビットまで分解能を高めることが出来るが、メッセージを2つ送らなければならないので効率が悪い。また、ピッチ・ベンドは、中央値を0として上下する(バイポーラ)タイプであることも、コントロール・チェンジに含まれなかった原因の一つであろうといわれている。
 メッセージは、ピッチ・ベンドを示すステータス"En(n=0〜F)"に続き、2バイトのデータ・バイトが送られる。データ・バイトはそれぞれ7ビット使えるので、最大14ビット(16384段階)の精度を得ることが出来る。
ベンド・レンジ 入力方法
 ピッチ・ベンドには、ベンド・レンジというパラメータが付随している。ベンド・レンジは、ピッチ・ベンダーを最大に動かしたときのピッチ・シフト量で、普通半音単位で設定する。ベンド・レンジが12であれば最大でオクターブ・アップ、最小でオクターブ・ダウンする。ピッチ・ベンド・メッセージはベンド・レンジの設定に関係なく出力される。つまり、ベンダーの最大と最小を機械的に16384で均等に割った数値が出力されるのである。
 このベンダー情報を受けたスレーブ側のピッチ・シフト量は、設定したベンド・レンジの設定によって決まってくる。ピッチ・ベンド・メッセージを受信しても、スレーブ側のベンド・レンジが0になっていると効果は得られないし、送信側とレンジが違っているとシフトが一致しない。おとの苦い経験では、ベンド・レンジを知らなかったため、ギターのチョーキング(1音チョーキング)をある音源(たぶんレンジ=2に設定してあった)でモニターしながら打ち込んで、完成した後で実際に使いたい音源で鳴らしてみるとオクターブ・チョーキング(こんな事は現実にはない)になってしまっていた。たぶんその音源は、レンジ=12に設定してあったのだろう。雑誌の付録などにあるMIDIデータには、その音楽に合うように音源のベンド・レンジを設定するデータが入力してあるものがあるが、決して元には戻してはくれない。ベンド・レンジを知らなかったおとは、泣く泣くそのトラックのピッチ・ベンド・メッセージを全て削除して最初から入れ直した。ベンド・レンジを直してあげるだけで良かったのに。
 また、ベンド・レンジを一致させてもメーカーが違うと音源の方式や仕様が異なり、ベンド量とピッチ・シフト量を示すシフト・カーブが異なるため、シフトが最小、中央、最大ではピッチが正しく合うが、途中ではピッチのズレを生じることがある。メーカーが違うと完全な一致は難しいので、実際に音を聞いて作業するしかないだろう。



HOMEはMIDIのMENUに戻ります

Copyright (C) 2000 Kawahagi-3-Cycle