{"id":20962590,"url":"https://github.com/lathoub/arduino-ble-midi","last_synced_at":"2025-04-12T14:55:54.928Z","repository":{"id":40656382,"uuid":"154387259","full_name":"lathoub/Arduino-BLE-MIDI","owner":"lathoub","description":"MIDI over Bluetooth Low Energy (BLE-MIDI) 1.0 for Arduino","archived":false,"fork":false,"pushed_at":"2025-03-29T09:12:18.000Z","size":222,"stargazers_count":245,"open_issues_count":15,"forks_count":35,"subscribers_count":18,"default_branch":"master","last_synced_at":"2025-04-03T14:09:47.041Z","etag":null,"topics":["arduino","arduino-library","arduino-midi-library","arduino-nano","arduino-nano-33-ble","arduino-nano-rp2040-connect","ble","ble-midi","bluetooth-low-energy","esp32","midi","rp2040","transport-layer"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lathoub.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-10-23T19:45:24.000Z","updated_at":"2025-03-29T09:12:21.000Z","dependencies_parsed_at":"2025-02-28T21:08:50.323Z","dependency_job_id":"b76fac33-b17b-4f9f-ac1e-a28d1bcfd9bd","html_url":"https://github.com/lathoub/Arduino-BLE-MIDI","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lathoub%2FArduino-BLE-MIDI","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lathoub%2FArduino-BLE-MIDI/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lathoub%2FArduino-BLE-MIDI/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lathoub%2FArduino-BLE-MIDI/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lathoub","download_url":"https://codeload.github.com/lathoub/Arduino-BLE-MIDI/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248586245,"owners_count":21128996,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["arduino","arduino-library","arduino-midi-library","arduino-nano","arduino-nano-33-ble","arduino-nano-rp2040-connect","ble","ble-midi","bluetooth-low-energy","esp32","midi","rp2040","transport-layer"],"created_at":"2024-11-19T02:35:35.607Z","updated_at":"2025-04-12T14:55:54.909Z","avatar_url":"https://github.com/lathoub.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Arduino BLE-MIDI Transport \n[![arduino-library-badge](https://www.ardu-badge.com/badge/BLE-MIDI.svg?)](https://www.ardu-badge.com/BLE-MIDI) \n\nThis library implements the BLE-MIDI transport layer for the [FortySevenEffects Arduino MIDI Library](https://github.com/FortySevenEffects/arduino_midi_library) \n\n## Installation\nThis library depends on the [Arduino MIDI Library](https://github.com/FortySevenEffects/arduino_midi_library).\n\nWhen installing this library from the Arduino IDE, the dependency be downloaded and installed in the same directory as this library. (Thanks to the `depends` clause in `library.properties`)\n\nWhen manually installing this library, you have to manually download [Arduino MIDI Library](https://github.com/FortySevenEffects/arduino_midi_library) from github and install it in the same directory as this library - without this additional install, this library will not be able to compile.\n\nWhen using `ESP32` consider using NimBLE (`NimBLE-Arduino`).\nWhen using the `Arduino NANO 33 BLE` or `Arduino NANO RP2040 Connect`, you must install `ArduinoBLE`\n\n## Usage\n### Basic / Default\n```cpp\n#include \u003cBLEMIDI_Transport.h\u003e\n#include \u003chardware/BLEMIDI_ESP32.h\u003e\n...\nBLEMIDI_CREATE_DEFAULT_INSTANCE()\n...\nvoid setup()\n{\n   MIDI.begin();\n...\nvoid loop()\n{\n   MIDI.read();\n```\nwill create a instance named `BLEMIDI` and listens to incoming MIDI.\n\n#### Namespace collision with ArduinoBLE\nNote: error: redefinition of 'class BLEDescriptor' is a namespace collision on class BLEDescriptor between ESP32 BLE and ArduinoBLE.\nSolution: remove ArduinoBLE\n\n### using NimBLE for ESP32 with a custom name and turns LED on when its connected\n\n```cpp\n#include \u003cBLEMIDI_Transport.h\u003e\n#include \u003chardware/BLEMIDI_ESP32_NimBLE.h\u003e\n...\nBLEMIDI_CREATE_INSTANCE(\"CustomName\", MIDI)\n...\nvoid setup()\n{\n  pinMode(LED_BUILTIN, OUTPUT);\n  digitalWrite(LED_BUILTIN, LOW);\n\n  BLEMIDI.setHandleConnected(OnConnected);\n  BLEMIDI.setHandleDisconnected(OnDisconnected);\n  \n  MIDI.begin();\n...\nvoid loop()\n{\n  MIDI.read();\n...\nvoid OnConnected() {\n  digitalWrite(LED_BUILTIN, HIGH);\n}\n\nvoid OnDisconnected() {\n  digitalWrite(LED_BUILTIN, LOW);\n}\n   \n```\nwill create a instance named `BLEMIDI` and listens to incoming MIDI.\n\n## Tested boards/modules\n-  ESP32 (OOB BLE and NimBLE)\n-  Arduino NANO 33 BLE\n-  Arduino NANO RP2040 Connect\n\n## Other Transport protocols:\nThe libraries below  the same calling mechanism (API), making it easy to interchange the transport layer.\n- [Arduino AppleMIDI Transport](https://github.com/lathoub/Arduino-AppleMIDI-Library)\n- [Arduino USB-MIDI  Transport](https://github.com/lathoub/USB-MIDI)\n- [Arduino ipMIDI  Transport](https://github.com/lathoub/Arduino-ipMIDI)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flathoub%2Farduino-ble-midi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flathoub%2Farduino-ble-midi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flathoub%2Farduino-ble-midi/lists"}