Skip to content

Latest commit

 

History

History
72 lines (46 loc) · 1.86 KB

README.md

File metadata and controls

72 lines (46 loc) · 1.86 KB

MIDISender

This is a fork of cordova-plugin-midi-sender. I added android capabilities to the original plugin which was just ios based.

Installation

NPM:

cordova plugin add cordova-plugin-midi-sender-android

Repository:

cordova plugin add https://github.com/manuelnelson/cordova-plugin-midi-sender.git

Dependencies

CoreMIDI.framework is required, and will be linked for you automatically

Methods

Listen for incoming MIDI messages on all channels:

cordova.plugins.MIDISender.getIncoming(function(msg) {
  if (msg.channel){ // Ignore msg sent on plugin initialization
  
    /* MESSAGE DATA
      msg.channel = MIDI channel (1-16)
      msg.type = Type of MIDI message: 'Program Change', 'Control Change', 'Note On', 'Note off'
      msg.data = MIDI Data: <number> for PC/CC (1-128), or Note (i.e. "C3") for Note On/Off
      msg.value = Not present for 'Program Change' messages
    */
    
  }
});

Send MIDI Messages:

// Send Program Change (Channel, Data)
cordova.plugins.MIDISender.sendProgramChange(1, 30);

// Send NoteOn (Channel, Data, Value)
cordova.plugins.MIDISender.sendNote(1, 60, 127); // Ch 1, NoteOn C3, Value

// Send Control Change (Channel, Data, Value)
cordova.plugins.MIDISender.sendControlChange(1, 1, 1);

Permissions

<feature name="MIDISender">
    <param name="ios-package" value="MIDISender" onload="true" />
</feature>

Debugging

Debug messages are sent to NSLog

Resources

If you're unfamiliar with MIDI, checkout this spec on MIDI messages.

Credits

Jonathan Kelly