midicn音频与音乐制作 EN

MIDI 延迟与抖动

延迟是消息到达晚,抖动是每次晚得不一样;两者都改变律动。

软音源按下键盘有拖尾,录音后音符整体偏后,或前后不稳。多半不是音源慢,而是链路与缓冲。

问题

延迟与抖动常被混为一谈。前者让整段一起晚,后者让每个音晚得不同。前者可以补偿,后者只能减小。

协议或消息

MIDI 1.0 的串行速率是 31250 比特每秒,一个字节约 320 微秒,一条三字节消息接近 1 毫秒。USB MIDI 1.0 类按 1 毫秒帧打包,驱动再打时间戳。延迟来自缓冲、驱动与音频接口;抖动来自帧对齐与系统调度。时钟抖动会让跟随设备忽快忽慢。

参数与做法

先测回环延迟,再调缓冲。录音时用直接监听,或开启延迟补偿。不要把缓冲区压到爆音。多设备级联时把最慢的一台放末端。时钟只留一个主源。

听什么

整体偏后像拖拍,抖动像鼓手不稳。低频与鼓点最敏感,几毫秒就能听出松。

常见误解

延迟不是音源的问题。降低缓冲不总是更好。MIDI 时间戳不等于音频采样位置。

在库中听例子

Piano Sonata in C minor · 1. AllegroC19:59演奏的微时间写成 2647 条速度事件,落点本来就不在网格上详情rock · 100 BPM · beat 4/4C12:43100 BPM 的鼓循环只有 5.5% 的音落在十六分网格,律动靠偏移详情Tristan und Isolde WWV 90C112:3421709 个音符里不到一半对齐十六分网格,速度变化有 40 处详情

每首均来自 midicn-lib,行内徽标为许可档位(C1 可商用 / C2 非商业 / C3 仅学习研究)。

事实来源

  • MIDI 1.0 串行速率与 USB MIDI 类帧长的公开定义,依规范核查,未抄文本
  • 本库文件的音符落点统计,由本地 SMF 解析脚本核对,数值随文件而定

仅用于核查事实,正文为原创撰写。