nl_tokens: Constructor
pl_tokens: function MIDIFile ( buffer , strictMode ) { var track ; var curIndex ; var i ; var j ; // If not buffer given, creating a new MIDI file if ( ! buffer ) { // Creating the content this . header = <mask> MIDIFileHeader ( ) ; this . tracks = [ new MIDIFileTrack ( ) ] ; // if a buffer is provided, parsing him } else { buffer = ensureArrayBuffer ( buffer ) ; // Minimum MIDI file size is a headerChunk size (14bytes) // and an empty track (8+3bytes) if ( 25 > buffer . byteLength ) { throw new Error ( 'A buffer of a valid MIDI file must have, at least, a' + ' size of 25bytes.' ) ; } // Reading header this . header = new MIDIFileHeader ( buffer , strictMode ) ; this . tracks = [ ] ; curIndex = MIDIFileHeader . HEADER_LENGTH ; // Reading tracks for ( i = 0 , j = this . header . getTracksCount ( ) ; i < j ; i ++ ) { // Testing the buffer length if ( strictMode && curIndex >= buffer . byteLength - 1 ) { throw new Error ( "Couldn't find datas corresponding to the track #" + i + '.' ) ; } // Creating the track object track = new MIDIFileTrack ( buffer , curIndex , strictMode ) ; this . tracks . push ( track ) ; // Updating index to the track end curIndex += track . getTrackLength ( ) + 8 ; } // Testing integrity : curIndex should be at the end of the buffer if ( strictMode && curIndex !== buffer . byteLength ) { throw new Error ( 'It seems that the buffer contains too much datas.' ) ; } } }