This article is a part of the Yamaha keyboard "Style Reference".

Voices in MIDI files and in Yamaha keyboard styles can be GM (General MIDI) voices (see list here) as defined in the MIDI Specifications; XG (Yamaha defined) voices; or other types.
• GM voices are defined through the Voice Number in the MIDI Program Change event.
• Other voices are defined through the MSB (Most Significant Byte) and the LSB (Least Significant Byte) Bank Select MIDI events, followed by the Voice Number in the MIDI Program Change event.
By definition the MSB and LSB values for GM voices are 0 and 0.

The voices are subdivided in a number of groups, as shown in the table below.

Voice TypeMSBLSBVoice Number *)
GM000 to 127
XG - Non Drum Instruments01 to 1010 to 127
Panel0 or 104102 to 1280 to 127
Mega 81 to 40 to 127
Super Articulation832 to 1270 to 127
Sound Effects6400 to 127
GM 21210 to 160 to 127
GM 2 Drums12000 to 127
Drums126 or 12700 to 127

To get a list of the voices in your keyboard, consult your manual.
*)
Please notice that the Voice Lists in newer Yamaha keyboard manuals lists the Voice Numbers (Program Change) ranging from 1 to 128.
However programmatically the value range is 0 to 127. This often leads to errors, e.g. in Instrument definition files.
To find out whether the manual uses one or the other value range, check the Voice Number (Program Change) for Acoustic Piano.
If this is "0" the range is 0 to 127. If this is "1" the range is 1 to 128.
In all my software the Voice Number (Program Change) is assumed to range from 0 to 127.

  If a MSB or LSB value is defined AFTER the Voice Number, the keyboard will automatically change to the default voice (= the GM voice).
MSB Bank Select, LSB Bank Select and Program Change events can be placed anywhere in a style or MIDI file. This will redefine Voice selection in this style part.

If a MIDI or style file defines a Voice which is not present in the keyboard, the keyboard will automatically change to the default voice (= the GM voice).

MIDI or style files may sound in an unexpected way. The most common cause is that the file defines voices which are not found in the keyboard. And sometimes the default GM voice is rather far from the original voice.
This is a more complicated problem if the defined voice is a "Mega Voice" or a "Super Articulation Voice". These voice types hold special sound effects (e.g. Guitar Fret Noise) in the upper octaves (above the B5 note).
If these files are used on keyboards without these voice types, these voices will default to the GM voices, which often is an Acoustic Piano. This means that you will get a piano voice in a high octave (a "plink") instead of e.g. a Guitar Fret Noise.

To correct Voicing problems, use my
MIDI Mega Voice Cleaner software to automatically change Mega Voices in MIDI files to equivalent voices.
MIDI Revoicer software to revoice all voices in MIDI files. This program can change a number of other parameters too.
Style Old Format Converter software to automatically change Mega Voices in Style files to equivalent voices.
Style Revoicer software to revoice all voices in Style files. This program can change a number of other parameters too.

To check if a given combination of Voice Number (Program Change value); MSB and LSB is a valid voice selection in your keyboard, use my
Voice Finder software.