« VC++のセキュリティとかいろんなところででつまづく | トップページ | 中野サンプラザ、ムッシュかまやつ »

2017年2月14日 (火曜日)

UWPのBLE-MIDIにおけるデータ消失

 Windows 10 Anniversary UpdateでMIDI over Bluetooth LE(BLE-MIDI)のサポートはだいぶ貧弱じゃないか? という話。考えがまとまってないけど、忘れないうちにメモ。

 Windows 10 Anniversary UpdateでBLE-MIDIがサポートされた。確かにQUICCO SOUND mi.1とかYAMAHA MD-BT01とかUD-BT01などとペアリングはできる。しかし、既存のDAWアプリケーション(Win32アプリ)ではそれらのポートが見えない。MIDIデバイスとして扱うことができない。そこでブリッジプログラムを作ったという話は前にした(Windowsアプリ作成、ストアで配布)。

 昨年WindowsストアにリリースしたMIDIberryというアプリはBLE-MIDIデバイスの入力を従来のMIDIポートにルーティングする。loopMIDIのような仮想MIDIポートドライバと併用すれば、DAWへの入力にも利用することができる。

 しかし、それが有効な環境はどうも限定的なようだ。システムエクスクルーシブのバルクダンプにはどうにも対応できないようだ。

 Has anyone gotten the Yamaha UD-BT01 working with the AX8 and Windows 10?

 上記フォーラムによれば。大量のシステムエクスクルーシブを送信するハードウェアのエディタ/ライブラリアンに使うには、「貧弱」だというのだ。

 自分でも試した。確かに、データを完全に送ることはできない。途中でエラーが出る。

 さらに少ないデータでも試す。とんでもないことがわかった。

 たとえば、4和音をMIDI鍵盤で弾く(ノートオン)。鍵盤から指を離すと音は途切れる(ノートオフ)。それが普通。

 しかし、UWPでのBLE-MIDIではそうはいかない。

 UWPというのは、Windows 10で新たに導入されたプログラムの実行環境というか、仕組み。専用のAPIみたいなやつが用意される。ユニバーサルWindowsプラットフォームの略で、UWPアプリはこれからのWindowsで中心になるアプリの形式だ。1つ作れば、デスクトップでもWindows Phoneでも、Xboxでも、HoloLensでも、Windows 10という名前がつくハードウェアなら動くとかなんとか(正確にはどう説明していいかわからないが、フレームワークという呼び方は間違いだと思う。詳しくはこのへんとか)。

 このUWPでプログラムを作って、BLE-MIDIでデータを送ると、4つのノートオン、4つのノートオフのうち、どれかが正常に送られない。ノートオフが正常に送れなかった場合は、音が鳴りっぱなしになる。がーん。

 どのMIDIメッセージが送れなくなるかはわからない。とりあえず、状態がわかるような動画を撮ってみた。


Missing MIDI data, UWP Bluetooth MIDI on Windows 10 / UWPにおけるBLE-MIDI 送信データの消失

 一番右が、UWPのBLE-MIDIで送ったデータを、レガシーなMIDIインターフェイスで受信した結果だ。

 一番左で4つのノートオン/ノートオフを送っている。真ん中でそのデータが確認できる。しかし、一番右では、いくつかのデータが欠けてしまっている。消失しているのだ。

 プログラムがおかしいんじゃね? とも思ったが、もっとシンプルなプログラムでも結果は同じ。プログラムからいきなりMIDIデータを送信してもダメだ。

 そして、同じソフトでBLE-MIDIじゃないMIDIインターフェイスを使っても、このような状態にはならない。意図したとおり、すべてのデータが送受信できる。それがrtpMIDIによるネットワーク経由であってもだ。BLE-MIDIだけがうまくいかない。

 これはWindows 10 Anniversary UpdateのBLE-MIDIサポートが不完全ってことなんじゃないかなあ。

 というのが結論。

 マイクロソフトが同社ブログで、UWPのBLE-MIDIサポートに言及したのが昨年の9月。その時点で、Windowsで最も有名なDAWであるSONARを開発・販売しているCakewalkもサポートを表明していた。

 MIDI Enhancements in Windows 10

 すでにラッパープログラムも発表されていたので、SONARのBLE-MIDIサポートはすぐだろうと思っていた。しかし、予想に反してサポートはいまだになされていない。

 これはマイクロソフトがもっとちゃんと対応するのを待ってるってことなんじゃないかなあ。こっちができることはもうないっぽいしなあ。

 それもあって、各楽器メーカーの対応も進展してないんじゃないかなあ。

 というのが、2017年2月時点のWindowsにおけるBLE-MIDI対応について、私が考えていることだ。

 例によって、勘違いだったり、テスト自体がおかしい可能性もあるので、断定は避けておきますが。とりあえず、まだまだうまくいかなくって、残念な思いをしています。WindowsでBLE-MIDIが動く! ってことを知ってから3カ月くらいがんばってきたんですが。

 とりあえず、ちょっとBLE-MIDIデバイスでWindowsのDAWに入力したいという場合は、MIDIberryが使えますよ。ということだけはお伝えしておきたいです。ただし、同時送信は3和音以下。鍵盤がバリバリ弾けるという人のリアルタイムレコーディングはたぶん無理ですが。まったく使えないという状態からはだいぶ進歩したと言えなくもないです。


|

« VC++のセキュリティとかいろんなところででつまづく | トップページ | 中野サンプラザ、ムッシュかまやつ »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/35726/64894287

この記事へのトラックバック一覧です: UWPのBLE-MIDIにおけるデータ消失:

« VC++のセキュリティとかいろんなところででつまづく | トップページ | 中野サンプラザ、ムッシュかまやつ »