Virtual MIDIと現在の方針について

LCW-1はこないだ、アップデートを行なったので、
現在は、PWM-2 miniの変更を行なっております。

でもって、PWM-2 miniのVirtual MIDIについても一段落したので、
何か書き残しておこうと思います。

LCW-1は、元々、MIDI受信専用なので、
Virtual MIDI Inを追加して、すぐリリースすることにしました。
実際のところ、LCW-1を起動すると、
それ以降はずっと、他のアプリからMIDI Inが見えてしまうので、
LCW-1が鳴っている時だけ使えるようにケアすることにしました。

あと、あらかじめLCW-1を起動してからホストアプリを起動して、
ホストアプリでLCW-1をホストすると、その直後はMIDIを受信しないようで、
ホスト後は一度、LCW-1をアクティブにする必要があるということを知って、
この辺り、どうにかならないのかなーって思いながらリリースしました。

PWM-2 miniは、受信するだけならLCW-1の変更をマージするだけなのですが、
せっかくなので、MIDIデータを送信できるようにしようと思ったら、
全然うまくいかなくて、いろいろ試行錯誤してました。

結果的に、
Virtual MIDI Outはアプリ内でルーティングするためにあるってことが分かって、
普段、テスト用に使っているホストアプリでも、そんな感じでした。
ただ、シーケンサー専用のアプリではVirtual MIDI Outが実装されていたので、
自分のアプリで実装できないのは、ちょっと悔しかったです。

で、どうしたかというと、
MIDI Inしか持たないアプリもリストに加えて選択できるようにして、
そこに、PWM-2 miniからMIDIデータを送信するようにしました。

実装の注意点としては、
PWM-2 mini自身がリストに追加されないようにする必要があるのと、
MIDI InとMIDI Outの両方を持っているアプリに関しては、
重複してリストに追加しないようにする必要があるのと、
同様に、接続解除時にどちらかしか接続していない可能性を考慮する必要があって、
この辺をケアするのに少し時間が掛かってしまいました。

最終的に、
PWM-2 miniからMIDIデータを送信して、LCW-1を鳴らすことができたので、
とりあえず満足したわけですが、
結果的にシーケンサーとLCW-1が一つになったら良いのにって欲が出てきたので、
もし同じことをお考えの方がいましたら、しばしお待ち頂ければと思います(*1)。

おしまい。

(*1) LCW-1をバージョンアップするという意味ではないです、ゴメンなさい。

Leave a Comment