简体中文

什么是 MIDI NRPN?

在 Mac App Store 下载 InputConfigInputConfig 在 Mac App Store 免费提供。支持 macOS 14 或更高版本,无需账户,不追踪,开源。

NRPN,也就是非注册参数编号(Non-Registered Parameter Number),是一种控制比 128 个 Control Change 编号更多设置的办法。它由按顺序发送的普通 Control Change 消息组成:CC 99 和 CC 98 选择哪个参数,然后 CC 6 和 CC 38 设定它的数值。这样就有 16,384 个参数,每个参数的数值最多有 16,384 步。RPN 用 CC 101 和 CC 100 以同样的方式工作,对应一小批所有厂商共用的参数。

这套办法是 MIDI 标准的一部分。哪个 NRPN 编号做什么由每台合成器的厂商决定,列表在它的手册里。

逐条消息读懂 NRPN

步骤消息带的内容
1CC 99参数编号的粗调一半(MSB)
2CC 98参数编号的细调一半(LSB)
3CC 6,Data Entry数值的粗调一半(MSB)
4CC 38数值的细调一半(LSB),如果这个参数用到它

CC 96 和 CC 97 可以接在后面代替数值,把选中的参数加一或减一。前两条消息指向一个设置,后两条消息去改它。

认识已注册的那些

RPN,也就是注册参数编号(Registered Parameter Number),用 CC 101 和 CC 100 选择参数,数值同样用 CC 6 和 CC 38。它的编号在每台设备上意思都一样。

RPN(MSB,LSB)参数
0,0弯音范围,单位是半音和音分
0,1微调音高
0,2粗调音高
127,127空值:没有选中任何参数

注册的意思是大家都认同,非注册的意思是由厂商自己定义。MIDI 弯音轮解释了 RPN 0 设定的范围。

走一个例子

在通道 1 上把弯音范围设为 12 个半音,需要四条消息,再用两条消息把门关上。

字节(十六进制)含义
B0 65 00CC 101 为 0:RPN,粗调一半是 0
B0 64 00CC 100 为 0:RPN,细调一半是 0,于是选中了弯音范围
B0 06 0CCC 6 为 12:十二个半音
B0 26 00CC 38 为 0:没有额外的音分
B0 65 7F,B0 64 7FRPN 空值,这样之后的 CC 6 不会意外改动任何东西

最后要发送空值,否则下一条 Data Entry 消息还会落在同一个参数上。把其中任何一条粘贴到 MIDI 消息解码器里就能检查。

区分 NRPN 和 CC

Control ChangeNRPN
一次改动需要的消息数一条三条或四条
参数数量128 个,很多有固定用途16,384 个
数值范围0 到 127最多 0 到 16,383
编号由谁定义常用的由 MIDI 标准定义每个厂商自己定义

CC 简单但粗,NRPN 精细但要发更多消息。

知道什么时候需要用它

合成器手册里你想要的设置只以 NRPN 列出时,或者 128 步太粗、你能听出跳动时,就用 NRPN。其他情况下,普通的 CC 更容易,大多数 DAW 一秒钟就能 MIDI 学习它。我做的免费 Mac App InputConfig 用游戏手柄发送的是单条消息:音符、Control Change、弯音轮或 Program Change。如果合成器把同一个设置也做成了 CC,就用 CC。MIDI CC 列表给出了标准的那些的名字。

简短总结

  • NRPN。CC 99 和 98 选择,CC 6 和 38 设定。由厂商定义。
  • RPN。CC 101 和 100 选择,CC 6 和 38 设定。属于标准。
  • 收尾。发送 127 和 127 来取消选择。

一个 NRPN 是四条 Control Change 合起来当一条用。

常见问题

NRPN 是什么的缩写?

Non-Registered Parameter Number,即非注册参数编号。非注册的意思是每个厂商自己决定它的编号控制什么。

哪些 CC 编号组成 NRPN?

CC 99 和 CC 98 选择参数,CC 6 和 CC 38 设定它的数值。CC 96 和 CC 97 用来把数值加一或减一。

NRPN 和 RPN 有什么区别?

它们的工作方式相同。RPN 用 CC 101 和 CC 100 选择,编号是标准的,比如弯音范围。NRPN 用 CC 99 和 CC 98 选择,编号由厂商决定。

NRPN 和 CC 有什么区别?

CC 是一条消息,数值从 0 到 127。NRPN 是按顺序发送的三条或四条 CC 消息,可以触及 16,384 个参数,数值最高到 16,383。

怎样通过 MIDI 设置弯音范围?

发送 RPN 0:CC 101 为 0,CC 100 为 0,然后用 CC 6 给出半音数,用 CC 38 给出音分。最后把 CC 101 和 CC 100 都发为 127 来结束。

为什么我的合成器无视 NRPN?

四条消息必须按顺序到达合成器所用的通道,编号必须是它的手册里列出的,而且有些合成器需要在设置里打开 NRPN 接收。

更多中文页面

详细指南(英文)

作者说明。Ryleigh Newman 开发了 InputConfig,因为双手活动不便,每天都用手柄操作自己的 Mac。本页译自英文。Mac 的语言设为简体中文时,App 的主要按钮和菜单显示为中文,本页使用这些名称,并在括号中附上英文名称。App 的其他部分和网站的其他页面都是英文。

本页的其他语言版本: English, العربية, Čeština, Dansk, Deutsch, Español, Suomi, Français, עברית, Magyar, Bahasa Indonesia, Italiano, 日本語, 한국어, Norsk, Nederlands, Polski, Português, Русский, Slovenčina, Svenska, ไทย, Türkçe, Українська, Tiếng Việt, 繁體中文

在 Mac App Store 下载 InputConfig免费。macOS 14 或更高版本。无需账户,数据不会离开你的 Mac。 源代码在 GitHub 上.