MIDI for Node.js
A very basic node library to parse and write MIDI messages.
Usage
The library supports three major types of MIDI structures:
- A sequence, representing a full MIDI file with multiple tracks.
- A track, a ordered collection of messages.
- A message, the basic component for the MIDI protocol.
These can all be parsed from a Buffer.
Parsing a Message
var midi = ;var noteOff = '803c00' 'hex'; // Channel 0, middle C4, 0 velocityvar message = midiMessage; message; // 0x80message; // "NOTE_OFF"message; // 0message; // [0x3c, 0x00]
Parsing messages from a stream
Anything that emits a 'data' event can be used as a stream.
var midi = ;var input = <something readable>;var stream = input; stream; stream;
The following events are emitted:
startFile
, parameter is the file headerstartTrack
, parameter is the track objectevent
, parameters are delta and messageendTrack
, parameter is the track objecterror
, parameter is the error object
Writing a Message
var midi = ;var stream = <something writable>;var writer = stream; writer;writer;writer; // Channel 0, middle C4, 100 velocity