Note Repeat · 节奏细分 · 原始 MIDI · 边界排错
Note Repeat 换细分为什么会多打一击或漏一击?四拍 MIDI 边界测试
一条滚奏在持续固定 rate 时正常,持续按住 Pad 切换速率却可能在数字拍附近多一击、少一击,或只是声音拖尾让人误判。先编出一小节目标 T,再以 B0 → C → B1 的顺序录原始 MIDI:四个半开拍窗应分别容纳 2、4、3、2 个 Note On,共 11 个;下一小节第 1 拍只作右边界锚点,不混进得分。
适用范围:这是一项面向支持 Note Repeat、能在持续按住时切换 rate、并能捕获或监视其原始 MIDI 输出的外部硬件或软件系统的诊断流程。本文只把这些行为归给文中列明的外部产品,不把 Note Repeat 描述为 FingerDrum 的内建能力。厂商文档会说明各自的可选细分、按住/锁存、力度或 gate 控制,但并没有跨产品共同保证“mid-hold 换 rate 时如何重新定相”。11 击是本文预先声明的编程目标,不是所有设备规格。T/B0/C/B1、半开窗口、右边界锚点、对照矩阵和停止规则是 FingerDrum 的原创综合;没有通用 BPM、毫秒容差或指法。
把每拍写成 [本拍拍点, 下一拍拍点):包含左端,不包含右端。按这个测试目标,第 2、3、4 拍上的事件都归切换后的新 rate;下一小节第 1 拍也不属于第 4 拍窗口。这样,边界 Note On 不会被旧、新两段各算一次。连续一小节的目标是 1/8 → 1/16 → 1/8T → 1/8,计数为 2 + 4 + 3 + 2 = 11。
先区分四种证据:本文只用 onset 给 11 击计数
MIDI Association 把 Note On、Note Off 与力度作为可区分的消息或数据。Apple 的 Logic Pro 中文手册也把 Note Repeat 的速率、力度与门时长列为不同参数。因此,本文说“多一击”时,严格指测量窗内多了一个同音符、同通道的有效 Note On 起点(onset);不是音符画得更长、力度变了,或混响多响了一会儿。
| 证据层 | 本轮记录什么 | 不据此增加击数 |
|---|---|---|
| Onset / Note On | 时间位置、音符编号、通道,以及监视器解析出的有效起音 | MIDI 1.0 中以 velocity 0 Note On 编码的释放事件 |
| Gate / 音长 | Note On 到对应释放事件的显示长度 | 长条跨过边界,或 Note Off 恰在边界 |
| Velocity / 力度 | 每个 Note On 的力度值,另列观察 | 同一击因压力改变而更响 |
| 音频尾音 | 干声衰减、混响、延迟、voice 交叠 | 没有新增 Note On 的第二个峰或尾巴 |
先保存未量化的 MIDI。输入量化可能把边界前后的起点吸到同一拍点,删除你要检查的微小先后;音频则可能把两个很近的起点揉成一声。以录音端对当前 MIDI 版本的解析结果为准;若查看 MIDI 1.0 原始消息,不要把 velocity 0 的 Note On 释放编码再算成一次起音。原始事件是第一份证据,量化副本与音频只做后续解释。
T:不用 Note Repeat,先编出唯一的四拍目标
在一个 4/4 MIDI clip 中手动画出同一音符、同一通道的目标 T。关闭 Note Repeat,并让每个 Note On 的力度一致;gate 只需在当前工程内统一且短于最密的相邻间隔,不必换算成通用毫秒。再在下一小节第 1 拍画同一音符,标成 X 右边界锚点。T 画面共有 12 个起点,但评分区间 [本小节第 1 拍, 下一小节第 1 拍) 只有 11 个。
| 半开窗口 | 目标 rate | Note On 位置 | 计数 |
|---|---|---|---|
[1, 2) | 1/8 | 1、1& | 2 |
[2, 3) | 1/16 | 2、2e、2&、2a | 4 |
[3, 4) | 1/8T | 第 3 拍及该拍内第二、第三个八分三连音点 | 3 |
[4, 下一小节 1) | 1/8 | 4、4& | 2 |
| 下一小节第 1 拍 | X | 右边界锚点;保留在画面中 | 不计 |
这里的“新 rate 取得左端边界”是测试判定规则,不是对设备内部调度器的描述。T 回答“我们想得到什么”;捕获 C 才回答“这套系统实际做了什么”。若你的编辑器把三连音显示为 tick 或其他拍内单位,只要三点等分一个四分音符拍,并仍用音乐位置报告即可。
录音前冻结变量,不把别的节奏功能带进来
- 固定时钟:全程使用同一 4/4 工程、同一主时钟与同一同步来源。选择便于你操作和查看的速度即可,不公布“正确 BPM”。
- 固定路径:同一 Pad、MIDI 音符编号、通道、轨道、音源与监听路由;使用 momentary / 非锁存模式,让 C 由实际持续按住来定义;系统若做不到,这项精确测试便不适用。记录设备、版本和当前 rate 显示;若系统能输出 rate 控制事件,同时记录它的音乐位置,否则结论只能覆盖整套操作手势。
- 关闭位移器:关闭 swing、groove、humanize、随机概率、琶音,以及录入或回放量化。若某项无法关闭,就把它写进范围,不能再把结果称为直网格测试。
- 保留原始 take:让记录端接收 Note Repeat 生成后的 MIDI,而不是只录按住 Pad 的单个输入音符。看不到生成后的 Note On,就不能完成本文的 11 击检查。
- 分开声音与事件:先用短、清楚、无延迟效果的音色监听,但以 MIDI 列表或 piano roll 计数;不要为了“听清”先改 gate、包络或量化。
Ableton Push 文档说明,按住 Pad 可播放或录制节奏均匀的重复音符,压力可以改变重复音符的力度,Swing 与 Tempo 也会影响结果;Apple 则把速率、力度与 gate 分开。冻结这些变量能减少无关差异,但仍不能排除 C 中一次性的时钟、路由、控制或操作偏差。
B0:每个固定 rate 至少持续三拍,只评分中间完整拍
连续切 rate 之前,先检查固定 rate 能否重复地产生目标密度。为 1/8、1/16、1/8T、1/8 分别录一个独立块;每块让 Pad 在三个完整拍窗内持续按住,只评分中间那拍。第 4 拍专作不评分的释放牺牲窗,第 5 拍才观察是否出现新的残留 onset。第一拍吸收按下/启动边界,第三拍把评分窗与释放动作隔开,第 4 拍又把释放边界移出残留检查。
| 固定 rate 块 | 三拍持续按住 | 只评分第 2 拍 | 第 4 拍释放;第 5 拍观察 |
|---|---|---|---|
| 1/8(开头控制) | 第 1–3 拍保持 | 2 个 onset | 第 5 拍应无新 onset |
| 1/16 | 第 1–3 拍保持 | 4 个 onset | 第 5 拍应无新 onset |
| 1/8T | 第 1–3 拍保持 | 3 个 onset | 第 5 拍应无新 onset |
| 1/8(结尾控制) | 第 1–3 拍保持 | 2 个 onset | 第 5 拍应无新 onset |
四个中间评分窗分别通过 2/4/3/2,第 4 拍释放后,第 5 拍又没有新 Note On,B0 才通过。若固定 1/8T 的中间拍不是三击,或第 5 拍仍继续生成事件,只能说这套固定-rate 手势没有通过本文基线;先检查 rate、momentary/hold、时钟或路由,暂不运行 C。Ableton Note、Yamaha FGDP-50 与 M-Audio Oxygen Pro 的资料都列出直拍与 T 三连音细分,但这些列表只证明各自产品提供相应选项,不替你的系统保证输出。
C:持续按住一小节,只在数字拍切 rate
- 预置 1/8:打开原始 MIDI 录制并给一个不量化的 count-in。在评估小节第 1 拍按下目标 Pad。
- 保持接触:从第 1 拍一直按到下一小节第 1 拍之后;中途不松开、不重击,也不换 Pad。
- 只在数字拍换值:第 2 拍选 1/16,第 3 拍选 1/8T,第 4 拍回 1/8。不要在
e、&、a或三连音中点切换。 - 固定右侧余量:持续录过下一小节第 1 拍,并再保持至少一个当前 1/8 rate 的完整间隔后释放;不要把“看见 X”当成释放提示。若 C 的计数和相位已经符合 T,下一首拍的同音符 Note On 标成 X;它只验证调度跨过评分窗右边界,不属于 11 击评分窗,也不测试释放后的停止行为。
- 不先修:保存 C-raw,再复制为工作副本。不要拖动、删重、量化或合并边界事件。
若界面要求另一只手操作 rate、另有锁存选项,或允许外部控制器切换,请选择能稳定复现的方式、保持锁存关闭并记录;本文不规定指法。若系统无法在保持同一 Pad/音符的同时切 rate,它不适用于这个 mid-hold 测试,不应靠松开重按伪造 C。M-Audio 的文档明确允许在 Note Repeat 激活时改变 time division,但没有承诺改变发生在一拍边界时会如何重新定相;这正是要用原始 MIDI 测的未知项。
B1:重做持续固定-rate 基线,先看前后能否重复
C 后立即重做四个“三拍保持、只评分中间拍、第 4 拍释放、第 5 拍观察”的 B1 块。不要复制 B0 的 MIDI;重新操作可以发现 rate 选择没有回到预期、momentary 状态改变、时钟失步或 Pad 释放行为变化。先逐块比较 B0 与 B1,再把 C 与 T 比较。
- B0 = B1 = 2/4/3/2,第 5 拍观察窗全为 0:固定-rate 基线前后可重复,可以进入 C 的边界判读;这仍不单独证明切换引擎是原因。
- B0 与 B1 不一致:前后状态或操作没有重复;先恢复控制,不给“设备切换算法”下结论。
- B0、B1 一致,但以相同方式偏离目标:固定-rate 手势没有通过本文基线,暂不评分 C。
- 两份基线都通过,C 才偏离:把差异关联到本次完整 mid-hold rate 手势,并把下一轮缩小到最先偏离的边界;若没录到 rate 控制事件,不能只归因于生成器。
不要只看总数:让第一处半开窗口差异决定下一轮
按下表从上往下判断,命中第一行就停止;这样每次只得到一个主结果。B0/B1 不一致优先于基线失败,基线优先于 C,C 的每窗计数优先于相位,相位又优先于右边界 X。若首个差异窗少击或多击,同时记录与 T 的有符号差值,不用后续连锁差异再贴第二个标签。
| 原始 MIDI 结果 | 可支持的判断 | 下一轮只做什么 |
|---|---|---|
| B0 与 B1 不一致 | 控制状态不稳定,C 暂不可解释 | 恢复同一时钟、锁存与 rate 状态后重做整组 |
| B0 与 B1 一致,但两者都偏离固定-rate 目标计数,或释放牺牲窗后的第 5 拍仍有新 onset | 固定-rate 手势没有通过本文基线,C 暂不评分 | 检查 rate、momentary、时钟与路由;记录观察,不强迫它通过 |
| 两份基线通过,但 C 的第 1 拍入口先偏离 T | 差异先出现在按下/启动手势,尚未发生 mid-hold 切换 | 单独重做 C 的入口,并记录按下与首个 onset |
| 两份基线通过;C 的首个差异窗比 T 少击或多击 | 本次完整手势在该边界附近出现 onset 缺额或盈余,不等于已经找到内部原因 | 记录有符号差值,只重复该一处转换并保留控制事件 |
| 四窗计数均为 2/4/3/2,但一个或多个 onset 的拍内相位不同于 T | 计数通过,相位没有符合本文声明的目标 | 保存相位图样,查该产品文档或支持;不要转判 X 缺失 |
| 四窗计数与相位都通过、捕获已越过下一首拍,但 X 缺失或被算进第 4 拍 | 声明的右边界目标未通过,或半开窗口归属用错 | 以固定录音余量只重做最后一个边界 |
| onset 检查通过,只有音长或力度突变 | gate、压力/触后或力度映射改变,不是多击/漏击 | 另开 gate/velocity 测试,11 击结论保持独立 |
| MIDI onset、音长与力度检查通过,音频仍像多响一次 | 采样尾音、效果、voice/retrigger 或瞬态形状仍是候选 | 旁路效果并渲染干声,不移动 MIDI |
| 每窗 2/4/3/2、相位符合 T、X 存在 | 此版本、时钟与完整操作手势符合本文目标 | 保存证据;不要推广成所有设备规格 |
厂商对 rate 选择、按住触发、力度和 gate 的说明各有范围;本文查阅的页面没有给出跨设备通用的 mid-hold phase reset 规则。因此,报告应包含版本、时钟来源、B0/C/B1 原始文件、每窗计数与相位、X 是否存在、rate 控制事件能否捕获,以及哪个边界最先稳定偏离。
为什么不能先量化,再数 11 击?
量化会改写你正在测的起点位置:边界前后的两击可能被吸到一起,也可能被分开。先数原始 MIDI,再在副本上量化,才能分别回答“生成器输出了什么”和“编辑后要保留什么”。
1/8T 为什么一拍是 3 击?
本文把 1/8T 定义为八分音符三连音:一个四分音符拍被等分成三个起点窗口。Yamaha 的中文指南也把带 T 的值说明为对应时值的三连音;这不等于它承诺切换瞬间的相位。
听见两下,就一定有两个 Note On 吗?
不一定。音色可能有双瞬态、delay、release 或重触发行为;反过来,两个靠得很近的 Note On 也可能听成一下。先看事件,再看干声与湿声。
这是 FingerDrum 的内建功能教程吗?
不是。本文不把 Note Repeat 归为 FingerDrum 的内建能力;它提供的是测试支持 Note Repeat 的外部系统时可复用的 MIDI 边界方法。
来源与访问日期
Ableton Note 中文手册说明可按住 Pad 按所选节拍单位重复;Push 中文手册说明按住 Pad 可播放或录制均匀重复音符,并把压力、Swing 与 Tempo 作为相关变量;Apple 中文手册把传入 MIDI 的重复速率、力度与 gate 分开;Yamaha FGDP-50 中文指南记录其 NoteRepRat、当前速度、直拍/三连音值与 hold 行为;M-Audio 列出 Oxygen Pro 的 time divisions,并说明激活 Note Repeat 时可改值;MIDI Association 区分 Note On、Note Off 与力度。它们都没有规定 T/B0/C/B1、半开窗口、2/4/3/2 门槛、11 击总数或 X 右边界锚点,也没有形成所有产品共同的 mid-hold 重新定相承诺。
- Ableton —《Ableton Note Manual》:Pad 的 Repeat 节拍单位(访问于 2026-08-15)
- Ableton —《Push 3 Manual》:使用重复模式进行录音(访问于 2026-08-15)
- Apple —《在 Mac 版 Logic Pro 中使用音符重复》(访问于 2026-08-15)
- Yamaha —《FGDP-50 用户指南》:演奏打击垫时的音符重复(访问于 2026-08-15)
- M-Audio — Oxygen Pro Series: Note Repeat Time Divisions(访问于 2026-08-15)
- The MIDI Association — About MIDI, Part 3: MIDI Messages(访问于 2026-08-15)