midijs
Version:
Read and write Standard MIDI files and enable communication with MIDI devices!
34 lines (26 loc) • 831 B
JavaScript
/**
* @private
* @module midijs/lib/file/parser/track
*/
;
var encodeChunk = require('./chunk').encodeChunk;
var encodeEvent = require('./event').encodeEvent;
var buffer = require('buffer');
/**
* Encode a MIDI track chunk
*
* @param {module:midijs/lib/file/track~Track} track - Track to encode
* @return {Buffer} Encoded track
*/
function encodeTrack(track) {
var events = track.getEvents(), data = [],
length = events.length, i,
runningStatus = null, result;
for (i = 0; i < length; i += 1) {
result = encodeEvent(events[i], runningStatus);
runningStatus = result.runningStatus;
data[i] = result.data;
}
return encodeChunk('MTrk', buffer.Buffer.concat(data));
}
exports.encodeTrack = encodeTrack;