попробуйте
Python Midi, может чего получится)
Они уверяют, что:
It's just as easy to load your MIDI file from disk.
>>> z = midi.read_midifile("d:\\Python\\Pypi\\mics\\midi\\mary.mid")
>>> z.textdump()
>>> #что вроде как правда, но textdump у меня выдал AttributeError...
>>> #однако, можно просто написать
>>> print z
midi.Pattern(format=1, resolution=220, tracks=\
[[midi.TimeSignatureEvent(tick=0, data=[4, 2, 24, 8]),
midi.KeySignatureEvent(tick=0, data=[0, 0]),
midi.EndOfTrackEvent(tick=1, data=[])],
[midi.ControlChangeEvent(tick=0, channel=0, data=[91, 58]),
midi.ControlChangeEvent(tick=0, channel=0, data=[10, 69]),
midi.ControlChangeEvent(tick=0, channel=0, data=[0, 0]),
midi.ControlChangeEvent(tick=0, channel=0, data=[32, 0]),
midi.ProgramChangeEvent(tick=0, channel=0, data=[24]),
…
midi.NoteOnEvent(tick=974, channel=0, data=[60, 0]),
midi.NoteOnEvent(tick=0, channel=0, data=[52, 0]),
midi.EndOfTrackEvent(tick=1, data=[])]])
и… дальше сами)
удач!
ps
есть еще
Pyo, но эксперимент с midi в нем у меня не вышел(