週末にFM音源エミュレータやらCSoundやらchuckやらを眺めていてふと思ったのだけど、これらの音源を使った音色は、たとえいいものが出来ても、それ以上使われずに死んでいっているのではないか。それは、CSoundで作った音色はCSoundでしか使えず、chuckで作った音色はchuckが無いと使えず、MAX/MSPで作った音色はMAX/MSPが無いと使えないというところにあるのではないか。
ひとつのソリューションとしては、これらをVST Pluginとして外部的に操作するインターフェースを用意することで、シーケンサからシームレスに操作するという方法があり得る。しかしVSTには移植性が無く、linux-vstなどを使ってwineで実現できる範囲のものでしか操作できない。音源モジュール自体がクロスプラットフォームなのに、これでは意味が無い。
であれば、そもそも仮想的なソフトウェアMIDI音源モジュールを作成して、それぞれの音色に対して出力モジュールをマッピングし、実際の発音はそのソフトウェア上で行う、という仕組みはどうだろうか。マッピング自体は定義ファイルのような形でユーザがプリセットし、あるいはWebから演奏時にダウンロードする形にもできる。
このソフトウェア自体がするべきことは、
MIDIドライバとして各OSないしソフトウェアフレームワークが認識できるようなエントリポイントを作ること(たとえば、SilverlightであればAudioStreamSourceがpure managed codeで提供されない限り無理だ)
MIDIメッセージを受け取って、音色から、音源モジュール(他のMIDI音源に対するTHRUを含む)に渡すためのディスパッチャの仕組みを作ること
代表的な音源モジュールに対するメッセージ ディスパッチャを実装すること
その他ユーザ プリセットの読み込み、ダウンロード
これくらいでいけるのではないか。音源モジュール(pdやcsoundなど)は、バンドルできるものはバンドルしてもいいし、on-demandでダウンロードできるようにしてもよい。
Leave a comment