とりあえずビジュアルプレイヤーとしてやりたかったことの多くが基本的には出来ている感じのmldspだけど、今後は多少方向性の違ったおもちゃにしてみようと思っている。
大まかには、ユーザコントロールによる入力をSMF上の演奏命令とマージしてMIDIデバイスに送信できる機能を追加したいと思っている。それによって、演奏中のMIDI楽曲をあれこれいじってパラメータ調整できるというわけだ。TMIDIでは画面上のコントロール値を左クリックや右クリックで加減できるのだけど、それと目的としては同じ事になる。(ただ、あのUIでやる必要は無いだろうと思っている。細かいからいじりにくいし。)
入力をどう受け付けるかについては、いくつか案がある:
- ソフトウェアMIDIキーボード。Windows Formsレベルでは既に実装があるので、これをMoonlightに移植できれば、入力をブリッジするだけでいける
- コマンドテキストをコンパイルして送信。今作っているMMLコンパイラを再利用できる。GUIはテキストボックスと送信ボタンのみ。
- 外部MIDI入力のブリッジ。これを実現するには、portmidiのバインディングの対応を広げなければならない。これができると、ハードウェアMIDIキーボードが使えるようになる。GUIは不要。
- 外部カスタムデバイスのブリッジ。たとえばgainerの入力を直接解釈して適宜MIDIメッセージを送信できるようにすれば、portmidiのバインディングが無くてもカスタムデバイスが利用できる。実はこれを一番やりたい。これもGUIは不要。
これは、mldspというよりMidiPlayerのフレームワークで対応した方がスマートだろうと思っている。
ちなみに、これらの他にさらにiXMFなどもサポートできたら楽しいのではないかと思っているのだけど、iXMFの実装から始めないといけないので、やや敷居が高い。仕様書も読み進められていないし。そんなわけで、すぐには出来なそうだ。
Leave a comment