如何将MIDO下的ticks_per_beat设置为一个新的MIDI文件?
Posted
技术标签:
【中文标题】如何将MIDO下的ticks_per_beat设置为一个新的MIDI文件?【英文标题】:How to set ticks_per_beat under MIDO to a new MIDI file? 【发布时间】:2017-08-26 12:42:20 【问题描述】:在 MIDO 下读取ticks_per_beat
可以通过mid.ticks_per_beat
完成。但是,如果我想将 ticks_per_beat
的值(例如 120 或 480)保存到新的 MIDI 文件中,该怎么做? (p.s.我可以设置“拍号”或“节奏”如下。但是,在我看来,这些值和ticks_per_beat
之间没有关系。)
track.append(MetaMessage('time_signature', numerator=4, denominator=4, clocks_per_click=24, notated_32nd_notes_per_beat=8, time=0))
track.append(MetaMessage('set_tempo', tempo=100000, time=0))
【问题讨论】:
赞美上帝!我一直在为这个ticks_per_beat
属性搜索所有土地!
【参考方案1】:
每拍的节拍值不与 MIDI 消息一起存储;它是 MIDI 文件头中的一个字段。
MidiFile
构造函数有一堆未记录的参数:
class MidiFile(object):
def __init__(self, filename=None, file=None,
type=1, ticks_per_beat=DEFAULT_TICKS_PER_BEAT,
charset='latin1',
debug=False,
clip=False
):
【讨论】:
以上是关于如何将MIDO下的ticks_per_beat设置为一个新的MIDI文件?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 mido 中从 Message 中获取 note 属性?
在 Mac 上从 Python Mido 库输出 MIDI 声音
关闭 mido 端口时的“PortMidi: `Bad pointer'”