midicn音频与音乐制作 EN

Note On 与 Note Off

音符的开始与结束是两条消息,收尾方式决定重叠音与鼓的时值。

一个音要两条消息才完整,开始一条,结束一条。收尾方式决定了断奏、连奏与鼓的时值。

问题

只发 Note On 会留下挂音,Note Off 发早了会截断尾音。重叠的同音更难处理,前一个音的结束消息可能把后一个音一起关掉。

协议或消息

Note On 用 0x9n 加键号与力度,Note Off 用 0x8n。力度为 0 的 Note On 按 Note Off 处理,这是省字节的旧约定。Note Off 自带的释放力度,多数音源并不读取。同一个键连续敲两次时,必须先结束前一个音,否则音源分不清哪条结束消息对应哪个音。文件里事件按 delta 排序,结束消息可以晚于下一个开始。

参数与做法

钢琴长音用 CC64 延音,不要靠拉长 Note Off。鼓通常忽略 Note Off,一次触发就放完整采样。写断奏时把结束提前,而不是把力度压低。

听什么

断奏与连奏的差别就在结束的时刻,提前二十毫秒就能听出干湿不同。重叠音被误关时,尾音会突然消失。

常见误解

Note Off 的释放力度不是音量。不是所有音源都接受力度 0 的写法。音符长度也不等于响度。

在库中听例子

Piano Quartet No 2 in G minor · 1. Allegro molto moderatoC110:42钢琴四重奏,7702 条 Note Off 全写成力度 0 的 Note On详情Piano Sonata No 23 in F minor · 1. Allegro assaiC19:32钢琴奏鸣曲,6615 条 Note Off 全用 0x80 写成,可与上一条对照详情funk-groove1 · 138 BPM · beat 4/4C10:38放克鼓循环,闭镲 42 键重复 101 次,靠 Note Off 切出长短详情

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

事实来源

  • MIDI 1.0 规范对 Note On 与 Note Off 的定义,依 MMA 公开规范核查,未抄文本
  • 力度 0 的旧约定与重叠音处理,依通行音序器文档核查,未抄文本

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