我正在尝试在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]),
...
答案 0 :(得分:0)
请查看这个名为metronome的库,它可能会对您有帮助。
该页面上的文档包括一个名为setTimeSignature(timeSignature)
的函数。它的描述是:
设置节拍器的拍号(列表,例如[4,4]表示4/4)。
您可以将所需的时间签名中的pass用作列表。
答案 1 :(得分:0)
MIDO documentation显示了如何创建元消息:
MetaMessage('time_signature', numerator=4, denominator=4)