midi - 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 文件中的刻度值如何与乐谱中的音符相关。它不影响发送事件的时间(因此纯播放程序将忽略此消息),但影响音符的显示方式。
例如,如果标题显示每拍有 100 个节拍,并且拍号的默认值为每节拍 8 个 32 分音符,则距离为 100 个节拍的音符开/音符关对显示为四分之一笔记。如果您将拍号更改为每拍 32 个 32 分音符,则 100 个节拍的长度对应于一个完整的音符。
推荐阅读
- python - 如何使用 BeautifulSoup 将抓取列表转换为数据框?
- cassandra - Cassandra 分区键重复?
- swift - 如何为每个修复 geocodeAddressString 闭包
- matlab - 当我在结束函数后进入绘图时,MATLAB 图不会显示
- owl - 在 WebProtege 中,如何引用属性中的子类?
- windows - 如何在 VS Code 中为不同的发行版打开 wsl 工作区?
- c++ - 为什么这段代码执行两次相同的操作?
- vba - 如何使用 MS Access 中的 VBA 关闭 Outlook
- pytorch - pytorch attention seq2seq教程中的错误?
- javascript - 在记忆游戏中有条件地设置状态挂钩的问题