Bank Select and Program Change


Bank Select-Program Change events can be inserted on any MIDI track to recall a specific Voice. These are fairly easy to work with on Yamaha sequencers – as Yamaha uses what is called a “packed” event (be sure to check the documentation of your sequencer if you are using an external device to sequence your […]

By Bad Mister

Tagged Under

Bank Select-Program Change events can be inserted on any MIDI track to recall a specific Voice. These are fairly easy to work with on Yamaha sequencers – as Yamaha uses what is called a “packed” event (be sure to check the documentation of your sequencer if you are using an external device to sequence your data).

Bank Select is a two byte Control Change (cc) message – a MSB (most significant byte) and a LSB (least significant byte) these two Control Change messages each will have a value. This value identifies the bank. Messages will be between 000 and 127. The Bank Select information is followed by a Program Change number (also a number between 000 and 127)

The format is “xxx-yyy-zzz”

‘xxx’ is the MSB value
‘yyy’ is the LSB value
‘zzz’ is the Program Change value

All normal GM sounds are in MSB = 000, LSB = 000

The GM Drum kits are in MSB = 127, LSB = 000

So a Program Change message in the Yamaha sequencer that is:
000-000-000 will recall the GM bank piano

The long form for the GM piano would be:

MSB Control Change 0, value 0
LSB Control Change 32, value 0
Program Change 0

A Program change message in a Yamaha sequencer that is:
127-000-000 will recall the GM Drum Kit

The long form for the GM Drum Kit would be:

Control Change 0, value 127
Control Change 32,
value 0 Program Change 0

In Yamaha synthesizers with Preset Banks, User Banks, Preset Drum Banks, User Drum Banks, etc. you will find they follow this format:
BANK MSB-LSB
PRESET 1 _ 063-000 (program change 000-127)
PRESET 2 _ 063-001
PRESET 3 _ 063-002
PRESET 4 _ 063-003
PRESET 5 _ 063-004
PRESET 6 _ 063-005
PRESET 7 _ 063-006
PRESET 8 _ 063-007
USER 1 _ 063-008
USER 2 _ 063-009
USER 3 _ 063-010
USER 4 _ 063-011
PRESET DRUM 063-032 (program change 000-063)
USER DRUM _ 063-040 (program change 000-031)
USER SAMPLE 063-050 (program change 000-127)
MIXING VOICE 063-060 (program change 000-127)
GM Normal _ 000-000 (program change 000-127)
GM Drum _ 127-000 (program change 000)

Although sounds listed in the Banks of the Motif XF have numbers from 001 through 128 (or 001 through 064), the actual data that you enter into the sequencer will be counted starting with Program Change 000. So the sound located in the XF as sound 001(A01) will actually have a Program Change value of 000. (Simply subtract 1 from the location number)

As an example, if you wanted to recall the “Full Concert Grand” piano Voice PRE 1: 001(A01) on a track, you would insert the following data at a musically appropriate time:
From the main SONG or PATTERN screen Press [EDIT] to view the EVENT LIST Press the Track button [1]-[16] to select the Track you wish to work with Press [F5] INSERT

Select the EVENT TYPE = PROGRAM CHANGE
At the appropriate Measure-Beat-Clock set the values:
063-000-000

You cannot have the Motif XF change programs in the middle of a note, nor can you have it change programs and play a note simultaneously… therefore, a musically appropriate time is one where the instrument change does not negatively affect the music you are hearing. If there is a musical rest (pause) of approximately a 64th note you can usually insert a Program Change event. That is much faster than a human being can actually switch instruments. So in most normal instrument change scenarios you can use Program Changes to accomplish an instrument change. Of course, it will depend on your tempo – so the mileage will vary. If you hear a hiccup then you have not placed this event in a musically appropriate time in the music.

Keep Reading


© 2024 Yamaha Corporation of America and Yamaha Corporation. All rights reserved.    Terms of Use | Privacy Policy | Contact Us