【问题标题】:Midi instrument index pythonMIDI乐器索引python
【发布时间】:2018-08-16 08:54:06
【问题描述】:

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

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

【问题讨论】:

  • 您必须查看每个音轨内的银行选择和程序更改消息。
  • 什么是“更改消息”?
  • 我的意思是“程序更改消息”(更改程序的消息。

标签: python parsing midi midi-instrument mido


【解决方案1】:

在 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.')

【讨论】:

    猜你喜欢
    • 2011-12-10
    • 2015-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多