始めようDTM 第20回 システムエクスクルーシブ 九曜 弘次郎  前回はセットアップ小節の音色、音量、エフェクトセンドレベルといった基本 的な部分を説明しました。今回はデータの先頭に入力されている音源リセットを 例に、システムエクスクルーシブの考え方についてお話ししたいと思います。  まずはこれをみてください。(以下は16進数です。)  GS リセット:F0 41 10 42 12 40 00 7F 00 41 F7  XG System ON:F0 43 10 4C 00 00 7E 00 F7  前者のものはローランドのGS音源を、後者はヤマハのXG音源を初期化するため のシステムエクスクルーシブメッセージの例で、それぞれのセットアップ小節の 1番最初に入力されているものです。前回で紹介したファイルでは、17トラッ ク目の先頭に入力されています。もう既に入力されていますのでいじる必要もな いのですが、システムエクスクルーシブについては理解しておくと、後々音源の 機能を最大限に活用することができます。 システムエクスクルーシブとは?  システム エクスクルーシブ メッセージ(「Sys-Ex」また「SysEx」 などと 略記されます) は、 MIDIを介して音色データやサンプルデータをやり取りした り、より高度なMIDI機器の設定を行うために使用されます。システムエクスクル ーシブは、MIDI規格の中でも最も制限されていない自由な部分で、またメーカー が独自に定めて良い部分でもありますので、機器間での互換性がない部分でもあ ります。  システムエクスクルーシブはコントロールチェンジなどとは異なり、MIDIチャ ンネルに関係なく受信されます。これはシステムエクスクルーシブの名が示すと おり、システム全体に関わるメッセージだからです。 どのように表すのか  システムエクスクルーシブメッセージは、通常16進数で表現します。  ところで、16進数はお分かりでしょうか。プログラミングの経験がおありの 方ならおそらくご存じのことと思いますが、我々が日常使っている数はほとんど が10進数です。つまり「0 1 2 3 4 5 6 7 8 9」までで、 10で桁が一つ増えま す。  一方コンピュータが扱えるのは2進数です。よく「コンピュータは0と1しか理 解できない」というのを聞いたことがあるのではないでしょうか。すなわち0と1 のみで記述され、0→1→10→11→100→101→110→111→1000……と増加します。 そして2進数の桁数のことを「ビット」と呼びます。そして8ビットを一塊とし て「1バイト」と呼びます。  何だかコンピュータの専門書のような話しになってきてしまいましたが、実は MIDIデータはこの8ビットの情報なのです。  そしてこれを表記するのに16進数が用いられます。もちろん2進数でも表現 できますが、桁数が多くなるという欠点があります。 そのため2進数を最下位ビ ットから4ビットごとに区切って、「16進数」で表わします。  さて、16進数は0〜9は10進数と同じですが、それ以降に数字はありません ね!!ですからアルファベットのa〜fを借りてきて、16個になっています。  16進数は二桁で8ビットの表現が可能ですので、エクスクルーシブでは16 進数二桁で表現しています。  16進数は最後に「H」 を付けて表記するのが一般的です。 Hは16を意味する Hexaoctalの頭文字です。 エクスクルーシブの書式  さきほどシステムエクスクルーシブは、MIDI規格のなかでももっとも制限され ていない自由な部分だと述べました。しかしだからといって、各メーカーがむや みやたらに決めて良いというものでもなく、いくつか守らなければならない規則 があります。  (1) システムエクスクルーシブのステータスバイトはF0Hである。  (2) F7Hで、システムエクスクルーシブの終わりを示す。 このF7Hのこ とを「エンド・オブ・エクスクルーシブ(EOX)」と言います。  F0HとF7Hの間には、特定の機器のみが対応したパラメータの情報が、何バイト も続きます。  さらに、エクスクルーシブの始まりを示すF0Hのあとには、 メーカーIDが続き ます。このメーカーIDは、MIDI機器を作っているメーカーに対してそれぞれ番号 が割り当てられており、日本では音楽電子事業協会というところが、このメーカ ーIDの発行や管理等を行っています。ですからメーカーがかってに他のメーカー IDを使用したり、使われていない番号だからといってかってに割り当てたりして はいけないことになっているのです。  ここで主なIDとメーカーの関係の記しておきたいと思います。 ------------------------------------------------------------------------  40H:KAWAI  41H:ROLAND  42H:KORG  43H:YAMAHA  44H:CASIO  47H:AKAI ------------------------------------------------------------------------  もっと詳しくお知りになりたい方は、日本音楽電子事業協会のホームページ http://www.amei.or.jp/ に掲載があります。  MIDI機器はこのメーカーIDにより、自分のメーカーの番号かどうか判断し、合 っていれば続くデータを受信しますが、違っている場合は以降のデータは無視し ます。ですから、ヤマハの音源にローランドの音源用のシステムエクスクルーシ ブメッセージを送信しても、原則的には無視するようになっています。(もっと もヤマハのDTM音源では、 ローランドのGS音源用のシステムエクスクルーシブを 受け付けたりしますが、これについてはメーカーのサポート外となっているはず です。)  しかし例外もあります。それはメーカーに関係なく、全てのメーカーが使用で きるIDです。これらは「ユニバーサルシステムエクスクルーシブメッセージ」と 呼ばれていて、以下のようなものがあります。 ------------------------------------------------------------------------  7DH:非営利  7EH:ノンリアルタイム  7FH:リアルタイム ------------------------------------------------------------------------  7DHの非営利は、学校や研究機関、 あるいは個人が研究目的でサブIDで設定で きるものです。非営利とあるように、市販される機器で利用できません。  7EHのノンリアルタイム、及び7FHのリアルタイムは、サブIDによりさまざまな 機能が定義されています。二つの違いは、ノンリアルタイムは演奏中に送信し、 処理されるタイプのものではありません。具体的な例としては、GM SYSTEM ONが これに当たります。逆にリアルタイムは、演奏中に送信し処理される可能性のあ るものです。例としては、音源全体の音量をコントロールする、マスターボリュ ームがあります。 レコンポーザでのエクスクルーシブ入力  やや難しい話しが続いてしまいました。これはエクスクルーシブの仕組みの概 略を述べたものであり、それほど深く考える必要はありません。「ま、こんなも のだ」ぐらいに軽く考えてください。  さて、セットアップ小節の最初に入力されているはずの音源をリセットするた めのシステムエクスクルーシブを、前回紹介したデータで見てみることにしまし ょう。  まずはセットアップ小節をレコンポーザに読み込ませます。サンプルでは17 トラックの先頭にリセットコマンドが入力されていますので、17トラックを開 いてみてください。  まずはヤマハのXG音源用のものから説明します。17トラックの先頭は以下の ようになっているはずです。 ------------------------------------------------------------------------ MEAS STEP:NOTE K# ST GT VEL 1 1:====XG SYSTEM ON==== 1 1:Tr.Excl 400 0 0 (以下省略) ------------------------------------------------------------------------  上記の 1 1:Tr.Excl 400 0 0 という部分がXG SYSTEM ONの部分です。  「なんだ、難しいF0 43とかいうのがないじゃないか」 と思われるかもしれま せんが、実はこの状態では見えないだけで、データにはちゃんと入力されている のです。  ではこのデータをみるにはどのようにすればいいかと言いますと、 「Tr.Excl」などと書かれている行で[Shift]+[\]を押してみてください。すると 画面にはXG SYSTEM ONのシステムエクスクルーシブのコマンドが表示されます。 しかし残念ながら、この画面の音声ののりがよくありません。  そこでVDM100の機能で、[GRPH]+[K]、もしくは[GRPH]+[テンキー0]を押 してみてください。すると最初に何やら余計なことをしゃべりますが、暫く聞い ていると 43 10 4C 00 00 7E 00 F7 .. .. .. .. .. .. .. .. などと、XG SYSTEM ONのコマンドが聞こえるはずです。  ところで、エクスクルーシブのステータスを表す最初のF0が聞こえませんでた ね。実はレコンポーザでは、エクスクルーシブのステータスを表すF0、及び終わ りを示すF7は入力しなくて良いことになっています。というより、これらが最初 からくっついたかたちになっています。  レコンポーザでの上記の機能を 「トラックエクスクルーシブ」 と呼んでいま す。トラックエクスクルーシブ機能の使い方は以下のようになります。  (1) エクスクルーシブを入力したい行にカーソルを合わせる。  (2) [Shift]キー+[\]キーを押して、 トラックエクスクルーシブ入力ウイ ンドウを開く。  (3) エクスクルーシブを16進数で入力する。ただし最初のF0、及び最後 のF7は入力する必要はない。  (4) 入力し終わったら[リターン]キーを押す。  つぎに、ローランドのGS音源用のものを見てみましょう。同じく17トラック 目の先頭を開いてみます。 ------------------------------------------------------------------------ MEAS STEP:NOTE K# ST GT VEL 1 1:#GS RESET 1 1:RolDev# 16 66 1 1:RolBase 64 0 1 1:RolPara 240 127 0 (以下省略) ------------------------------------------------------------------------  これは少し変わっています。GSリセットの部分は 1 1:RolDev# 16 66 1 1:RolBase 64 0 1 1:RolPara 240 127 0 です。一方実際のGSリセットを16進数で表すと F0 41 10 42 12 40 00 7F 00 41 F7 となっています。この二つにはいったいどのような関係があるのでしょう。  まず「セットアップ小節にある、 Rolなんとかというのはどのようにして入力 しているのかと言いますと、 エディット画面で[/]キーを押すと出てくる、スペ シャルコントローラから入力しています。  スペシャルコントローラの一覧を見ると以下のようなものがあります。 ------------------------------------------------------------------------ RolBase : Roland BASE ADD. [0] RolDev# : Roland Dev# & Model ID[2] RolPara : Roland ADD & PARAMETER[1] ------------------------------------------------------------------------  上記のものをよく見ますと、Rolandという記述がありますね。これはその名が 示すとおり、ローランドのエクスクルーシブを入力するための機能なのです。  さてこれらのスペシャルコントローラと実際のエクスクルーシブの対応です が、少し難しくなってしまいます。実は私自身もそれほど理解しているわけでは ないので、ここでは説明することができません。これについてはローランドの音 源のマニュアルを熟読する必要があるでしょう。  ちなみに上記に対してのみ説明しておきます。 1 1:RolDev# 16 66 3バイト目と4バイト目、つまり16H、42Hの部分です。 1 1:RolBase 64 0 6バイト目と7バイト目、40H、00Hの部分です。 1 1:RolPara 240 127 0 8バイト目と9バイト目、7FH、00Hの部分です。  なおスペシャルコントローラからエクスクルーシブを入力する場合は、16進 数を10進数に変換する必要があります。  変換の方法は、計算で求める方法、電卓で計算などありますが、MIDI音源のマ ニュアルの巻末には、10進数と16進数の変換表が付いていますので、MIDIデ ータ制作者の多くはこれを使っているものと思います。MIDIでは10進数にして 0〜127、16進数で00H〜7FHぐらいまでしか実際のデータ入力では使用しません ので、変換表で充分でしょう。(もっとも我々には読めませんが。)  あとは、Windowsに付属の電卓でも計算できるようです。 (私は試したことが ありません。) 音源リセット入力時の注意点  音源リセットを入力する場合、いくつか注意があります。  まず、リセットコマンドは1回しか使用できません。また曲中で使用しますと 音源に負担がかかり、最悪の場合音源が壊れる可能性がありますので、十分注意 してください。  また、音源リセットは他のコマンドと異なり、音源が受信して受け付けられる までに時間がかかります。通常0.1秒ぐらいの時間が必要だと言われています。 そのために、音源リセットコマンドの直後にコントロールチェンジなどのコマン ドを送信しても無効になってしまいます。音源リセット以外のトラックの先頭が 480ステップ(1小節)以上空白になっていたのはこのためです。  今回は難しい話になってしまいました。音源リセット自体はサンプルのセット アップ小節を利用していただければ特に入力の必用はありませんので、今回の お話はそれほど深く理解していただく必要はありません。ただ、自分でセットア ップ小説を作ってみようとか、今後音源をフル活用しようとお考えの方のために、 エクスクルーシブについて取り上げてみました。今回説明不足だった点は、また 機会を改めて補足していきたいと考えています。 ======================================================================== E-MAIL:kojiro.kuyo@nifty.com http://member.nifty.ne.jp/KUYO/ ========================================================================