Program Change
Program Change swaps the timbre on one channel without touching notes, tracks or sounding voices.
Related
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
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.