tttapa / Control-Surface

Arduino library for creating MIDI controllers and other MIDI devices.
GNU General Public License v3.0
1.19k stars 134 forks source link

MIDI over BLE support for ESP32, ArduinoBLE and Raspberry Pi Pico W #993

Closed tttapa closed 5 months ago

tttapa commented 5 months ago

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. 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.