世界初(自称)の DMaker 解説ページ - DMakerでオリジナルドライバを!

ka氏 による
バンクセレクトができるまで

僕がとりあえずいじっているのはNS5RとSC-88だけなので、これにしぼって話を進めてみます。Yamahaでは詳細がことなると思いますが、考え方はおなじはずなので、なにかの参考になれば、と思い、がんばってみてください。

  1. まず、NS5Rをつくるために「O5_w.d」を開きます。ついでに「SC_88.d」もひらいときます。
  2. Driver>General Settings>Identificationで、Manufacturer IDやDevice Model IDをマニュアルにしたがって設定します。これはバンクセレクトには関係ないかもしれませんが、一応やっておきます。
    Manufacturer ID

  3. Driver>General Settings>MIDI Specificationsで、Common Headerをこれまた、マニュアルにしたがって設定します。これもバンクセレクトには関係ないかもしれませんが、一応やっておきます。
    Manufacturer ID

    あとは「まぁたぶんおなじようなもんだろー」ということで、特にいじりませんでした。

次に…

  1. Driver>Module 1>Global Settingsで、Patch Selectionを見てみます。これが05Wだと「MIDI Bank Select」となっていて、SC88だと「Special」となっています。NS5Rの場合も05Wと同じく、Cubaseのインスペクタのバンクで直接10進数を指定してバンク切り替えができるので、「MIDI Bank Select」そのままでいきます。

  2. Driver>Module 1>Bank Handling>Displayで、スタジオモジュールを開いたときの、外観を決定します。これは列と行とにどのくらいのセルを表示するか等の設定です。Excelみたいなかんじです。

  3. 05Wでは100までしか表示されてないので、これを適当にエディットして128まで表示できるようひろげます。

ここからがやっとバンクセレクト本題…

  1. Driver>Module 1>Sub-bank difinitionsを見てみます。 「Number of sub-banks」でバンクの数を決定します。最大16です。 「Number of patches per sub-bank」で1バンクあたりのパッチ数を決定します。「128」とかにしときます。

  2. さて、05Wだと、次の2項目「Sub-bank selection message(s)」「Patch selection message(s)」が使用不可になっているので考えなくてもよいわけですが、同じ項目をSC88でみてみると、使用可能になっています。つまり先の「Special」モードにすると、ここが使用可能になるわけです。SC88の場合…

  1. ご存じのように、Rolandのバンクセレクト(バリエーション・トーンの選択)は、Bank Select MSB(Control Change #000)でバンク番号を指定し、Bank Select LSB(Control Change #032)は0にし、プログラムチェンジを送信します。 とすると、1つめのJokerは「バンクセレクト」のための変数、2つめのJokerは「プログラムチェンジ」のための変数ということがなんとなく、わかりました。

  2. さて、よくわからないのが$B0、$0、$C0なわけですが、とりあえず、「Sub-bank selection message(s)」とかをダブルクリックしてみると、

    とコメントに解説があります。なぜ$B0がコントロールチェンジなのかは、SC88のマニュアルをみると、この$Bn(nはSys Exを受けるMIDIチャンネル)や$Cnは、ステータスを示す番号だとわかります。まぁよくわからないときは、DMakerの書式ということで納得しておきます。 そういうわけで、つまり、ここんところを自分の機種用にSysExで音色選択するときと同様に変更してやればいいのではないか、と思います。変更の仕方はボタンとかでだいたいわかると思います。また、MIDIでやる音色の変更のしかたはその機種のマニュアルに書いてあると思いますから、そこをよく見て打ち込んでみます。

    ちなみに、これが面倒くさければ、Specialをやめて「MIDI Bank Select」にして、Bank Codeに「MSB x 128 + LSB」(10進数で計算)を同じことができると思います(試してませんが)。この方がシンプルかもしれません(編集人より:Yamaha CS1x のドライバを作成した時はこれで上手く行っています)。

    また、SC88などの一部の機種では機器本体側で「バンクコード切り替え信号を受信」のモードをオン・オフにできるので、これも念のためオンになっていることを確認しておきます。

  3. 話をNS5Rに戻します。Driver>Module 1>Sub-bank difinitions>Sub-bank #1を見ます。TypeやNameを適当に変更。ちなみにここで「Editable ROM Patches」とYesにするとCubase上でパッチ選択後、Ctrl+Alt+Eで音色名を変更できるようになりますが、変更した音色名が再びスタジオモジュール(*.d)に反映されるわけではないので、あまりやらないほうがいいかもしれません。

  4. 次に、Driver>Module 1>Sub-bank difinitions>Sub-bank #1>Patch selectionを見ます。ここんところに、「Bank Code」 というのがありますので、ここに、NS5Rのバンク切り替えのためのメッセージ番号をいれるわけですが、ここがちょっとポイントでした。

    <バンクコードの変換>

  5. たとえばNS5Rの場合、マニュアルのインプリチャートを見てみるとバンク「ProgA」の切り替えが「51:00」などと記されています。あぁ、そうかと、ここでBank Codeに「51」をいれてみても動きませんでした。というのもBank Codeには10進数しかはいらないみたいなのです。

  6. そこで、ToolsメニューからNumeric Converterを起動します。Hexadecimal(16進数)のところに「51」と入力してみます。Signed decimal(10進数)が「81」となります。で、「81」をBank Codeにいれてみましたが、やっぱり動きません(笑)。

  7. さらにちょっと考えてみて、Sub-bank #2とかものぞいてみました。すると「7168」というコードがはいっています。かなり怪しい数字です。これをNumeric ConverterのSigned decimalに入力すると、Hexは1C00というわけわからん数字ですが、下の「Roland Format〜」というところに、「38,00」と変換され表示されています。これがそれっぽい数字だと考えました。

  8. というわけで、ここで変換できるとわかったので、今度は逆に「51,00」をRoland Formatのところにいれてやると、Signed Decimalが「10368」になります。できました。この数字が正解。Bank Codeに「10368」をいれると、パッチ選択でバンクがダイレクトに切り替わりました。

    ※さらに「Has extra bank code」というところをYesにして「Extra Bank Code」を必要とする機種(SY55など)もありますが、私はもっていないので、詳細はわかりません。

    以上でだいたいです。あとはPatch Nameのところにエディタなどで入力したパッチ名をExcelで入力、地道にペーストしたりとかして、とりあえず、快適に動いてます。 まだNS5Rのダンプがうまくいきませんが、スタジオモジュールでやるより、付属のKORG製SoundEditorでやった方がラクチンなので、そういうのはなんでも一つでやらず臨機応変にいろいろ連携するとより快適でしょう。

-ka-


その他使用上のコツ