In a particular situation, I am forced to call GP song parts with MIDI messages. Luckily, this functionality is built into setlist mode. Unfortunately, I cannot get it to work.
To illustrate this, I have built a small example gigfile, which has the following contents:
Rackspaces
Rackspace1 with only one variation:
Default: Mapped to Bank 0 / PC 1
Rackspace2: with only one variation:
Default: Mapped to Bank 0 / PC 2
Songs
Song1 with only one part:
part1: Mapped to Bank 1 / PC 1
Song2 with two parts:
part2: Mapped to Bank 2 / PC 1
part1: Mapped to Bank 2 / PC 2
I would expect to be able to call rackspaces and/or songs via incoming Bank Select (CC0) and Program Change messages. This does work for rackspaces, however it does not work for songs. I did make sure that the messages arrive in GP (see screenshot). What am I missing here?
CC0 Bank Select MSB (MOST significant byte) and CC32 Bank Select (LEAST significant byte) are important when switching banks.
A MIDI bank number is a combination of these two numbers where
Here are examples with MSB/LSB numbers and the actual bank selected
Then when you send the PC value you get a certain number.
MSB LSB VAL
000 000 000 // Default bank 0
001 000 128 // Bank is 128
000 001 001 // This is what you set this to
That is how one constructs Program Change numbers beyond the 0-127 range in the MIDI world. The caveat is to understand that there are TWO numbers that determine the bank, both are the in range of 0…127, but one of them is MSB (jumping in increments of 128) and the another is LSB (jumping in increments of 1)
If GP displays the program change number 1 and the little “1” in the top right corner - it means that the LSB is set to 1 and MSB to 0
If you want to use the MSB (CC0) here you will have to make the bank numbers jump by 128.