This set of changes completely refactors the high-level BluetoothMIDI_Interace implementation to have it support many different backends using different BLE libraries. Previously, only the Bluedroid stack on ESP32 was supported.
The following backends are now supported:
ESP32 Bluedroid (mostly untouched, simply updated the interface for callback functions to use the new BLEAPI)
ESP32 NimBLE (new)
ArduinoBLE (new, with some limitations)
Pi Pico W BTstack (new)
To make use of MIDI over BLE, add #include <MIDI_Interfaces/BluetoothMIDI_Interface.hpp> to your sketch.
The BluetoothMIDI_Interface API remains mostly the same, except for the flush() function, which has been removed in favor of sendNow(), for consistency with the other MIDI interfaces. The original BluetoothMIDI_Interface tests have been ported, and new tests for some of the low-level BLE packet buffering functions have been added.
The documentation now includes a MIDI over BLE page with details about the different backends.
An example named BLEMIDI-Adapter.ino has been added.
This set of changes completely refactors the high-level
BluetoothMIDI_Interace
implementation to have it support many different backends using different BLE libraries. Previously, only the Bluedroid stack on ESP32 was supported.The following backends are now supported:
To make use of MIDI over BLE, add
#include <MIDI_Interfaces/BluetoothMIDI_Interface.hpp>
to your sketch. TheBluetoothMIDI_Interface
API remains mostly the same, except for theflush()
function, which has been removed in favor ofsendNow()
, for consistency with the other MIDI interfaces. The originalBluetoothMIDI_Interface
tests have been ported, and new tests for some of the low-level BLE packet buffering functions have been added.The documentation now includes a MIDI over BLE page with details about the different backends.
An example named BLEMIDI-Adapter.ino has been added.