/ble-midi

A Bluetooth Low Energy MIDI library written in javascript

Primary LanguageJavaScriptMIT LicenseMIT

ble-midi

NPM version Build Status Code Climate Coverage Status dependencies Status devDependencies Status

NPM

Description

A Bluetooth Low Energy MIDI library written in javascript.

The following service and characteristic are defined:

  • MIDI Service (UUID: 03B80E5A-EDE8-4B33-A751-6CE34EC4C700)
  • MIDI Data I/O Characteristic (UUID: 7772E5DB-3868-4112-A1A9-F2669D106BF3)
  • Supports:
    • write (encryption recommended, write without response is required)
    • read (encryption recommended, respond with no payload)
    • notify (encryption recommended)

Getting Started

# install cli
npm install -g ble-midi

# install helper tool
brew install fluidsynth

# download soundfont
wget https://dl.dropboxusercontent.com/u/8126161/GeneralUser_GS_1.471.zip
unzip -p GeneralUser_GS_1.471.zip "GeneralUser GS 1.471/GeneralUser GS v1.471.sf2" > gs.sf2

# start fluidsynth
fluidsynth -d ./gs.sf2

# find fluidsynth port
ble-midi list-devices

# start advertising (if fluidsynth was device #2- if not, just use correct device number)
ble-midi advertise --midi-out 2

# now connect to "skratchdot-ble-midi" from another device and start playing

Links

Specifications

Helpful MIDI Tools

Android

Products

Random

Credits

  • MIDI Icon by Kurt Lorenz from the Noun Project
  • Bluetooth Icon by Barracuda from the Noun Project

License

Copyright (c) 2017 skratchdot
Licensed under the MIT license.