世界初(自称)の DMaker 解説ページ - DMakerでオリジナルドライバを!
ka氏 による
バンクセレクトができるまで
僕がとりあえずいじっているのはNS5RとSC-88だけなので、これにしぼって話を進めてみます。Yamahaでは詳細がことなると思いますが、考え方はおなじはずなので、なにかの参考になれば、と思い、がんばってみてください。
あとは「まぁたぶんおなじようなもんだろー」ということで、特にいじりませんでした。
と設定されています。
とコメントに解説があります。なぜ$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などの一部の機種では機器本体側で「バンクコード切り替え信号を受信」のモードをオン・オフにできるので、これも念のためオンになっていることを確認しておきます。
<バンクコードの変換>
※さらに「Has extra bank code」というところをYesにして「Extra Bank Code」を必要とする機種(SY55など)もありますが、私はもっていないので、詳細はわかりません。
以上でだいたいです。あとはPatch Nameのところにエディタなどで入力したパッチ名をExcelで入力、地道にペーストしたりとかして、とりあえず、快適に動いてます。 まだNS5Rのダンプがうまくいきませんが、スタジオモジュールでやるより、付属のKORG製SoundEditorでやった方がラクチンなので、そういうのはなんでも一つでやらず臨機応変にいろいろ連携するとより快適でしょう。
その他使用上のコツ
-=質問=-
Yamaha CS1x にて2つのモジュールを持ち、もっとたくさんのバンクを切り替えできるような
ドライバが作りたいのですが、
Driver > Module > Bank handling > Sub-bank definitions > Sub-bank > Rom
patch names
にて1つめのモジュール(sub-bank 12個有り)へのパッチ名の読み込みは全ての
サブバンクへ対して上手く行くのですが、なぜか2つめのモジュール(sub-bank 2
個)
へのパッチ名の入力、読み込みがどのバンクへも上手く行きません。
例えば、ダイアログで .nam ファイルを読み込んでも、何も読み込まれず、 Check ボタンや OK ボタンを押すと "Wrong number of names (128 Expected)" というエラーが出ます。しかし、上手く読み込める方のモヂュールへは 読み込めている同じ .nam ファイルを読み込んでも出るので、そのファイル自体が 悪いとはとても思えません。また、Number of patches per sub-bunk はどちらの モヂュールも 128 にセットしてあり、上手く読める方は問題なく読めている為、 128 Expected と出るのも良く分かりません。
そこで、ファイルからパッチリストを読み込むのが問題ならと、上手く読み込 めている方のダイアログからリストを丸ごとコピーし、上手く読み込めない方へと ペーストしてみました。そこでまたCheck ボタンや OK ボタンを押すと "The chiled info is not properly formatted at line 127" というエラーが出てにっちもさっちも行きません。
それでもって強引にこのパッチ名ダイアログを閉じて、 また開くと (0,0,0,1) (0,0,0,2) (0,0,0,3) (0,0,0,4) という文字列に埋め尽くされているという状態です。
今回の問題については、格闘しまくっても全然問題解決今のところ 不能です。いっぽ進んで十歩位下がってます。トホホ
-=回答=-
問題はDriver>Instrument definition>Parent Instrument>Number of Parts、にありました。ここの数字は4になっていますが、これを0にします。するとモジュール1と同様にパッチ名を入力することができます。
さて、ここのパラメタですが、わかっている範囲でお話ししますと、モジュール2は、モジュール1と違って、いわゆる「マルチ(ヤマハ)」とか「コンビ(コルグ)」とかいわれるパートになっていますよね。これはすでにある音色をいくつか組み合わせて1つの音色にするというものですよね。
ですので、本来的にはここには、パッチ名のほか、いろいろな情報を書き込まないといけないみたいです。ROM Patch namesのパッチ名入力ダイアログにあるヘルプに詳細がかかれています。まぁ読んでも私もよくわからないのですが、とりあえず、どういう風に記述するかは、SY_77.dのDriver>Module 2>Bank Handling>Sub-bank Definitions>Sub-bank #3>Rom patch Namesをご覧ください。パッチ名の横に{}で数字が羅列してありますよね? こういうことが正しいらしいです。
で、その{}の数はさっきのNumber of Partsで定義しているわけです。SY_77だと16に定義してありますよね? CS1xだと4になってました。この数がきっちり記述されていないとエラーがでるというわけです。
しかしこれがいらない、あるいはなくても動作してほしい、のであれば、ここは0にしてやる、とこういうことになります。