Program changes (MSB, LSB) when changing variations

Trying to send program changes to my Yamaha MODX when changing variations. It works only with ‘simple’ program change:

But I need to change bank and also page (live set) and it doesn’t work:

I can do it when I switch rackspaces, but I need this functionality with variations.

What am I missing?

You are using the parameter “Send PC message on Activate” which is simply a toggle to send or not send the parameters you configured in the MIDI Out block.

If you are using GP3 and songs/setlists you can now send any kind of a MIDI message out for any song part. If not - you have two options.

  1. Instead of connecting your widgets to a MIDI OUT block - create a new MIDI IN block just for the purposes of sending the PC messages out, but block all incoming channels so you don’t accidentally send notes and other incoming midi data.


  1. Connect your widgets to this MID IN block CC0, CC32 and PC parameter


  1. Connect the MIDI IN block to MIDI OUT block.


That should work now.

Alternative #2 - Use GP Script and do whatever you like with MSB/LSB, PC messages under any conditions you want.

Hope this helps.


@djogon, thank you! :ok_hand:

…and don’t forget to check the “Don’t block Program Change messages” in the MIDI Out block…

Hm, I have to bring this up again:

While preparing my songs/rackspaces with external program changes I recognized that the assigned MIDI CC0 and CC32 are not always send when changing rackspaces according to the knob positions. However, the PC is always send?! :thinking:

When switching between variations within the rackspace the CC0/CC32 are also only send if they differ (which is basically OK within the rackspace).

Meanwhile I made a full GPScript solution to always send MSB/LSB/PC after a dedicated rackspace/variation is selected/opend based on the knob settings.

But for curiosity: did anybody experience the same? What could have gone wrong here?

Can you upload a small gig with some rackspaces, so I could check the issue?

Hi Paul,

here’s a small .gig I did yesterday when trying to find a solution. I’m on macOS. Just setup the MIDI Out to an IAC connection and catch this with Pocket MIDI e.g.

Switch between Rackspace 0 and 1 and you will see the issue

First try of solution was rackspace 2

The rackspace 3 is my (hopefully) final solution to work with - only script.


External-PC.gig (53.1 KB)

Maybe this is a silly question but if the bank number hasn’t changes, why is it necessary to send it out again?

@dhj: check my .gig. If I switch from rackspace 0, variation “120” to rackspace 1, variation “632” there is a need to send a LSB to my external instrument :wink:

Otherwise you are right: if I switch within a rackspace it’s not really necessary - my problem is first entry in a rackspace/variation…

Edit: if you do only one variation you can set this up in the Midi out block…

I tried this and it is working,
just map your bank select widget to the used MIDI Out.
For my test I replaced the MIDI Out in your gig to IAC, so I can see in Midimonitor program.

1 Like

OK, it’s working on the MIDI out on my side, too - strange. However I get double CC0/32 (which I would not care at the moment…) when italy changing a rackspace…

I followed the initial example above and mapped all three controls to the MIDI In. And this is definitly not working.

So the solution is: map PC to MIDI in, CC0/32 to MIDI out?! Weird?!

Thanks for sharing your thoughts, still feel a little bit confused


I got PC to work for my MOXF8 but I can not access the Performance User 2 Bank. Not using the Script - just the widgets.
Any Help?

Whe you use SetList Mode you can define whatever messages you want to send to your Hardware
when a Song Part is selected.

No scripting required

What is “Performance User 2 Bank” in terms of Bank Select messages? Remember that there is an MSB and an LSB for bank select messages and not all systems use both

I’ll try Advanced: Extra MIDI messages to send out that pianopaul suggested.
I’m not sure of the Hex to use though. I’ll try the online Hex tool.

OK - in GP3 we made (what at the time we thought was a good idea) the mistake of combining the bank select fields into a single number. What that means is if you’re given an MSB and an LSB you have to do the calculation

 MSB * 128 + LSB to determine the actual number to use.

We’ve fixed this for GP4, which now has separate fields.

In your case, for USR2, the number would be

63 * 128 + 65

which is 1829

1 Like

Thank you for the info! I plugged 8129 into the bank field for the Song and then the Part - neither worked.

Ha! This is the better solution! This removes a lot of variations from my racks and I have to fill my All Songs list anyway.



1 Like

GP4 upgrade made this so much simpler - THANK YOU!!