ごちゃペディア

はなまるデジタル創作紀行(DTM、TAS、いろいろな技術)

ピコカキコ - WAV13によるPCM再生の考え方

WAV13によるPCM再生とは何か、例えばこのピコカキコを聴いてみてください。

両サイドで鳴っているパッドの音、それにドラムの音、とても綺麗です。どちらもトリッキーな鳴らし方をしているようですが、この記事ではドラムで使われている技法を主に追求します。

ピコカキコ WAV13 PCM利用補助ツールを作成しました。後述の面倒な計算が一瞬で行えます。実用的な面だけ知りたい人は、まずツールのページを読んで、それから情報を本記事で補うと良いかもです。

続きを読む

MIDIトラック分割ツール「MidiSplit」を作りました

MidiSplit project page (Download) - Divide MIDI track by channel number & program number

MIDIファイルを読み込んで、楽器ごとにトラックを分割するツールを作りました。ツールの概要ですが、下記の画像をご覧ください。

MidiSplit は主にチャンネル数を制限したシーケンスの再配置に有効です。チャンネル数を節約しているシーケンスでは曲中でプログラムチェンジを送ることで、1チャンネル(1トラック)で複数のパートを演奏していることがあります。そのようなシーケンスをアレンジしようとする場合、パート(楽器)ごとに閲覧や調整ができたほうが便利ですが、プログラムチェンジが頻繁に配置されている場合は分割するのに手間がかかります。

MidiSplit はトラックに混在する各パートの演奏を手早く楽器ごとに分割します。

続きを読む

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さんに感謝!