class Transposer(MidiOutFile): "Transposes all notes by 1 octave" def _transp(self, ch, note): if ch != 9: # not the drums! note += 12 if note > 127: note = 127 return note def note_on(self, channel=0, note=0x40, velocity=0x40): note = self._transp(channel, note) MidiOutFile.note_on(self, channel, note, velocity) def note_off(self, channel=0, note=0x40, velocity=0x40): note = self._transp(channel, note) MidiOutFile.note_off(self, channel, note, velocity) out_file = 'midiout/transposed.mid' midi_out = Transposer(out_file) #in_file = 'midiout/minimal_type0.mid' #in_file = 'test/midifiles/Lola.mid' in_file = 'test/midifiles/tennessee_waltz.mid' midi_in = MidiInFile(midi_out, in_file) midi_in.read()
""" This is an example that uses the MidiToText eventhandler. When an event is triggered on it, it prints the event to the console. It gets the events from the MidiInFile. So it prints all the events from the infile to the console. great for debugging :-s """ # get data test_file = 'test/midifiles/minimal-cubase-type0.mid' # do parsing from midiio.MidiInFile import MidiInFile from midiio.MidiToText import MidiToText # the event handler midiIn = MidiInFile(MidiToText(), test_file) midiIn.read()