Ardour/Using-control-surfaces/Generic-midi/Working-with-encoders
来自motewiki
更多操作
Encoders(编码器)在 controller 上越来越常见。它们复用 CC 的 MIDI event,但没有标准方式表示自身信息。本页讨论发送 direction + offset(增量)的 encoder,而不是发送绝对值的(后者用 `ctl` 即可)。
7-bit encoder 支持四种类型(选错会导致正向或反向一侧行为异常,无法自动检测,需查设备规格或试错):
- `enc-r`:Relative Signed Bit——最高位为 sign(正向),低 6 bit 是 offset(`0svvvvvv`)
- `enc-l`:Relative Signed Bit 2"——最高位为 0 时正向(方向与 enc-r 相反);Mackie Control Protocol 用这种
- `enc-2`:Relative 2s Complement——正 offset 1–64,负 offset 用 2's complement 编码(signed 7-bit int)
- `enc-b`:Relative Binary Offset——正 offset = offset+64,负 = 64-offset;64 为零
14-bit encoder:
- `rpn-delta`:值为 signed 14-bit,加到当前值上
- `nrpn-delta`:同上(NRPN 版本)
- 许多 controller 有多种 encoder 编码可切换,请以设备 manual 为准