The exact scenario that Windows 10 BLE-MIDI drops SysEx.
environment
OS: Windows 10 Version 1903 Build 18362.239
MIDI device: Roland MS-1 (old sampler)
USB-MIDI interface: iConnectivity iConnectMIDI2+
BLE-MIDI interface: YAMAHA MD-BT01
Software: Cakewalk by BandLab
(Go to [Edit] menu – Preferences – MIDI-Record/Play Driver Mode: UWP)
Software: rtpMIDI
TEST 1 Cakewalk receives SysEx
Make New Project, make a midi track and choose MIDI interface.
Go to [Edit] menu – [Sysx], open Sysx view.
Click Sysx view, [file] menu – [receive] (link)
When MS-1 sends SysEx, it divides data into several times and sends it, but in this test, only the first one is sent.
1A: MS-1 > MD-BT01 > Cakewalk
The volume of received data is different every time. There is a drop in the data.
1B: MS-1 > iConnectMIDI2+ > Cakewalk
The volume of received data is the same every time. I receive the same data every time.
1C: MS-1 > MD-BT01 > iOS (Web MIDI Browser) > rtpMIDI > Cakewalk
As MD-BT01 may not have been successfully received, I did one more test. At first we receive data from MD-BT01 on iOS. Send that data to Windows over WiFi (networkMIDI). Windows received via rtpMIDI and sent it to Cakewalk.
The data is exactly the same as TEST 1B. There was no loss of data.
Conclusion
The problem is not with MD-BT01 but with Windows 10.
TEST 2 UWP MIDI sample
I do a similar test with a program based on UWP samples published by Microsoft.
STEP 1
Download from the following repository, open in Visual Studio and Debug.
uwp-midi-sample
This program displays MIDI raw data on Output window.
STEP 2
Select Receive MIDI Messages in the left pane. Select MD-BT01 (Bluetooth MIDI IN) or USB-MIDI interface with INPUT DEVICES. Start sending from your MIDI device.
STEP 3
Check the data in the Visual Studio Output window.
The result is the same as TEST 1, BLE-MIDI receives different data each time. USB-MIDI reception is exactly the same every time. When comparing BLE-MIDI and USB-MIDI, there is a loss of data in the reception from BLE-MIDI.
Conclusion
Windows 10 BLE-MIDI drops SysEx.
What do you think about this result?