midievents

Decode/encode MIDI events.

Usage no npm install needed!

<script type="module">
  import midievents from 'https://cdn.skypack.dev/midievents';
</script>

README

midievents

Decode/encode MIDI events.

NPM version Build status Dependency Status devDependency Status Coverage Status Code Climate Dependency Status

What it does

  • Decode MIDI events
  • Check MIDI events (using strictMode)
  • Calculate needed buffer to encode MIDI events
  • Encode MIDI events

What it doesn't do

Usage

// Your variable with an ArrayBuffer instance containing your MIDI events
var anyBuffer;

// Parse MIDI events
var events = [];
var parser = new MIDIEvents.createParser(new DataView(anyBuffer), 0, false);
var event = parser.next();

do {
  events.push(event);
  event = parser.next();
} while(event);

// Check bufffer size before encoding
if(anyBuffer.length >= MIDIEvents.getRequiredBufferLength(events)) {
  console.log('ok');
}

// Encode MIDI events
var destination = new Uint8Array(anyBuffer);
MIDIEvents.writeToTrack(events, destination);

 Contributing / Testing

Install them and run the following command :

npm install --dev
su npm install grunt-cli -g
grunt test

 Contributing

  • Feel free to PR
  • If you find MIDI events the library can't read, create a test an do a pull request. I'll work on it asap.
  • Run npm run to get a list of useful development commands.

License

MIT