/ESP32-BLE-MIDI

An Arduino library to use Midi over BLE (Bluetooth Low Energy), on ESP32 boards

Primary LanguageC++MIT LicenseMIT

ESP32-BLE-MIDI

An Arduino library to use Midi over Bluetooth Low Energy (BLE) on ESP32 boards.

Quick start

#include <Arduino.h>
#include <BLEMidi.h>

void setup() {
  Serial.begin(115200);
  Serial.println("Initializing bluetooth");
  BLEMidiServer.begin("Basic MIDI device");
  Serial.println("Waiting for connections...");
  //BLEMidiServer.enableDebugging();  // Uncomment if you want to see some debugging output from the library
}

void loop() {
  if(BLEMidiServer.isConnected()) {             // If we've got a connection, we send an A4 during one second, at full velocity (127)
      BLEMidiServer.noteOn(0, 69, 127);
      delay(1000);
      BLEMidiServer.noteOff(0, 69, 127);        // Then we stop the note and make a delay of one second before returning to the beginning of the loop
      delay(1000);
  }
}

Changes

  • v0.2.1

    • 2021-03-16
      • Bug correction : the WDT used to reset the ESP32 when lots of messages were received, because the IDLE task didn't have time to call esp_task_wdt_reset
  • v0.2.0

    • 2021-03-12
      • Implemented support for running status messages
    • 2021-03-13
      • After touch support
  • v0.1.2

    • 2021-03-02
      • Added pitch bend callback
      • Added a range parameter for pitch bend sending
    • 2021-03-11
      • Added an a new overload for pitch bend sending
  • v0.1.1

    • 2020-12-29
    • 2020-12-30
      • Implemented packet timestamps

Future work

  • Add some more examples

  • Add documentation, with Doxygen ?

  • Add keywords.txt for Arduino IDE

  • Add support for realtime messages ?

  • Add debugging messages in BLEMidiServer ?

  • Better debug function

Thanks

Thanks to the authors of those pages / pieces of code :

Message to users

If you make some noise with it, I would be glad to see your projects ! Don't hesitate to drop me an e-mail.

Donations

I work on this project for pleasure, but if you think it is worth some money, feel free to send me the amount you want, via Paypal or Bitcoin.

PayPal Bitcoin

1AM3HCBRrXQcQMFckB1LH1VZvxbecvVxJd