MIDIの信号の種類のひとつで、鍵盤以外の様々な制御情報を伝えるために使用される。例えばボリュームやパン、ペダルやホイールなどの操作もこのコントロールチェンジの信号として伝えられる。 もともとどのようなコントロールチェンジに対応しているかは音源機器しだいであるが、MIDIの共通規格であるGM規格では最低限対応すべきコントロールチェンジが定められている
ソフトシンセの場合は、コントロールチェンジを経由する事で、MIDIコントローラーの物理的なツマミからソフトウェアを制御する事ができる。 多数のツマミを全てコントロールチェンジ経由で制御できるようにするため、MIDI本来の定義とは異なるアサインが使用されている事もある
コントロールチェンジは機能を指定するコントロール番号(7ビット)とデータ値(7ビット)を含む3バイトのMIDIメッセージである。コントロール番号の0~119はそれぞれ制御する対象のパラメータが定められており、また、コントロール番号の120以上は「チャンネルモードメッセージ」と呼ばれ、単にパラメータ値を変化させるだけでなく、そのチャンネル全体の動作モードを指定するメッセージとなる
「MIDI-CC」、あるいは単に「CC」と略される場合がある。コントロールチェンジのコントロール番号を示す際には「CC#」という書き方をする事も多い。コントロールチェンジのデータ値は7ビットで表される0~127の範囲であるが、コントロール番号の0~31はコントロール番号32~63と組にして14ビットのデータとして扱い、0~16384を表すパラメータとして使用する事ができる(音源に依存する)
コントロールチェンジから間接的に操作するパラメータとしてRPNとNRPNが定められており、インデックスの指定に98/99、100/101、データの入力に6/38、データのインクリメント/デクリメントに96/97が使用される。これらはコントロールチェンジだけでは定義し切れないような詳細なパラメータの設定に使用される
コントロールチェンジメッセージ
| 第1バイト | 第2バイト | 第3バイト |
| BXh (X=チャンネル:0-15) |
コントロール番号:(0-119) (120以上はチャンネルモードメッセージ |
データ (0-127) |
コントロール番号
| コントロール番号 | 内容 | 値 |
|---|---|---|
| 0 / 32 | バンクセレクト(MSB/LSB) | (0-127) / (0-127) |
| 1 / 33 | モジュレーション(MSB/LSB) | (0-127) / (0-127) |
| 2 / 34 | ブレスコントローラー(MSB/LSB) | (0-127) / (0-127) |
| 3 / 35 | 未定義 | |
| 4 / 36 | フットコントローラー(MSB/LSB) | (0-127) / (0-127) |
| 5 / 37 | ポルタメントタイム(MSB/LSB) | (0-127) / (0-127) |
| 6 / 38 | データエントリー(MSB/LSB) | (0-127) / (0-127) |
| 7 / 39 | チャンネルボリューム(MSB/LSB) (以前はメインボリューム) |
(0-127) / (0-127) |
| 8 / 40 | バランス(MSB/LSB) | (0-127) / (0-127) |
| 9 / 41 | 未定義 | |
| 10 / 42 | パン(MSB/LSB) | (0-127) / (0-127) |
| 11 / 43 | エクスプレッション(MSB/LSB) | (0-127) / (0-127) |
| 12 / 44 | エフェクトコントール1 (MSB/LSB) | (0-127) / (0-127) |
| 13 / 45 | エフェクトコントール2 (MSB/LSB) | (0-127) / (0-127) |
| 14 / 46 | 未定義 | |
| 15 / 47 | 未定義 | |
| 16 / 48 | 汎用操作子1 (MSB/LSB) | (0-127) / (0-127) |
| 17 / 49 | 汎用操作子2 (MSB/LSB) | (0-127) / (0-127) |
| 18 / 50 | 汎用操作子3 (MSB/LSB) | (0-127) / (0-127) |
| 19 / 51 | 汎用操作子4 (MSB/LSB) | (0-127) / (0-127) |
| 20-31 / 52-63 | 未定義 | |
| 64 | ダンパーペダル(サステインペダル) | 63以下:オフ 64以上:オン |
| 65 | ポルタメント(On/Off) | 63以下:オフ 64以上:オン |
| 66 | ソステヌートペダル | 63以下:オフ 64以上:オン |
| 67 | ソフトペダル | 63以下:オフ 64以上:オン |
| 68 | レガートフットスイッチ | 63以下:ノーマル 64以上:レガート |
| 69 | ホールド2 (フリーズ) | 63以下:オフ 64以上:オン |
| 70 | サウンドコントロール1 (default:サウンドバリエーション) | (0-127) |
| 71 | サウンドコントロール2 (default:ティンバー/ハーモニックインテンス) | (0-127) |
| 72 | サウンドコントロール3 (default:リリースタイム) | (0-127) |
| 73 | サウンドコントロール4 (default:アタックタイム) | (0-127) |
| 74 | サウンドコントロール5 (default:ブライトネス) | (0-127) |
| 75 | サウンドコントロール6 (default:ディケイタイム) | (0-127) |
| 76 | サウンドコントロール7 (default:ビブラートレート) | (0-127) |
| 77 | サウンドコントロール8 (default:ビブラートデプス) | (0-127) |
| 78 | サウンドコントロール9 (default:ビブラートディレイ) | (0-127) |
| 79 | サウンドコントロール10 (default:未定義) | (0-127) |
| 80 | 汎用操作子5 | (0-127) |
| 81 | 汎用操作子6 | (0-127) |
| 82 | 汎用操作子7 | (0-127) |
| 83 | 汎用操作子8 | (0-127) |
| 84 | ポルタメントコントロール(ソースノート) | (0-127) |
| 85 | 未定義 | |
| 86 | 未定義 | |
| 87 | 未定義 | |
| 88 | 高精度ベロシティプリフィックス これに続くノートオン/オフのベロシティのLSBを追加し14ビットベロシティとする |
(0-127) |
| 89 | 未定義 | |
| 90 | 未定義 | |
| 91 | エフェクト1 デプス(default:リバーブセンドレベル) (以前は外部エフェクトデプス) |
(0-127) |
| 92 | エフェクト2 デプス(以前はトレモロデプス) | (0-127) |
| 93 | エフェクト3 デプス(default:コーラスセンドレベル) (以前はコーラスデプス) |
(0-127) |
| 94 | エフェクト4 デプス(以前はセレステ[デチューン]) | (0-127) |
| 95 | エフェクト5 デプス(以前はフェイザーデプス) | (0-127) |
| 96 | データインクリメント | N/A |
| 97 | データデクリメント | N/A |
| 98 | NRPN LSB | (0-127) |
| 99 | NRPN MSB | (0-127) |
| 100 | RPN LSB | (0-127) |
| 101 | RPN MSB | (0-127) |
| 102-119 | 未定義 | |
| 120以降はチャンネルモードメッセージ | ||
| 120 | オールサウンドオフ | 0 |
| 121 | リセットオールコントローラー | 0 |
| 122 | ローカルコントロール | 0:オフ 127:オン |
| 123 | オールノートオフ | 0 |
| 124 | オムニオフ (+オールノートオフ) | 0 |
| 125 | オムニオン (+オールノートオフ) | 0 |
| 126 | モノモード (+オールノートオフ) | チャンネル数 |
| 127 | ポリモード (+オールノートオフ) | 0 |



