Windows 10のBluetooth MIDIについてマイクロソフトの人に聞いてみた

Windows 10のMIDI over Bluetooth LE(BLuetooth MIDI または BLE-MIDI)がいまだにまともに動いてないので、マイクロソフトでそのへんを担当している人に直接聞いてみました。 英語のやりとりはほぼGoogle翻訳頼み。うまく伝えられる気がしない。ちゃんと通じてるか不安。英語が得意な方、Windowsプログラミングに通じてる方、助けてください。
0

Windows 10のBLE MIDIがちゃんと動いているという発言を疑問に思い、まずはバグらしき状態を報告。

バルクダンプが正常に受信できない。なんかデータが欠落、化けてる。BLEのタイムスタンプの処理に問題があるのでは?

linclip (NEWBODYFRESHER / BEATNVISION) @linclip

UWP MIDI API Bluetooth MIDI can not handle bulk dump properly. Missing SYSEX data. When will this problem be resolved? I think Windows 10 is not able to handle timestamps including 0x77 well. twitter.com/Pete_Brown/sta…

2019-07-01 14:09:44
Pete Brown @ Microsoft::Windows @Pete_Brown

@adamhill @rolisupport We're compatible with the standard, and it works fine, but it's in the Windows MIDI 10 API, which is supported by JUCE and Cakewalk, but not other DAWs. Working on some things to help get other DAWs on board.

2019-06-16 04:41:54
Pete Brown @ Microsoft::Windows @Pete_Brown

@linclip What version of Windows 10 are you on? Pretty sure we fixed the BLE Sysex data issue a number of releases back.

2019-07-01 15:10:07
linclip (NEWBODYFRESHER / BEATNVISION) @linclip

@Pete_Brown Thank you for the reply. I am using Windows 10 Pro Version 1903, Build 18362.207.

2019-07-01 16:08:03
Pete Brown @ Microsoft::Windows @Pete_Brown

@linclip Thanks. What app are you using for the sysex transfer? Is it through MIDIberry? Also what is the ble MIDI device you are sending to? I have a super simple (one way) sysex transfer app that will work over BLE, in case you want another thing to test with. microsoft.com/en-us/p/midi-s…

2019-07-01 17:03:01

なぜか彼が作ったアプリを試してほしいと言われる。
しかし、それはSysExファイルを送信するアプリであった。当方が問題にしているのは、リアルタイム受信なのだが……。今思えばちゃんと伝えられてなかったか。

linclip (NEWBODYFRESHER / BEATNVISION) @linclip

@Pete_Brown Thanks. I use MIDI-OX via MIDIberry and loopMIDI, Quicco Sound mi.1 as BLE-MIDI device. Although OUTPUT (PC to MIDI device) works mostly, INPUT (MIDI device to PC) doesn't work at all. Data is missing. And I tried the software you presented, but I get a Transfer error.

2019-07-01 21:06:54

当方の環境を説明。使用デバイスはQuicco Sound mi.1、ソフトはMIDIberryをloopMIDI経由で。

Pete Brown @ Microsoft::Windows @Pete_Brown

@linclip Thanks. I'll look into this. Weird that you'd get a transfer error with my app when it works otherwise. What is the device you have connected to the mi.1? Have you tried with any other BLE adapters?

2019-07-02 03:55:35
linclip (NEWBODYFRESHER / BEATNVISION) @linclip

@Pete_Brown I connected Roland MS-1 to mi.1. Your app said Transfer Error. I do not have any other adapters. However, strangely, via loopMIDI and MIDIbverry, the transfer succeeds. Specify loopMIDI port as INPUT and mi.1 as output with MIDIberry. Specify loopMIDI port as output of your app. pic.twitter.com/LYl2MdK7zr

2019-07-02 19:30:17
拡大

とりあえず、彼の作ったアプリを試したが、エラーで送信できない。直接BLE MIDIデバイスを指定するとだめ。一方、loopMIDIを出力先に指定、MIDIberryでBLE MIDIデバイスに送信するとうまくいったと報告。なぜそれだといいのかは不明。

linclip (NEWBODYFRESHER / BEATNVISION) @linclip

@Pete_Brown The setting when the transfer is successful is this screen. By the way, as you know, the UWP MIDI API does not correctly report loopMIDI port names. pic.twitter.com/l9ZatMtfTO

2019-07-02 19:41:02
拡大
Pete Brown @ Microsoft::Windows @Pete_Brown

@linclip Thanks. Could be buffer sizes/delays that account for the difference. I assume you're using MIDI OX when you use loopMIDI/MIDIberry. Older devices often need more time between bursts of data.

2019-07-03 04:30:08
Pete Brown @ Microsoft::Windows @Pete_Brown

@linclip Although it's super weird it would error out at 0%. hmm.

2019-07-03 04:30:23
linclip (NEWBODYFRESHER / BEATNVISION) @linclip

@Pete_Brown Thanks. I used your app when I succeeded in the transfer shown above. I specified loopMIDI port as the output destination. It output to mi.1 via MIDIberry from the loop MIDI port. What I used for bulk dumping is your app, not MIDI-OX. twitter.com/linclip/status…

2019-07-03 08:03:49

誤解しているようなので、再度説明。

Pete Brown @ Microsoft::Windows @Pete_Brown

@linclip I was able to reproduce this with the mi.1 and my app this evening. I'm looking into it further.

2019-07-05 16:32:37

あちらでもmi.1を入手しテストしたところ、こちらが言っている問題が確認できたとのこと。ひとまず安心か。

すると、しばらくしてから、問題が見つかったとの報告が。

Pete Brown @ Microsoft::Windows @Pete_Brown

@linclip Found two problems. The first (which my app hits) is that if you break the sysex message into multiple chunks, the BLE MIDI api rejects it because no F0/F7 pair. I've submitted that as a bug. 1/2

2019-07-14 03:37:33

問題ひとつめ。また、送信する際の話をしている。送信時はF0/F7がないとだめだという。それはそうだろう、と思うが。

Pete Brown @ Microsoft::Windows @Pete_Brown

@linclip Second is harder to figure out. May be device buffer flooding. I can see entire sysex get transferred if I loop the BLE interface over to a monitor. But devices like my digitone don't acknowledge any transfer as happening. Also submitted in the bug. 2/2

2019-07-14 03:38:34

2つめはバッファが溢れてるから。それは彼のアプリの問題?

linclip (NEWBODYFRESHER / BEATNVISION) @linclip

@Pete_Brown Thank you for teaching me. It is difficult for me to understand them. But if it's a problem with Windows' BLE MIDI API, we hope it will resolve early.

2019-07-14 09:38:00

ちょっと理解できないので、早期の対策を望む、とだけ返信。

その後、彼のチームが一晩かけて問題を発見したとの報告が3つのメッセージに分けて投稿される。

リプライでスレッドをつなげてくれてないので、追うのが大変。とりあえず、連続できた3つのメッセージに、それぞれ返信した。

まずは、先方からのメッセージ1/3。