2006-09-13 水曜日
MidRadio PlayerのMIDI音源をVSTiとして使う
MidRadio 6はともかく、MidRadio 7の音源でデータを作るときは確認が必須。けれどもいちいちMIDIファイルを出力してプレーヤーに演奏させるのは手間がかかりすぎる!「シーケンサでこの音源が使えればいいのに」というあなたの声にお答えします。
手順と解説
実は、MidRadioのAddinsフォルダにあるSGP2.DLL(バージョン7未満ではSGP.DLL)そのものがVSTiの一種なのです。つまりこのファイルをテーブルファイルの組とともに、VSTホストアプリケーションのVstplugins(に相当する)フォルダに放り込めば音源として使えると考えられます。しかし、実際に試してみると、SOLではうまくいくのにSynthEditではうまくいかないといった現象が確認できます。hoshuさんの解析によれば、プラグイン側でホストのベンダを見ているのだとか。YAMAHA以外の文字列なら拒絶するようになっているので、CineStarを返すSynthEditでは使えないということですね。
そういうわけで、SGP2.DLLをVSTiとして用いるには、この判定部分をつぶさなければいけません。非常に簡潔な書き換えなので、SGP2.DLL 1.0.2.22用のパッチファイル(FireFlower互換形式)を以下に示します。ヘキサエディタで編集するのが面倒な方のために、SGP2.DLL 1.0.2.22 Patcher EXEも置いておきます。比較を行っている関数の戻り値を、分岐の書き換えで強制的に定めています。
FILENAME SGP2.DLL 00002AAE: 74 EB
DLLファイルの改変が無事に済んだなら、あとはDLLとテーブルファイルの組をVSTプラグインのフォルダに入れるだけで、どのアプリケーションでもVSTiとして動作させることができます。クールな解析結果をご報告くださったhoshuさんに感謝!