首页 > 解决方案 > MIDI 中的拍号元信息

问题描述

我正在使用 Python 中的 mido 库开发一个 MIDI 项目。我在手册中看到一个带有值的时间签名元消息:notated_32nd_notes_per_beat,默认值为 8。

<meta message time_signature numerator=4 denominator=4 clocks_per_click=24 notated_32nd_notes_per_beat=8 time=0>

这是有道理的。但是,我可以将其定义为:

<meta message time_signature numerator=4 denominator=4 clocks_per_click=24 notated_32nd_notes_per_beat=32 time=0>

当在乐谱/排版软件中显示时,这会增加显示分辨率吗?请问这个有什么用?

MIDI 文件中的 time_signature (0x58) 元消息

标签: midi

解决方案


文件头指定每个节拍的节拍数,速度消息指定节拍的长度,以微秒为单位。这些值是正确播放文件所必需的。

拍号消息的最后一个字段指定 MIDI 文件中的刻度值如何与乐谱中的音符相关。它不影响发送事件的时间(因此纯播放程序将忽略此消息),但影响音符的显示方式。

例如,如果标题显示每拍有 100 个节拍,并且拍号的默认值为每节拍 8 个 32 分音符,则距离为 100 个节拍的音符开/音符关对显示为四分之一笔记。如果您将拍号更改为每拍 32 个 32 分音符,则 100 个节拍的长度对应于一个完整的音符。


推荐阅读