def parse_varbyte_as_int(self, fp, return_bytes_read=True): """Read a variable length byte from the file and return the corresponding integer.""" result = 0 bytes_read = 0 r = 0x80 while r & 0x80: try: r = self.bytes_to_int(fp.read(1)) self.bytes_read += 1 except: raise IOError("Couldn't read variable length byte from file.") if r & 0x80: result = (result << 7) + (r & 0x7F) else: result = (result << 7) + r bytes_read += 1 if not return_bytes_read: return result else: return (result, bytes_read) if __name__ == '__main__': from sys import argv import fluidsynth import MidiFileOut fluidsynth.init() (m, bpm) = MIDI_to_Composition(argv[1]) MidiFileOut.write_Composition('test.mid', m, bpm)
integer.""" result = 0 bytes_read = 0 r = 0x80 while r & 0x80: try: r = self.bytes_to_int(fp.read(1)) self.bytes_read += 1 except: (IOError, "Couldn't read variable length byte from file.") if r & 0x80: result = (result << 7) + (r & 0x7F) else: result = (result << 7) + r bytes_read += 1 if not return_bytes_read: return result else: return (result, bytes_read) if __name__ == '__main__': from sys import argv import fluidsynth import MidiFileOut fluidsynth.init() (m, bpm) = MIDI_to_Composition(argv[1]) MidiFileOut.write_Composition('test.mid', m, bpm)