We’ve just added EXPERIMENTAL support for the Windows Runtime MIDI API to the develop branch, which enables machines with Windows 10 Anniversary Update installed to connect to Bluetooth Low Energy (BLE) MIDI devices.
However, there are some very important caveats:
Once a BLE MIDI device is paired, the WinRT MIDI API will always list it as available, even if the device is powered off.
Sending or receiving sysex messages is very likely to cause a hang.
The WinRT MIDI API may also hang when attempting to connect to a device. We’re currently working around this by running the connection request in a thread and killing it violently after a timeout, but this is clearly a Bad Thing.
These three issues all originate from Windows’ Bluetooth stack, and JUCE’s support for the API will be branded EXPERIMENTAL until a Windows update fixes them. If you have both a Microsoft Account and a Windows 10 Anniversary Update machine then please visit the following URLs (via Edge) to vote for the corresponding, related issues and increase the pressure on Microsoft to get them fixed.
None of these issues are present if you are using the WinRT MIDI API over USB.
- Windows 10 Anniversary Update
- Visual Studio 2015 with version 10.0.14393.0 of the Windows SDK installed (use the Windows add/remove programs settings dialog to modify your VS installation)
- In the Projucer
- Select JUCE_USE_WINRT_MIDI in the juce_audio_devices_module
- Provide the path to the WinRT headers in the Windows SDK in “Header search paths” in a Visual Studio build configuration (probably
C:\Program Files (x86)\Windows Kits\10\Include\10.0.14393.0\winrt)
- Windows 10 Anniversary Update if you want to use BLE, otherwise there’s an automatic fallback to the old MIDI API for older Windows versions; using the new JUCE API will not break compatibility.
Please give this a go and report back any issues!