{"id":16731421,"url":"https://github.com/skratchdot/ble-midi","last_synced_at":"2026-03-05T19:59:10.381Z","repository":{"id":66198089,"uuid":"83210658","full_name":"skratchdot/ble-midi","owner":"skratchdot","description":"A Bluetooth Low Energy MIDI library written in javascript","archived":false,"fork":false,"pushed_at":"2017-03-01T22:32:34.000Z","size":1706,"stargazers_count":39,"open_issues_count":2,"forks_count":13,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-03-15T15:16:09.115Z","etag":null,"topics":["ble","bluetooth","cli","javascript","midi","node","web-bluetooth"],"latest_commit_sha":null,"homepage":"https://projects.skratchdot.com/ble-midi/","language":"JavaScript","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/skratchdot.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE-MIT","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":"2017-02-26T13:31:34.000Z","updated_at":"2023-12-27T00:52:58.000Z","dependencies_parsed_at":"2023-02-25T22:45:21.991Z","dependency_job_id":null,"html_url":"https://github.com/skratchdot/ble-midi","commit_stats":{"total_commits":11,"total_committers":1,"mean_commits":11.0,"dds":0.0,"last_synced_commit":"b02b34b487f955759e43adca71e2e3a178c666ad"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skratchdot%2Fble-midi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skratchdot%2Fble-midi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skratchdot%2Fble-midi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skratchdot%2Fble-midi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/skratchdot","download_url":"https://codeload.github.com/skratchdot/ble-midi/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244164428,"owners_count":20408934,"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":["ble","bluetooth","cli","javascript","midi","node","web-bluetooth"],"created_at":"2024-10-12T23:37:04.203Z","updated_at":"2026-03-05T19:59:05.316Z","avatar_url":"https://github.com/skratchdot.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ble-midi\n\n[![NPM version](https://badge.fury.io/js/ble-midi.svg)](http://badge.fury.io/js/ble-midi)\n[![Build Status](https://travis-ci.org/skratchdot/ble-midi.png?branch=master)](https://travis-ci.org/skratchdot/ble-midi)\n[![Code Climate](https://codeclimate.com/github/skratchdot/ble-midi.png)](https://codeclimate.com/github/skratchdot/ble-midi)\n[![Coverage Status](https://coveralls.io/repos/skratchdot/ble-midi/badge.svg?branch=master\u0026service=github)](https://coveralls.io/github/skratchdot/ble-midi?branch=master)\n[![dependencies Status](https://david-dm.org/skratchdot/ble-midi/status.svg)](https://david-dm.org/skratchdot/ble-midi)\n[![devDependencies Status](https://david-dm.org/skratchdot/ble-midi/dev-status.svg)](https://david-dm.org/skratchdot/ble-midi?type=dev)\n\n[![NPM](https://nodei.co/npm/ble-midi.png)](https://npmjs.org/package/ble-midi)\n\n\n## Description\n\nA Bluetooth Low Energy MIDI library written in javascript.\n\n#### The following service and characteristic are defined:\n- MIDI Service (UUID: `03B80E5A-EDE8-4B33-A751-6CE34EC4C700`)\n- MIDI Data I/O Characteristic (UUID: `7772E5DB-3868-4112-A1A9-F2669D106BF3`)\n- Supports:\n  - `write` (encryption recommended, write without response is required)\n  - `read` (encryption recommended, respond with no payload)\n  - `notify` (encryption recommended)\n\n\n## Getting Started\n\n```bash\n# install cli\nnpm install -g ble-midi\n\n# install helper tool\nbrew install fluidsynth\n\n# download soundfont\nwget https://dl.dropboxusercontent.com/u/8126161/GeneralUser_GS_1.471.zip\nunzip -p GeneralUser_GS_1.471.zip \"GeneralUser GS 1.471/GeneralUser GS v1.471.sf2\" \u003e gs.sf2\n\n# start fluidsynth\nfluidsynth -d ./gs.sf2\n\n# find fluidsynth port\nble-midi list-devices\n\n# start advertising (if fluidsynth was device #2- if not, just use correct device number)\nble-midi advertise --midi-out 2\n\n# now connect to \"skratchdot-ble-midi\" from another device and start playing\n```\n\n## Links\n\n### Specifications\n- [midi.org](https://www.midi.org/specifications/item/bluetooth-le-midi)\n- [Apple](https://developer.apple.com/bluetooth/Apple-Bluetooth-Low-Energy-MIDI-Specification.pdf)\n\n### Helpful MIDI Tools\n- [fluidsynth](http://www.fluidsynth.org/)\n- [midikeys](http://www.manyetas.com/creed/midikeys.html)\n- [S. Christian Collins GeneralUser GS Soundfont](http://www.schristiancollins.com/generaluser.php)\n\n### Android\n- [Bluetooth Low Energy on Android](https://developer.android.com/guide/topics/connectivity/bluetooth-le.html)\n- [MIDI Package Summary](https://developer.android.com/reference/android/media/midi/package-summary.html)\n- [BLE Test Peripheral](https://github.com/WebBluetoothCG/ble-test-peripheral-android)\n- [BLE MIDI Example App for Android](https://github.com/kshoji/BLE-MIDI-for-Android)\n\n### Products\n- [Yamaha MD-BT01](https://www.amazon.com/Yamaha-Wireless-5-PIN-MIDI-Adapter/dp/B01CFOHF6U/)\n- [Quicco Sound mi.1](https://www.amazon.com/Wireless-MIDI-Interface-mi-1-Rev-3/dp/B01D61QK6W/)\n\n### Random\n- http://shawnhymel.com/703/bluetooth-low-energy-peripherals-with-javascript/\n\n## Credits\n\n- MIDI Icon by Kurt Lorenz from the Noun Project\n- Bluetooth Icon by Barracuda from the Noun Project\n\n\n## License\n\nCopyright (c) 2017 [skratchdot](https://www.skratchdot.com/)  \nLicensed under the\n[MIT license](https://github.com/skratchdot/ble-midi/blob/master/LICENSE-MIT).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fskratchdot%2Fble-midi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fskratchdot%2Fble-midi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fskratchdot%2Fble-midi/lists"}