Hi Pixel and others who are interested. I'll try to explain here to you the basics of program changes and bank-select messages.
A program change is a midi message that can be send to an external device or to the internal sampler of the MPC to switch between presets in the external module and between programs (or multis) in the MPC.
A program change message has two values.
1: a channel
2: a program number.
The mpc provides the program change message with a channel according to the output setting you have selected in main mode in the out1 and out2 field. So other than to set the correct output there you do not have to worry about the channel.
The program number is a value between 0-127 (one MIDI byte). In the mpc this is displayed off by one: 1-128. This implies you can switch between 128 programs on one channel with a program change message.
Some external sound modules (if not most) are devided into different banks so there can be more than 128 sounds stored and selected by MIDI. To select a sounds stored in a different bank with a program change message, the correct bank has to be selected first. This is where the bank select message is being used for.
You can compair a multi to a bank filled with programs. Therefor I always use a bank select message to change between multis and a program change message to switch between programs within that multi.
A bank select message consists of two times 128 values (two bytes). Two continuous controller (CC) number, 0 and 32, are used.
A controller also has a channel (again provided by the MPC according to the output setting) and a value. The combination of the two values of both control numbers determines which bank is being selected. The maximum of 128x128=16384 banks can be selected like (should be enough eh?

)
CC:0 is the so called MSB (Most Significant Byte = biggest value. Also called coarse)
CC:32 is the LSB (Least Significant Byte = smallest value. Also called fine).
Most devices do not need more resolution and only use the coarse byte (MSB). Also the MPC4000: To select between Multi 1 and 2 use the MSB (= CC:0).
You have two options when it comes to selecting a multi with a bank select message from within a sequence. Either you use the Program change field in main mode (like Reveal explained above) or you insert a CC:0 message into a track using the step editor. With both options you have to route one of the two track-outputs to the Internal channel you have selected in the multi number window. Dont forget this. Give the multis a number and set the multi select to bank select (see above).
The disadvantage of the second option is that the message is being send on every loop. This could slow things down a bit. But it can be useful when you want to select a different mult in the middle of a sequence e.g. With the first option the messages are only sent on sequence change or after play start is being pressed.
When you want to use the program change field (option 1) you have to set both a program change number (not off) and you have to turn the bank select ON and set the MSB to 0 for multi1 and 1 for multi2 etc...
Here is to insert a bank select message in step edit (the second option):
- Go to step edit
- select the location where you want to insert the multichange
- press Record/Overdub.
- press insert [F6]
- select Control Change
- select number 0: bank sel MSB
- select value 0 for multi1 / 1 for multi2 etc...
When you use this second option make sure the program change is sent before any other data on the same location in the track. You can check this in step edit.
When it sais something like:
001.01.000 38/a07 D: 240 V:127 T:0
001.01.000 C: 0-bank select MSB: 1
The note is being sent to the other multi because it is sent before the multi change. You can change the order by moving the note to 002.01.000 and back to 001.01.000 e.g.
resulting in:
001.01.000 C: 0-bank select MSB: 1
001.01.000 38/a07 D: 240 V:127 T:0
I don't know in what order the MPC reads it's tracks but I guess it's from 1 to 128. So in that case, for the same reason, it would be best to use track one for the bank-select and program change message. Any data that follows will be send to the correct multi. But that is just my theory.
It has become quite a long story so I hope this helps you guys out.
Cheers!!