Awesome
midievents
Decode/encode MIDI events.
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
- Reading MIDI files. It's the role of the MIDIFile project.
- Playing MIDI files. It's the role of the MIDIPlayer project.
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.