Confusion over program change


I have a module receiving program change messages from my iPad in addition to GigPerformer. GP receives on ch 16 and the module receives on ch 14. GP has just started to load the programs using both ch 16 and ch 14, and I’ve had to turn on the global midi message that limits the change to the specified channel namely ch 16. My question is this - why is GP responding to program change on two different channels (14 and 16) when the default channel has been set to ch 16?


GP will by default respond to a program change sent from any port (device) on any channel. This works well for many users but, as you discovered, there are options to limit the port (device) and the channel number that the messages are responded to.

Now there is a little bit of missing information here. When you say

What do you mean exactly and what is the “module” exactly?
I have a feeling we’re missing something here.


I’m confused by your question. Are you saying that GP is responding to program changes on channel 14 after you set it to only respond on channel 16?

Independent of the above, this topology sounds wrong to me. You should be sending program changes messages ONLY to Gig Performer and then have Gig Performer send the desired program changes to other modules (I assume by your use of the term “module” that you mean an external synth module connected via a MIDI cable)


The module is a vocal harmoniser on ch 14 and of course GP on ch 16.


Please respond to the first question. Thanks


Sorry David. When the option is ticked everything is fine and functions as it should changing only ch16.


Ok, in that case I don’t understand the original question you posted. Sounds like GP is working as designed.


I’m used to software/hardware only responding to its particular midi channel and passing through the channels not relevant to itself. Yes GP is responding correctly but it is in a different way to what I am used to.


Yeah, that’s a very old MIDI-centric model that’s unnecessarily constraining. Trying to make modern hosts such as Gig Performer work that way just makes things harder to manage than necessary.

Generally, one shouldn’t try to be thinking in terms of what MIDI allows (or not) with such systems. If you think about it for a moment, the concept of a program change associated with a MIDI channel was designed for multi-timbral synths where you could change the sound on each channel separately.

But Gig Performer is not itself a multi-timbral synth. It is a manager for an entire collection of synths, whether virtual or physical and lives outside the traditional MIDI model. That is why GP “out of the box” responds to program changes on any channel and the constraint to a single channel was added purely to support legacy setups.

We recommend that users should configure their environment so that Gig Performer is the only entity that receives program changes from a controller such as a tablet or a master keyboard and then Gig Performer alone should be responsible for sending out the appropriate program changes to any external modules that are being used.