1

我有一些 MIDI 文件。每个 MIDI 文件都有一些乐器。我需要知道每个 MIDI 文件包含哪些乐器。我发现了一些python可以解析 midi 文件的库,例如mido。例如,下面是解析一个 MIDI 文件的结果:

我可以看到这个 MIDI 文件中有多少曲目,但我不知道每个曲目播放的是什么乐器。这是midi仪器。有人知道解决方案吗?

4

1 回答 1

0

在 MIDI 中,乐器被称为程序,每个轨道可以包含多个乐器。尽管它们可能不会重叠(除非它们使用不同的通道)。这是在每个程序播放的曲目中显示的 Python 代码。代码假定轨道存储在 track变量中:

time = 0
for msg in track:
    time += msg.time
    if msg.type == 'program_change':
        program = msg.program
        print(f'Time {time:6}, program {program:3} starts.')
于 2020-04-08T12:02:30.873 回答