Инструментальные объекты Music21 не работают должным образом
Я пытаюсь предсказать следующую пару нот музыкального инструмента в python, используя нейронную сеть RNN. Однако у меня возникают проблемы с интерпретацией документации music21 для той части, на которой я сейчас работаю.
В приведенном ниже коде я пытаюсь извлечь музыкальный инструмент.
Почему я получаю несколько инструментов? Пример: Инструмент. Фортепиано. Фортепиано.
- Моя текущая теория состоит в том, что каждая часть потока возвращает свой адрес памяти, или музыка21 имеет несколько вариантов этих разных инструментов. Если второе утверждение верно, есть ли способ получить уникальность для каждого варианта инструмента?
Почему некоторые инструменты не имеют какого-либо названия?
- У меня есть несколько идей о том, почему это так, но я хочу подтвердить сообществу, чтобы убедиться, что я все еще в здравом уме.
# Attempt to parse midi file
try:
midi = converter.parse(file)
except:
# Midi file couldn't be opened
return {"song_notes": [],
"note_count": [],
"small_file_check": False,
"corrupted": True}
# Stores all found instruments
instruments_in_song = set()
# Iterate through stream parts
for stream_part in midi.parts:
stream_instrument = instrument.partitionByInstrument(stream_part)
if stream_instrument:
for instr in stream_instrument.recurse().parts:
print("Instrument: {0}".format(instr.getInstrument()))
instruments_in_song.add(instr.getInstrument())
print(instruments_in_song)
Мой файл вывода: