Python Music21乐器对象未按预期工作
我试图使用RNN神经网络预测python中的下一个乐器音符对。但是,我在解释我目前正在使用的部分的music21文档时遇到困难 在下面的代码中,我试图提取乐器Python Music21乐器对象未按预期工作,python,artificial-intelligence,music21,music-notation,Python,Artificial Intelligence,Music21,Music Notation,我试图使用RNN神经网络预测python中的下一个乐器音符对。但是,我在解释我目前正在使用的部分的music21文档时遇到困难 在下面的代码中,我试图提取乐器 为什么我有多个仪器?乐器、钢琴、钢琴 我目前的理论是,每个流部分都返回不同的内存地址,或者music21具有这些不同乐器的多种变体。如果第二种说法成立,是否有办法获得每个仪器变体的唯一性 为什么有些仪器没有任何名称 我有一些关于为什么会这样的想法,但我想和社区确认一下,以确保我仍然清醒 我的文件输出: 与MIDI相比,music
- 我目前的理论是,每个流部分都返回不同的内存地址,或者music21具有这些不同乐器的多种变体。如果第二种说法成立,是否有办法获得每个仪器变体的唯一性
- 我有一些关于为什么会这样的想法,但我想和社区确认一下,以确保我仍然清醒
我的文件输出:
与MIDI相比,music21 instruments collection更接近MusicXML中的instrument collection。有一些MIDI补丁并不涉及一般意义上的乐器(“直升机”、“小妖精”),这些补丁通常不会被翻译。还有一些乐器(低音单簧管)比MIDI的外罩更具体。乐器的music21 repr有乐器类别,然后是乐谱中乐器的名称。乐器。钢琴可能看起来多余,但乐器。A中的单簧管Klarinette 2解释了区别。谢谢,真的帮了大忙的家伙们!抱歉,这个问题有点傻,我只是想问一下,以了解更多的情况!但我想这提出了一个很好的观点。如果我想使用那些没有名称的对象,我应该如何在instrument.fromString中调用它们,还是应该以不同的方式生成我的乐器?
# 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)