我发现的唯一方法是使用music21:
m = converter.parse(path)
for m in m.parts:
print(m[0])
Run Code Online (Sandbox Code Playgroud)
但它的输出不正确:
Piano
Piano
Run Code Online (Sandbox Code Playgroud)
空位也是一个乐器名称,它只是无法读取它,但问题不在文件中,因为我可以将其正确导入到tuxguitar 中。此外,music21 无法传递大的 MIDI 文件并卡住。我尝试了 mido 库,但没有办法获得 track instrument,我找到了一个属性,但不知道如何使用它。
如何用python解析midi曲目的乐器?