midicnAudio & Music Production 中文

Program Change

Program Change swaps the timbre on one channel without touching notes, tracks or sounding voices.

Changing an instrument is one short message, not a new track.

The problem

When a piece needs another sound halfway, copying the track is easy but doubles channels and notes. Program Change can switch within one channel, though a badly timed message cuts a sounding note.

Protocol or message

The status byte is 0xCn, followed by a program number from 0 to 127. The GM list people read starts at 1, while files start at 0, so 40 is Violin. To select a bank, send CC0 and CC32 first, then the program. Channel 10 is fixed to drums under GM and ignores the program number. The message changes a channel, not a track, and not notes already sounding.

Settings and practice

Send it before a phrase begins so no tail is cut. Repeating the same value on a channel is harmless and guards against lost state. Close sounding notes before switching. When several tracks share a channel, one switch affects them all.

What to listen for

The same melody on piano and strings differs in attack and decay. A bass moving from 43 to 45 gains an audible pluck.

Common misunderstandings

A switch does not retune sounding notes. GM numbers are not vendor numbers. Program Change is not a track property.

Listen in the library

Piano Quintet in A major · 4. Andantino - AllegrettoC17:19鳟鱼五重奏第四乐章,3 号通道在 43 与 45 之间切换,低音改拨弦Detailssailors battle midi theme 9C10:58单轨文件里有 6 次音色切换,4 个旋律通道各设音色,第 10 通道打鼓Detailsintro verse1 copyC15:4632 轨共用 16 通道,全曲共 31 次音色切换,逐段重置Details

All tracks from midicn-lib — inline badge is the license tier (C1 commercial / C2 non-commercial / C3 study only).

Sources

  • MIDI 1.0 规范对 Program Change 与音色库选择的定义,依 MMA 公开规范核查,未抄文本
  • GM 音色表与 0 起算的编号约定,依通用 MIDI 规范核查,未抄文本

Used for fact-checking only; all prose is original.