MIDI 延迟与抖动
延迟是消息到达晚,抖动是每次晚得不一样;两者都改变律动。
相关
软音源按下键盘有拖尾,录音后音符整体偏后,或前后不稳。多半不是音源慢,而是链路与缓冲。
问题
延迟与抖动常被混为一谈。前者让整段一起晚,后者让每个音晚得不同。前者可以补偿,后者只能减小。
协议或消息
MIDI 1.0 的串行速率是 31250 比特每秒,一个字节约 320 微秒,一条三字节消息接近 1 毫秒。USB MIDI 1.0 类按 1 毫秒帧打包,驱动再打时间戳。延迟来自缓冲、驱动与音频接口;抖动来自帧对齐与系统调度。时钟抖动会让跟随设备忽快忽慢。
参数与做法
先测回环延迟,再调缓冲。录音时用直接监听,或开启延迟补偿。不要把缓冲区压到爆音。多设备级联时把最慢的一台放末端。时钟只留一个主源。
听什么
整体偏后像拖拍,抖动像鼓手不稳。低频与鼓点最敏感,几毫秒就能听出松。
常见误解
延迟不是音源的问题。降低缓冲不总是更好。MIDI 时间戳不等于音频采样位置。
在库中听例子
Piano Sonata in C minor · 1. Allegro演奏的微时间写成 2647 条速度事件,落点本来就不在网格上详情rock · 100 BPM · beat 4/4100 BPM 的鼓循环只有 5.5% 的音落在十六分网格,律动靠偏移详情Tristan und Isolde WWV 9021709 个音符里不到一半对齐十六分网格,速度变化有 40 处详情
每首均来自 midicn-lib,行内徽标为许可档位(C1 可商用 / C2 非商业 / C3 仅学习研究)。
事实来源
- MIDI 1.0 串行速率与 USB MIDI 类帧长的公开定义,依规范核查,未抄文本
- 本库文件的音符落点统计,由本地 SMF 解析脚本核对,数值随文件而定
仅用于核查事实,正文为原创撰写。