[トップページ] / [MIDIとDTMの広場]
SC-88用、MU80用など、対象とする音源によって、MIDIデータの作り方は変わります。特にエクスクルーシブメッセージは、メーカーや音源によってさまざまです。これらは、難解ではありますが、その音源のマニュアルの「MIDIインプリメンテーション」や「MIDIデータフォーマット」を読み、それに沿って使用することになります。
では、GM用のデータを作りたい場合はどうしたらよいのでしょう。音源のマニュアルには、「GM用データを作成するには、GMシステムオンを入れる」とは書いてあるものの、それを入れさえすればGM用データになるわけではありません。実際には多くの制限があるのですが、それを知らないと、機種に依存するデータを作成してしまいます。そこで、GM用データの作り方をここでまとめてみたいと思います。なお、ここで用いるGMという言葉は、GMシステムレベル1を指していますので、予めご了承ください。ゲームミュージックとは関係ありません(笑)。
まず、データの先頭にGMシステムオンを入力します。具体的には、F0 7E 7F 09 01 F7というエクスクルーシブデータを書きます。エクスクルーシブは、MIDI規格で定義されていない、メーカー(あるいは機種)固有の命令を使う時に用いるものですが、GMシステムオンは、GM音源のための共通の命令です。
メーカーIDを指す2番目のデータが7Eになっています。これは、ユニバーサルノンリアルタイムメッセージを表しています。メーカーを問わないということが、ここからも分かると思います。
GMシステムオンを受け取ると、SC-88Proでは、音色名の前にアンダーバーが出ます。例えばフルートは、074_Fluteになります。XG音源では、XGモードになります。
GS音源もXG音源も、GMでリセットすると、バンクとNRPNを受け付けなくなります。なお、SC-88Proでは本体の操作でもバンクの変更が不可能となりますが、MU90では変更できました。
GMでは、16チャンネル使用できることが必須となっていて、チャンネル10をリズムに使います。シーケンスソフトでの編集時は、リズムをどのトラックに入力しても、また複数のトラックに入力しても構いませんが、そのトラックの送信チャンネルを10にする必要があります。チャンネル10以外をリズムに用いることはできません。
ピッチベンドセンシティビティとファインチューンを設定する時に、RPNを使うことができます。一度設定したら、RPNヌルで、RPNが指定されていない状態にするのが望ましいでしょう。なお、GM用データでNRPNを使うことはできません。
NOTE K# ST GT VEL * Picth Bend Range RPN(M) 4 101 0 RPN(L) 4 100 0 DATA(M) 4 6 12 ← ピッチベンドセンシティビティを12に
NOTE K# ST GT VEL * Master Fine Tune RPN(M) 4 101 0 RPN(L) 4 100 1 DATA(M) 4 6 66 ← 両方が66の場合、+3.93セントになり、 DATA(L) 4 38 66 ← NOTE#69=441.0Hzになります
NOTE K# ST GT VEL * RPN Null RPN(M) 4 101 127 RPN(L) 4 100 127
リバーブとコーラスは、受信が義務づけられていませんし、音源によってかかり具合が異なるため、あまり推奨されるものではありません。使用するのなら、ほどほどの数値にしておくのが無難です。ちなみに、GS音源やXG音源では、設定しなくともリバーブセンドレベルが40になっています。
使用するとしても、リバーブとコーラスのセンドレベル(CC#91とCC#93)のみで、リバーブタイプやリバーブタイムなどを変えることはできません。これらはエクスクルーシブメッセージで設定するものだからです。
SC-88のディレイ、SC-88ProのEFX、XG音源のバリエーションエフェクトやインサーションエフェクトは使用できません。要するに、ユニバーサルでないエクスクルーシブメッセージは、すべて使用禁止です。CC#94をディレイのセンドレベルとして用いることがありますが、必ずしもそうとは限らないので、使用しないようにしましょう。
パンポットは、0〜127の範囲で値を決めます(0が左、64が中央、127が右)。ランダムパンが用意されている音源がありますが、エクスクルーシブメッセージで設定するため、使用することはできません。
リズムを扱うチャンネル10では、通常はパンポットの設定をしません。また、個々の楽器のパンポットはNRPNで指定するものなので変更できず、そのままの状態で使うことになります。
GS音源やXG音源では、ドラムセット全体としてのパンポットは、個々の楽器のパンポットの設定を相対的に変化させるようになっているので、どうしてもリズム楽器の位置を変えたい時には、使用するのも手です。しかし、すべてのGM音源で確実に有効になるとは限りませんし、そもそも各楽器のパンポットの値が統一されているわけでもないので、意図した位置にならない音源もあるでしょう。
ボリュームとエクスプレッションは、どちらも音量の制御を行うもので、GM用データでも使用できるメッセージです。
ボリュームは、セットアップ小節のみで用いて、そのチャンネル(結果的には音源の各パート)の音量を決めるものです。それに対してエクスプレッションは、一つ一つの音に対しての細かい音量変化に用います。このように使い分けることによって、音量のバランスを調整する時に、セットアップ小節にあるボリュームの値を変更するだけで済みます。
GMシステムオンによって、エクスプレッションは最大の127になり、ボリュームは100になります。このままの値で使用する時も、念のためセットアップ小節で設定をしておいた方がよいでしょう。
マスターボリュームは、各音源用のエクスクルーシブメッセージで制御するのが普通ですが、ユニバーサルメッセージでのマスターボリュームも用意されています。F0 7F 7F 04 01 LL MM F7です。2番目の値の7Fは、ユニバーサルリアルタイムメッセージであることを意味しています。
LLにはボリュームの値の下位バイトを、MMには上位バイトを指定します。ただし、GS音源やXG音源は、下位バイトは使われず、上位バイトの値がそのまま0〜127のマスターボリュームとして使われます。
初期のGS音源では、このメッセージによってマスターボリュームを制御することができないので注意が必要です。もし確実に全体の音量を制御したいのなら、発音中の音に対してすべてエクスプレッションを使うのが望ましいでしょう。しかし、既にエクスプレッションが使用されたデータの上から、さらにエクスプレッションで音量を徐々に上げたり下げたりするのは容易ではありません。代わりにボリュームを使いたいところですが、ボリュームをセットアップ小節以外に含めると、音量のバランス調整をする時に面倒になるという問題が起こります。どうするのが最善かは、なかなか悩むところです。
これまでに挙げたもの以外で使用できるものは、モジュレーション、ホールド1、ピッチベンド、ノートオン/オフ、テンポくらいのものです(他にもありますが)。
同時発音数は、トータルで24以内か、メロディ16+リズム8以内ということになっています。あまり一度に多くの音を出さないように気を付ける必要があります。
大量のデータを一気に送らないような配慮も必要でしょう。GM用データに限ったことではありませんが、データが密集していると、演奏に大きく影響します。GM音源というのは機種が特定できないだけに、特に重要な点です。
「こんなに制限があったら、満足する曲などできない」と思うかもしれません。もちろん、音源特有の機能を使わなければ表現できない曲もありますが、クオリティの高い音楽にできるかどうかは、その人次第だと私は思います。
「ひょっとして、今まで音源の力に頼っていたのではないか」と感じている人は、これを機会に、一度GM用データを作ってみることをおすすめします。それから、改めて音源の性能をフルに活用したデータを作ってみれば、驚くほど上達している自分に気付くかもしれません。
[トップページ] / [MIDIとDTMの広場]