MIDI 鼓垫 · Velocity · Aftertouch
MIDI 鼓垫的 Velocity 与 Aftertouch 有什么区别?
Velocity(力度)回答的是“这次音符起音以什么初始值被触发”;Aftertouch(触后)回答的是“音符已经按下后,设备是否继续发送压力变化”。不要只凭声音猜。用两块发送不同音符编号的 Pad 做 P0–P3 四阶段测试,分开保存实时输入、录制事件、重开后的存储、回放输出与接收端结果,才能知道差异停在哪一层。
范围:本文面向能发送 MIDI、能显示原始消息且至少有两块不同音符编号 Pad 的受控测试链路,重点讨论常见 MIDI 1.0 Note On velocity、Polyphonic Key Pressure 与 Channel Pressure。Control Change(CC)、弯音、MIDI 2.0 高精度数据和厂商专用消息是不同的原始消息问题;MPE 则是通道分配语境,可在成员通道上使用 Channel Pressure 等普通消息,所以本文把“路由语境”和“原始类型”分开记录。文中的 0–127 是 MIDI 数据值,不是分贝(dB)、牛顿或跨设备可直接比较的物理压力。本文不声称 FingerDrum 支持 Aftertouch,也不把“没有压力消息”自动判定为硬件故障。P0–P3 探针、证据账本、结果代码、受控接收端 A/B 与停止规则,是 FingerDrum 编辑团队基于文末资料设计的诊断框架。
Note On velocity 随起音事件一起出现,描述这次起音的初始演奏值。按住后继续施压时,若出现 Polyphonic Key Pressure,消息会带一个音符编号;若出现 Channel Pressure,消息只有通道范围的压力值,不带音符编号。无论收到哪一种 pressure,声音是否变化仍取决于接收端是否支持并映射该消息。先看原始事件,再听声音。
Velocity、Polyphonic Key Pressure 与 Channel Pressure 不是同一层数据
MIDI Association 对常见通道语音消息的说明给出了最重要的分界:Note On 后面包含音符编号和 velocity;Polyphonic Key Pressure 包含音符编号与压力量;Channel Pressure 只需要压力值。也就是说,三者不仅名称不同,消息所能指向的范围也不同。
| 消息 | 何时观察 | 原始数据能回答什么 | 不能单独证明什么 |
|---|---|---|---|
Note On + velocity | Pad 产生一次起音时 | 哪个音符被触发,以及这次起音携带的初始 velocity | 按住后是否继续感知压力;声音到底有多少 dB |
Polyphonic Key Pressure | 音符按下后继续改变压力时 | 压力值以及它所对应的具体音符编号 | 接收音色一定会改变;其他 Pad 一定不受音色设计影响 |
Channel Pressure | 音符按下后继续改变压力时 | 某一 MIDI 通道当前收到的通道级压力值 | 是哪一块 Pad 产生该值,因为消息本身不带音符编号 |
Control Change:通道、控制器编号、数值 | 设备把压力动作映射到某个 CC 时 | 哪个通道上的哪个 CC 在变化 | 它自动等同于 Polyphonic Key Pressure 或 Channel Pressure |
已确认的 MPE-member 路由,以及其中实际出现的 Channel Pressure、CC、Pitch Bend 等事件 | 设备处于已记录的 MPE 配置时 | 原始事件类型,以及被分配给一个音符的成员通道 | 不能把 MPE 当作第五种原始消息;它只是路由语境 |
“初始”也不等于“之后永远不变”。接收端可以用 Note On velocity 选择采样层、包络或音量,也可以完全采用另一种映射;但同一条 Note On 中的 velocity 仍属于起音数据。Aftertouch 则是起音之后发送的压力信息。若只查看最后听到的响度,就会把发送端消息、音色映射和音频结果混成一个问题。
固定两块 Pad、一个通道、一个原始消息视图与两个接收状态
- 选择 Pad A 与 Pad B:确认两者发送不同音符编号,并让经典 P2 使用同一个普通 MIDI 通道。记录编号与通道,不要在测试中途重新映射。若两块 Pad 的音符相同,P2 无法判断复音压力属于哪一块;若已知 MPE 配置把它们分到不同成员通道,则标记
MPE-member、另记实际事件类型,并退出普通同通道 P2。 - 打开原始消息视图:它至少要能区分消息类型、通道、音符编号(如适用)、数值和先后顺序。音符条的颜色、波形或响度表不能代替原始 MIDI 事件。
- 建立空白工程副本:关闭量化、MIDI 变换、合并或过滤;只保留这一输入端口与一条测试轨。每一遍另存原始录制,不在验证前手工补画 pressure。
- 准备 Receiver A:选一个能稳定发声、但没有主动压力映射的中性接收状态,用来证明“收到音符”不等于“必然听到触后”。
- 暂不配置 Receiver B:P0–P3 先只读原始消息;确认实际类型并完成回放后,再在同一音色副本上只映射这一类型。使用安全监听音量;持续音色比极短的一次性鼓声更容易显示起音后的变化。
- 写下设备模式:若发送器可选择 Channel、Poly、MPE 或关闭 pressure,记录本轮的准确模式。Yamaha FGDP-30 的官方指南分别提供 Note On 的输出与 velocity 设置,以及 Aftertouch 的输出、类型、曲线、最小值与最大值设置;不能只看“力度曲线”推断触后状态。
每个阶段至少重复四次相同手势,但不要追求四个完全相同的数值。目标是确认消息类型和作用范围能否重复出现,而不是把手指压力当作校准过的测力计。如果需要先确认 Pad A/B 的音符编号,使用独立的MIDI 鼓垫音符映射检查;如果问题只是轻重击的 Note On velocity 分布,则改用力度校准流程。
P0–P3:先做短击基线,再扩大到双 Pad 和录制回放
每次只改变协议指定的一个条件。P0 与 P1 都要分别为 Pad A、Pad B 建立起音和单 Pad 压力基线;P2 才同时按住两块 Pad;P3 不再改变手势,而是检查已观察到的消息能否穿过录制、重开与回放。每个手势做四遍。下面的“预期”不是要求设备必须发送 pressure,而是说明出现某类原始消息时该如何分类。
| 阶段 | 固定手势 | 观察窗口 | 要保存的证据 | 本阶段回答的问题 |
|---|---|---|---|---|
P0 短击基线 | 先对 A 快速敲击并释放四遍,再对 B 做四遍;不刻意按住 | 每次 Note On 到对应释放之后 | 消息类型、通道、A/B 音符编号、Note On velocity、时间顺序 | 两块 Pad 的起音身份,以及 velocity 是否确实属于各自 Note On |
P1 单 Pad 持压 | 敲下 A,保持接触,再逐渐增加和减小压力;四遍后对 B 做同样四遍 | 每次从 Note On 前到完全释放后 | Note On 之后是否出现 Key Pressure、Channel Pressure 或其他原始事件;各消息包含哪些字段 | 每块 Pad 在当前模式下是否产生起音后的 pressure |
P2 双 Pad 范围 | 让 A/B 处于同一普通通道;按住两者,只改变 A,再只改变 B;总做四遍并交替先敲哪块 | 两音都保持期间,分开标记 A 段与 B 段 | Pressure 是否带 A/B 的音符编号;若不带,记录共享通道和消息顺序 | 证据支持音符级 PPA,还是只支持普通共享通道上的 CPA |
P3 录制、存储与回放 | 录下一个已在 P1/P2 重复成功的手势,检查事件,保存副本并重开,再关闭实时输入后原样回放 | 实时输入、录制事件列表、重开后的存储、回放输出四处 | 同一消息在每层是否存在,类型、通道、音符编号与值序列是否仍可辨认 | 压力证据是否在采集、持久化或输出层丢失 |
P2 的关键不是“两个声音是否一起变亮”,而是原始消息是否能指向具体音符。Polyphonic Key Pressure 带音符编号,因此可将观察到的压力事件归到 A 或 B;普通共享通道上的 Channel Pressure 不带音符编号,只能说明整个通道收到一个压力值。MPE 可把一个音符分配给一个成员通道,让该通道上的 Channel Pressure 获得逐音意义,但原始类型仍是 CPA,MPE-member 只是另记的路由语境,不能参加普通同通道 P2。
P3 必须把四层证据分开:先保留实时原始记录,再检查刚录下的事件列表;随后保存工程或副本、关闭并重新打开,确认事件类型和字段仍在;最后禁用实时输入或 MIDI Thru,把重开的片段发往第二个输出监视点。Apple Logic Pro 使用手册分别列出“触后事件”和“复音触后事件”,后者在事件列表中包含音符编号和值。若所用软件不存储或不回放该事件类型,应如实记录限制,不要用听感补齐证据。
账本要分开保留实时、录制、重开、回放与接收证据
每次测试占一行;不要只保存一张最终截图。数值可以写观察到的范围,但不能把 0–127 换算成 dB,也不能拿不同设备的 96 与 96 推断物理压力相等。下面是空白账本的填写规则,不是任何设备的实测结果。
| 阶段/遍次 | 实时原始消息 | 录制事件列表 | 重开后存储 | 回放输出 | Receiver A / B | 代码 |
|---|---|---|---|---|---|---|
P0 / A-01 | 填写 Note On 的通道、音符、velocity | — | — | — | 未测试 | VEL |
P1 / A-01 | 填写 PPA、CPA、其他事件或无 pressure | 确认实际录制后再填 | 确认重开后再填 | 确认实际输出后再填 | 完成 P3 后再做 A/B | PPA、CPA、ALT 或 NONE |
P2 / A | 填写消息是否带 A 的音符编号;若为 MPE,另记成员通道语境 | 逐项核对,不复制实时栏 | 逐项核对,不复制录制栏 | 逐项核对,不复制重开栏 | 只记可重复变化 | PPA、CPA 或 ALT |
P3 / replay | 保留录制当时的原始记录 | 填写事件类型与字段 | 填写重新打开后是否仍在 | 填写实际回放消息 | 填写同一片段的 A/B 差异 | CAP、OUT、MAP 或 PASS |
VEL:观察到 Note On 起音 velocity;继续 P1,不把它改名为 Aftertouch。PPA:Note On 之后出现带音符编号的 Polyphonic Key Pressure;账本必须写明是 A 还是 B。CPA:Note On 之后出现 Channel Pressure;原始消息只能归到通道。若是 MPE 成员通道,另加MPE-member路由标签。ALT:观察到 CC 或其他非 PPA/CPA 表情消息;保留确切类型,按其文档另测。NONE:受控路径与设置复核后,没有可重复的 pressure 相关原始事件;这是有边界的观察,不等于硬件损坏。RTRG:继续按压却产生了非预期的新 Note On;先隔离重触发、阈值、Note Repeat 或 MIDI echo。CAP:实时有 pressure,但录制列表或重开后的副本未保留;下一步只检查录制过滤、事件支持与存储。OUT:重开后的事件存在,但回放监视点没有相同类型;下一步只检查输出路由或回放过滤。MAP:正确消息到达接收端,但 Receiver B 没有预期变化;下一步检查接收支持、类型、通道和映射。PASS:消息类型、范围、录制、重开、回放与受控接收响应都已有对应证据。
代码可以叠加,但每个代码必须描述不同层。例如 CPA+OUT 表示原始类型是 Channel Pressure,而第一个下游失败点在回放输出;不能靠叠加代码掩盖尚未确定的消息类型。
用同一段 MIDI 做 Receiver A/B,声音才是下游证据
只有 P3 证明可重复的 PPA 或 CPA 已经穿过重开与回放后,才锁定同一段片段,先发给 Receiver A,再发给 Receiver B。两端必须使用相同的基础音色、音量、通道和回放范围;唯一计划中的差异,是 B 开启一个与账本原始消息类型相符的 pressure 映射。不要边听边改变 velocity 曲线、包络、压缩器和效果器。
| 可重复结果 | 证据允许的结论 | 证据不允许的结论 |
|---|---|---|
| A 不变,B 随回放 pressure 改变 | 该回放消息到达 B,且 B 的当前映射产生了可观察结果 | 所有接收器都会这样响应;数值就是声音的 dB |
| A、B 都不变,但回放监视点有 pressure | 发送、存储和回放链路至少保留了该消息;继续查接收支持或映射 | 发送 Pad 没有 Aftertouch 或已经损坏 |
| A、B 都改变 | A 可能存在默认或隐藏映射,A/B 控制条件不成立 | Pressure 天然控制某个固定声音参数 |
| B 只随新的 Note On 改变 | 听到的差异可能仍来自 velocity、采样选择或重新触发 | 已经证明起音后的 pressure 正在控制声音 |
极短的鼓采样可能在压力变化前已经结束,所以“听不出变化”尤其弱。测试时可以临时使用持续音色,让 B 的调制目标有时间表现;这只是消息链路探针,并不是要求实际鼓音色必须用 Aftertouch。Ableton Push 手册也把击打并按住后的压力描述为触后,并说明它通常作为持续阶段的调制源;同一手册把 MPE、Poly Aftertouch(复音触后)和 Mono Aftertouch(通道级/所有音符共享)列为不同表情模式,因此切换设备模式后必须重新开始账本。
没有 pressure 时,从第一个未知层开始查,不要直接判硬件故障
- 先重做手势:确认该表面允许按住后继续施压,而不是只对敲击峰值敏感。四遍都没有 pressure 才进入下一步。
- 查设备能力与模式:设备可能不支持 pressure、只在特定 Pad 支持、输出被关闭,或当前设为另一种模式。只使用该型号的官方手册,不从相似产品推断。
- 查实时入口:更换已知可用的监视工具或输入端口;不要先改接收音色。若消息在入口已经不存在,声音层无法补救。
- 查工程存储:若实时有而片段内无,检查录制过滤、事件类型支持和 MIDI 变换。先保留原始工程副本。
- 查回放输出:若事件存在而输出无,检查轨道路由、通道重写和输出过滤。
- 最后查接收映射:只有回放消息已经到达接收端后,才用 Receiver A/B 判断映射和音色响应。
如果 P0 的 Note On velocity 固定不变,先把固定值与相关设置记入账本,仍可继续 P1–P3;不要用 pressure 结果解释起音为何固定。完成本测试后,再用固定 MIDI 力度审计单独追查起音路径。若目标是决定表演该录成 MIDI 还是音频,则在确认事件链路后继续阅读手指鼓 MIDI 与音频录制对比。
MIDI 鼓垫 Velocity 与 Aftertouch 常见问题
Aftertouch 是第二个 velocity 吗?
不是。Note On velocity 属于音符起音事件;Aftertouch 是音符按下后产生的 pressure 消息。两者都可能用 0–127 显示,不代表它们是同一字段或同一时刻。
Polyphonic Key Pressure 与 Channel Pressure 最直接的区别是什么?
前者包含音符编号,能在消息层指向一个具体音符;后者没有音符编号,只给出该 MIDI 通道的压力值。双 Pad 的 P2 正是用来显示这个作用范围差异。
数值 127 是否等于最大音量或 0 dB?
不是。127 是常见 MIDI 1.0 七位数据范围的一端,不是声压级或接收器音量单位。接收端如何把它映射到音量、滤波器、音高或其他参数,取决于具体实现。
按住 Pad 没有 pressure,是否说明设备坏了?
不能这样判断。设备可能不支持该功能、当前输出关闭、只支持某些 Pad、使用不同表情模式,或者消息在驱动、过滤、录制或路由层被丢弃。先按 P0–P3 找到第一个失败层。
MPE 与 Polyphonic Aftertouch 是同一种消息吗?
不是。MPE 是演奏与通道分配方法,不是原始 Channel Voice 消息。一个成员通道可以为其分配的音符发送普通 Channel Pressure、CC 或 Pitch Bend;应先记录确切事件,再另加 MPE 成员通道语境。逐音表现本身不能证明原始事件是 Polyphonic Key Pressure。
为什么消息存在,鼓音色却没有变化?
接收器必须支持并映射相应 pressure,且声音要持续足够久才能听见起音后的变化。用持续测试音色和 Receiver A/B 隔离这两个条件;不要靠反复重击制造看似变化的结果。
P1/P2 后要分支。若直接路径与已记录设置反复得到 NONE,写下这个有边界的结果后停止,因为没有 pressure 事件可供存储或映射。若结果是 ALT,或已确认的 MPE-member 路由退出普通同通道 P2,则保留确切原始事件,只转入对应专项协议。只有普通路径上可重复的 PPA 或 CPA 才继续 P3 与 Receiver A/B;该分支的实时、录制、重开、回放与接收证据一致时记为 PASS,若出现 RTRG、CAP、OUT 或 MAP,就在第一个失败层停止并只修该层。
来源与访问日期
以下官方资料支持 Note On velocity、Polyphonic Key Pressure、Channel Pressure 的字段与范围差异,MPE 的成员通道分配,设备可将 Note On 和 Aftertouch 分开配置,不同表情模式需要区分,以及 DAW 可把两类触后作为不同事件查看。它们没有提出 P0–P3、本文证据账本、结果代码、Receiver A/B 或停止规则;这些是 FingerDrum 的原创综合。
- MIDI Association — About MIDI Part 3: MIDI Messages(访问于 2026-10-13)
- MIDI Association — MIDI Polyphonic Expression 规范获采纳(访问于 2026-10-13)
- Yamaha FGDP-30 用户指南 — MIDI 相关设置、Note On 与 MIDI Aftertouch(访问于 2026-10-13)
- Ableton Push 3 手册 — Expression 选项与富有表现力的演奏(访问于 2026-10-13)
- Apple Logic Pro 使用手册 — 触后事件(访问于 2026-10-13)
- Apple Logic Pro 使用手册 — 复音触后事件(访问于 2026-10-13)