python - 如何在 MIDI 文件中添加拍号?
问题描述
我正在尝试在 Python 中向 MIDI 文件添加时间签名。
我曾尝试使用 MIDO 和 MIDI 库来做到这一点,但不知道这是否可能或确切的代码需要是什么。
添加拍号的 Python 代码应该是什么样的?
目前,midi 文件如下所示:
...
midi.Pattern(format=0, resolution=96, tracks=\
[midi.Track(\
[midi.ProgramChangeEvent(tick=0, channel=0, data=[0]),
midi.NoteOnEvent(tick=0, channel=0, data=[41, 90]),
midi.NoteOnEvent(tick=440, channel=0, data=[41, 0]),
midi.NoteOffEvent(tick=0, channel=0, data=[41, 90]),
....
我需要将其更改为:
....
midi.Pattern(format=0, resolution=96, tracks=\
[midi.Track(\
[midi.TimeSignatureEvent(tick=0, data=[4, 2, 36, 8]),
midi.TimeSignatureEvent(tick=0, data=[4, 2, 36, 8]),
midi.ProgramChangeEvent(tick=0, channel=0, data=[0]),
midi.NoteOnEvent(tick=0, channel=0, data=[41, 90]),
midi.NoteOnEvent(tick=440, channel=0, data=[41, 0]),
midi.NoteOffEvent(tick=0, channel=0, data=[41, 90]),
...
解决方案
查看这个名为节拍器的库,它可能会对您有所帮助。
该页面上的文档包含一个名为setTimeSignature(timeSignature)
. 它的描述是:
设置节拍器的拍号(一个列表,例如,[4, 4] 表示 4/4)。
您可以使用传递所需的拍号作为列表。