Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一些 MIDI 文件。每个 MIDI 文件都有一些乐器。我需要知道每个 MIDI 文件包含哪些乐器。我发现了一些python可以解析 midi 文件的库,例如mido。例如,下面是解析一个 MIDI 文件的结果:
python
我可以看到这个 MIDI 文件中有多少曲目,但我不知道每个曲目播放的是什么乐器。这是midi仪器表。有人知道解决方案吗?
在 MIDI 中,乐器被称为程序,每个轨道可以包含多个乐器。尽管它们可能不会重叠(除非它们使用不同的通道)。这是在每个程序播放的曲目中显示的 Python 代码。代码假定轨道存储在 track变量中:
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.')