以下程序将 midi 文件解析出来, 并利用解析出来的音符重新生成一个一样的 midi 文件。
import mido
import sys
import json
def midifile_to_dict(mid):
tracks = []
for track in mid.tracks:
tracks.append([vars(msg).copy() for msg in track])
return {
'ticks_per_beat': mid.ticks_per_beat,
'tracks': tracks,
}
mid = mido.MidiFile("Pianoboy-你离开的事实_爱给网_aigei_com.mid", clip=True)
dict_mid = midifile_to_dict(mid)
json_mid = json.dumps(dict_mid, indent=2)
print(json_mid)
track0 = (dict_mid["tracks"])[0]
track1 = (dict_mid["tracks"])[1]
track2 = (dict_mid["tracks"])[2]
######### EXTRACT MUSIC DATA FROM THE TWO MAIN TRACKS ##########
on_off1=[]
note1_on=[]
note1_off=[]
velocity1_on=[]