Извлечена вся информация из миди файла usign music21
Я пытаюсь извлечь ноты, аккорды и остатки из файла MIDI с 10 инструментами, используя music21
После этого поста я могу получить их для каждого инструмента:
file = 'example.mid'
midi = converter.parse(file)
parts = instrument.partitionByInstrument(midi)
notes_for_instruments = []
for i in range(len(parts.parts)):
notes_to_parse = parts.parts[i].recurse()
instr = parts.parts[i].getInstrument()
instruments.append(instr.instrumentName)
notes, quarters = [],[]
for element in notes_to_parse:
if isinstance(element, note.Note):
# if element is a note, extract pitch
notes.append(str(element.pitch))
elif(isinstance(element, chord.Chord)):
# if element is a chord, append the normal form of the
# chord (a list of integers) to the list of notes.
notes.append('.'.join(str(n) for n in element.normalOrder))
elif isinstance(element, note.Rest):
notes.append('Rest')
notes_for_instruments.append(notes)
Это сумма ноты, аккордов и отдыха для каждого инструмента
StringInstrument 2928
None 949
Taiko 29
Timpani 14
Trumpet 616
Flute 2938
Clarinet 2417
Violoncello 32
Oboe 1076
Horn 411
Bassoon 1749
как вы можете видеть, они очень разные, это происходит, потому что я не извлекаю всю доступную информацию. Как можно омологировать этот результат для синхронизации аккордов, нот и остальных инструментов?