订单满 $200 免全球运费。
返回实验室

Control Change (CC) 消息详解

进阶2025-02-01

Control Change (CC) 是 MIDI 协议中最灵活、最强大的消息类型之一。从调制轮到表情踏板,从音量控制到效果参数,CC 消息几乎承载了所有实时控制需求。本文基于 MMA 官方规范,完整解析 CC 消息体系。

1. CC 消息结构

CC 消息使用状态字节 0xB0-0xBF(通道 1-16),后跟两个数据字节:CC 编号 (0-127) 和 CC 值 (0-127)。CC 编号的高 7 位可表示 128 个控制器,但通过 MSB/LSB 配对(CC#0-31 与 CC#32-63),可实现 14-bit 高精度控制(值范围 0-16383)。

Status:  0xBn  (n = channel 0-15)
Data 1:  0xCC  (CC number 0-127)
Data 2:  0xVV  (CC value 0-127)

Example: Channel Volume (CC#7) = 100 on Channel 1
  → 0xB0 0x07 0x64

2. CC 控制器分类

MIDI 1.0 规范将 128 个 CC 编号分为几个功能区间:

CC#0-31
14-bit 控制器 MSB(粗调)
CC#32-63
14-bit 控制器 LSB(精调)
CC#64-69
开关型控制器(开/关)
CC#70-79
声音控制器(合成器参数)
CC#80-83
通用控制器(MS-3 用于 Loop 控制)
CC#91-95
效果深度(混响/合唱等)
CC#120-127
通道模式消息(特殊功能)

3. 完整 CC 对照表

CC#名称范围类型说明
0Bank Select0-127MSB14-bit bank select for patch/preset groups
1Modulation Wheel0-127MSBTypically vibrato depth
2Breath Controller0-127MSBWind controller breath pressure
4Foot Controller0-127MSBExpression pedal input
5Portamento Time0-127MSBGlide speed between notes
6Data Entry MSB0-127MSBUsed with RPN/NRPN to set parameter values
7Channel Volume0-127MSBPer-channel volume level
8Balance0-127MSBStereo balance (0=left, 64=center, 127=right)
10Pan0-127MSBMono pan position
11Expression0-127MSBExpression pedal, scales channel volume
12Effect Control 10-127MSBGeneric effect parameter 1
13Effect Control 20-127MSBGeneric effect parameter 2
64Damper Pedal (Sustain)0-63=Off, 64-127=OnSwitchSustain pedal (piano style)
65Portamento On/Off0-63=Off, 64-127=OnSwitchToggle portamento/glide
66Sostenuto0-63=Off, 64-127=OnSwitchSustain only held notes
67Soft Pedal0-63=Off, 64-127=OnSwitchReduce note velocity/dynamics
80General Purpose 50-127MSBMS-3: Loop 1 control (0-63=Off, 64-127=On)
81General Purpose 60-127MSBMS-3: Loop 2 control
82General Purpose 70-127MSBMS-3: Loop 3 control
83General Purpose 80-127MSBGeneral purpose controller
91Reverb Send Level0-127MSBEffects 1 Depth (reverb)
93Chorus Send Level0-127MSBEffects 3 Depth (chorus)
100RPN LSB0-127SpecialRegistered Parameter Number - LSB select
101RPN MSB0-127SpecialRegistered Parameter Number - MSB select
120All Sound Off0ModeImmediately mute all oscillators
121Reset All Controllers0ModeReset all CC values to defaults
122Local Control0=Off, 127=OnModeToggle keyboard-to-sound engine link
123All Notes Off0ModeRelease all active notes
126Mono Mode On0-16ModeSwitch to monophonic mode
127Poly Mode On0ModeSwitch to polyphonic mode

4. RPN:注册参数号

RPN 是 CC 消息的扩展机制,用于设置已在 MMA 注册的标准参数。设置 RPN 需要三步:1) 发送 CC#101 (MSB) + CC#100 (LSB) 选择参数号;2) 通过 Data Entry(CC#6 MSB + CC#38 LSB)设置值;3) 可选地发送 RPN Null (CC#101=0x7F, CC#100=0x7F) 以禁用数据入口。

MSBLSB参数说明
0x000x00Pitch Bend SensitivityMSB=半音数, LSB=音分数
0x000x01Channel Fine Tuning00 00=-100音分, 40 00=A440
0x000x02Channel Coarse Tuning00=-64半音, 40=A440
0x000x05Modulation Depth RangeGM2 颤音深度
0x7F0x7FNull / Reset RPN禁用数据入口,等待新 RPN

5. 通道模式消息

CC#120-127 保留为通道模式消息。与普通 CC 不同,通道模式消息改变通道的运作模式而非控制声音参数。All Sound Off (CC#120) 和 All Notes Off (CC#123) 在效果器切换场景中尤为重要——它们可以干净地停止所有当前发声。Local Control (CC#122) 用于断开键盘与音源引擎的直接连接,在 DAW 录音时避免双重触发。

6. MS-3 上的 CC 实战

MS-3 利用 General Purpose 控制器(CC#80-82)来控制 3 组 Loop 的开关状态。值 0-63 为关闭,64-127 为打开。此外,CC#102/103 用于预设切换,CC#90/91 用于 Tap Tempo。这意味着任何 MIDI 控制器(外部脚踏控制器、DAW、MIDI 键盘)都可以通过发送这些 CC 消息来控制 MS-3 的每一项功能。

7. 最佳实践

使用 CC#7(Channel Volume)时配合 CC#11(Expression)实现相对音量控制
需要高精度参数时(如弯音范围),使用 14-bit MSB/LSB 配对
预设切换前先发送 CC#123 (All Notes Off) + CC#120 (All Sound Off) 避免卡音
利用 CC#121 (Reset All Controllers) 在曲目开始前重置所有参数到默认值
避免在密集序列中每秒发送过多 CC 消息——MIDI 带宽有限(31.25 Kbaud),过多消息可能导致延迟

8. 总结

Control Change 消息是 MIDI 实时控制的基石。从基础的音量/表情控制,到 RPN 的精确参数调节,再到 MS-3 的 Loop 切换——理解 CC 消息体系能让你真正掌控自己的设备链。在 LdA 生态中,CC 消息是实现无缝效果器切换的核心机制。