Program Change Management

Program Change Management

In this article we’ll show you how to manage various features in Gig Performer related to program changes.

About Program Change messages

A program change, also referred to as a patch change (or a “PC”, when talking about MIDI messages; don’t confuse this with a “Windows computer”) is a MIDI message traditionally used to cause hardware synths to change to a different preset (or “patch”). If General MIDI is being used, the program change number indicates a particular sound. Since this standard isn’t obligatory, manufacturers may list patches in any order they wish.

The normal way to use Gig Performer is to create rackspaces each of which contains a collection of plugins connected together as desired. A rackspace might contain everything needed for a single song or you might use several rackspaces during a single song, switching from one to another on the fly. When you develop your gig this way, you get many benefits, for example the ability to switch instantaneously from one set of sounds to another without any glitches or the ability to persist sounds in the old rackspace until you release keys or your sustain pedal (our Patch Persist feature).

In Gig Performer, you typically send a PC message from your MIDI controller or touch surface to switch to the desired rackspace variation or the desired song part (when you are in the Setlist view).

Important note: users who are new to Gig Performer, or perhaps just trying it out, but who are familiar with the use of PC messages, may want to change their plugin presets using PC events rather than using the normal rackspace approach. We strongly encourage you to not do that. Many plugins don’t even support this. Please read these blog articles Rackspaces vs Program Changes and Use host automation rather than MIDI to control plugin parameters to learn more.

Refer to this user manual page to learn more about the basic terminology in Gig Performer.

Options related to Program Change events

Gig Performer provides you with many options to fully manage program change events.

Count from zero or from one

MIDI Program Change messages always go from 0 to 127. Since some hardware and software devices count the first program change as PC0 (the range is 0-127) and the others as PC1 (the range is 1-128), Gig Performer allows you to set the starting point for display purposes. This behavior can be changed in the Global MIDI Options:

Zero-based or one-based program change numbering in Gig Performer

When the Use zero-based PC numbers toggle button is turned off (A), then program change numbers will start from 1. Turn on this toggle button to start counting from 0 (B). The results will be immediate (you don’t need to close the Options dialog).

Permanent Program Change numbers

Gig Performer assigns implicit program change numbers automatically to new rackspaces. These program change numbers are not permanent. Example:

Sort rackspaces by name in Gig Performer

When you click on Edit -> Sort Rackspaces by Name you’ll notice that rackspaces now have different program changes assigned to them.

You can control this behavior by assigning an explicit program change value to a variation, making it permanent. Double click on a variation to open the Variation Properties dialog and enter the desired value. Example:

Sort rackspaces by name with permanent Program Change numbers

When you click on Edit -> Sort Rackspaces by Name you’ll notice that rackspaces retained the program change numbers.

Note: if an explicit program change number has been assigned to a variation, that number will appear to the left of the variation name. If there is only one variation with a permanent PC number in the rackspace, the program change number will also appear to the left of the rackspace name; if there is more than one variation with a permanent program change, an asterisk will appear there, as well (see the screenshot above).

Note: variations cannot share the same program change number. If you manually assign a program change message to a variation, any implicit program change number will be removed and you’ll see the “hyphen-minus” sign as in the screenshot below:

The hyphen minus sign is shown when an explicit program change, overwrites the implicit one

What may be confusing for new users is what rackspace variation is selected when you send a program change message from your MIDI controller when there is no explicit program change number assigned to this variation. The answer will be the variation that was last selected for that rackspace. Example:

How are variations selected when no permanent program change is assigned

Suppose you send PC 1, PC 2 and PC 3 from your MIDI controller. You can see that the last selected variation is in focus. Always remember that program change numbers are assigned to variations and not to rackspaces.

If you want to always have selected the first variation in a rackspace when you send a program change message from your MIDI controller, turn on the Auto-assign a permanent PC number to new rackspaces (first variation) toggle button in the General Options. If this option is turned on, when you create a new rackspace or duplicate an existing rackspace, Gig Performer will automatically assign the first variation a permanent program change number.

Unused Program Change messages

Although this is not recommended, Gig Performer allows you to pass unused program change messages (i.e. program change messages that are not assigned to rackspaces) to plugins. Turn on the Pass unused PC messages toggle button in the Global MIDI options to activate this feature. For example, look at this setup:

KeysOfThe70 plugin responds to program change messages

Program changes 1-3 are used to change rackspaces. If you send program changes greater than 3, the bundled KeysOfThe70s plugin (which can respond to program changes) will change its programs (as indicated with the red rectangle).

Although this feature exists, we recommend that you turn it off, as it may introduce undesired behavior in your rackspace and also for other reasons mentioned in the first section of this article.

Convert MIDI song select messages to program changes

Gig Performer allows you to convert incoming MIDI Song Select messages to Program Changes. The conversion is done in such a way that you can use them in all Gig Performer options as if they really were program change messages. If your MIDI controller can’t send these messages and you want to experiment with them (or with any MIDI message), we recommend that you use a free tool such as Pocket MIDI (there are versions for both Windows and macOS):

Send various MIDI messages using PocketMIDI to Gig Performer

Simply enter the desired value (as indicated with the red rectangle) and click on the Transmit button.

Other options

There are other options related to program change events that you can find in our user manual in the Global MIDI Options and Setlist Options; for example, you can immediately switch to the Setlist view as soon as Gig Performer receives a program change message, or you can control which devices or MIDI channel are allowed to accept program change messages.

How to reset Program Change assignments in rackspaces

There are quite a few options in the Edit menu that allow you to perform different operations related to program changes. We have already mentioned sorting rackspaces by name, but you can also choose to sort rackspaces by their program change numbers (simply select Edit -> Sort Rackspaces by PC numbers).

Further, note the Reset Program Change Assignments submenu and expand it. We’ll explain what these options do.

Reset Program Change Numbers (first variation only)

Selecting this menu item will pop up a dialog stating that all current program change assignments will be removed and that new program change assignments will be created for the first variation in all rackspaces, starting with a number that you type in this dialog, for example 5 (optionally, enter the bank select values):

Reset PC numbers for the first variation in all rackspaces

Reset Program Change Numbers (all variations)

Selecting this menu item will pop up a dialog stating that all current program change assignments will be removed and that new program change assignments will be created for all variations in all rackspaces, starting with a number that you type in this dialog, for example 1 (optionally, enter the bank select values):

Reset PC numbers for all variations in all rackspaces

Reset Program Change Numbers (new bank per rackspace)

Selecting this menu item will pop up a dialog stating that all current program change assignments will be removed and new bank numbers (visit this blog article to learn more about banks) will be assigned to each rackspace, starting with numbers that you type in this dialog, for example, MSB = 0 and LSB = 2:

Reset PC numbers with a new bank number for each rackspace

In this example, all variations a, b, c in these three rackspaces (A, B, C), will have program change numbers 1, 2, 3 respectively, but with new bank numbers.

NB: in previous versions of Gig Performer you needed to enter a single value in this dialog, for example, if you wanted to start with MSB 1, LSB 0, you needed to type in 128; if you wanted to start with MSB 2, LSB 0, you need to type in 256, etc. In Gig Performer v4.5 MSB and LSB values are separated in this dialog.

Clear All Program Change Assignments

Selecting this menu item will simply remove all current program change assignments:

Clear all current PC assignments in Gig Performer

Program change numbers are automatically assigned as in the first screenshot in this article.

Managing Program Change assignments in songs and setlists

As soon as you switch to the Setlist view, you’ll notice a certain conceptual analogy in program changes assignments between rackspaces/variations and songs/song parts (click here to learn about the song parts and variations relationship). Similarly to rackspaces and variations, program change messages are assigned to song parts and not songs themselves.

If you don’t specify the desired program changes for song parts, Gig Performer will automatically assign program change numbers:

Setlists and program changes

You can rearrange songs in setlists any order you like and they don’t need to have the same program change number across setlists.

Note: when program changes are automatically assigned and you send a program change message from your MIDI controller, then the first song part is always selected (and not the last selected song part in a song). You can assign the desired program changes for song parts in the Song Part Properties.

Gig Performer 4.5 brings a couple of improvements in managing program change numbers in the Setlist view.

First, when you change a program change assignment for a song part, a dialog pops up and asks you whether you want to apply that program change for all setlists that contain that song (NB: the default “All Songs” setlist is also counted):

Apply program change number to song in all setlists

Further, PC assignments in the “All Songs” setlist will now automatically be copied when a song gets added to a new setlist:

Program Change number assignments are copied from All Songs to a new setlist

Make sure to check out useful operations such as sorting songs by name or by their PC numbers, that are available in the Edit menu.

You can also reset program change assignments in a similar manner that is previously described for rackspaces; click Edit -> Reset Program Change Assignments and then select the desired menu item:
– Reset Program Change Numbers (first song part only),
– Reset Program Change Numbers (first song part only),
– Clear All Program Change Assignments,
– Sync PC assignments With “All Songs” Setlist.

Gig Performer 4.5 now allows you to clear all program change assignments in all setlists, as well:

Remove PC assignments in all setlists

The menu item Sync PC assignments With “All Songs” Setlist is new in Gig Performer 4.5 and it allows you to copy program change assignments from the “All Songs” setlist to all other setlists:

Synchronize PC messages with All Setlists

Use this feature if you want to have the same program change assignments for songs in every setlist.

Top 5 Frequently Asked Questions

Q: Can I use the same set of PC messages to select parts in any song?
A: Yes, you can. Refer to this blog article to learn more. You can learn CC or Note events, as well.

Q: Can I change rackspaces or songs using widgets?
A: Yes – insert the desired widgets in the Global rackspace and assign the desired System Actions parameter (click here to see the list of parameters). Read this blog article to see an example.

Q: Can I send out PC messages from Gig Performer to hardware devices and other applications?
A: Yes, please see this blog article for the very detailed guidelines.

Q: I’m sending PC messages from my controller but nothing happens. What to do?
A: First check what MIDI messages are coming from your MIDI controller to Gig Performer (if any) using the Global MIDI Monitor. If you don’t see any messages check your cables or MIDI-to-USB adapter if you use one. If the Global MIDI Monitor shows CC or other messages, you can either use those CC messages to change rackspaces (see above) or reprogram your MIDI controller to send program change messages (check the documentation of your MIDI device manufacturer). If your MIDI controller sends SysEx messages, they can be converted to CC messages using a Gig script (see an example here).

Q: Pressing my USB footswitch simulates a letter on my computer’s keyboard. Can I change rackspace with it?
A: Yes! Read this blog article to see how Gig Performer provides you with the most powerful and flexible MIDI processing. In the article is presented a simple script with which you can use a key on your computer’s keyboard to switch rackspaces (and lots more, for example you can convert PC messages to CC messages in a gig script).

If you have any questions or thoughts, please visit this Community thread.

Share this article to support Gig Performer and spread the word! 🙂

Own the Stage® with Gig Performer®

Nemanja Pudar

Related topics:
How to change sounds and control plugins from your MIDI controller
The most flexible MIDI processing
How to send program change messages out to hardware devices and other applications
How to automate switching rackspace variations and song parts using the MIDI File Player
Questions about Rackspaces and Variations

Scaling Curves

Scaling curves allow you to control the shape of the output of a widget or convert an incoming note velocity to a new velocity. Various predefined curves are available and they can be tweaked as necessary. You can also just draw your own curve as well to achieve the effect you require.


MIDI File Player Plugin

You can load up to 128 MIDI song files in a single plugin instance. Switch from one song to another, mute tracks and/or change their channel numbers. Tempo can be controlled by individual songs or you can use the global tempo and tap tempo to control the BPM interactively.


Favorites and Presets

Create a sound by placing and interconnecting your desired plugins, such as a synth, some effects and perhaps a mixer. Select them all and then save the selection as a named favorite. The favorite will subsequently show up in all plugin insert menus, making it easy for you to recreate that configuration whenever you need it again. This feature is also very powerful for creating your needed sounds on your studio computer and then transferring them to your touring laptop.


Probabilistic Sound Designer

Parameters you select in an open plugin are captured into the Probabilistic Sound Designer dialog window. When you click Randomize, you're only adjusting those selected parameters. Each entry in the PSD dialog has a curve but unlike widgets where the curve controls scaling, in the PSD the curves are used to define the probability of particular values being selected. Make sure the filter cutoff never gets too slow so as to block all sound. Perhaps adjust the max range of the VCA attack parameter so that the sound doesn't have too much delay. Constrain the octave ranges of the oscillators, perhaps ensuring that 1/3rd of the time we select 8' and 2/3rds of the time we select 4'. The possibilities are endless.


More Widgets

Numerous new widgets are included in Gig Performer - a new sustain pedal, plastic knobs, drum pads and more colored sliders. Shapes can be colored with different borders and fill colors and morphed from rectangular to circular. Your creativity is now the limit to creating fabulous front panels in Gig Performer.


MIDI Message Helper

Select MIDI devices by name. Choose the MIDI message type and adjust the appropriate parameters for the specific type



Layout management

Gig Performer supports arbitrary resizing. Layout your widgets the way you want - resize the main window and the widgets will grow or shrink as necessary to maintain the same interrelationships. No matter what size screen you have, your front panels will still be neat and usable.


Undo Support

If you move your widgets around and/or resize them, or even delete them by mistake, the Undo facility will correct your mistake. Minor moves to a widget by mistake will no longer spoil your design


Plugin Channel Count

Some plugins support a large number of outputs and they depend on the traditional channel strip to control how many ports should be available.   When you only need a stereo pair, it is convenient not to have a large horizontal block. In Gig Performer, the number of available ports  is controlled by the channel count override, which can be applied to individual plugins and will be remembered when the gigfile is reloaded or if the plugin is saved as a favorite.


Input muting and output fading

Rather than a single audio length tail, Gig Performer 4 gives you the ability to control input muting and output fading separately. Input muting controls how much time it takes for audio input to be silenced when you leave the rackspace. Output fading controls how much time will be taken for audio to fade out when you leave the rackspace.


Faster Plugin Finder

Instead of searching through menus of perhaps hundreds of plugins (you know who you are!), the Quick Plugin Finder makes it easy to find the plugin you need by simply typing partial strings. For example, as shown here, to find the Modartt Pianoteq 7 plugins, it's enough to type pia mod 7 (in any order, by the way)  to restrict the list of available plugins to those matching your query. The Quick Plugin Finder also knows about manufacturers, presets and favorites.



Touch Friendly Input

Any entry field can be changed by either dragging your mouse (or finger) up or down, or by using the large popup touchpad where you can just tap on the squares to enter a value. The large popup keypad also does validation so you can't enter an invalid value. You can also just tap the BPM field to pop up a larger view where you can quickly change tempo, tranpose, trigger Tap Tempo and enable Ableton Link, the last allowing you to synchronize Gig Performer with any other application that also supports Ableton Link.


New Tuner Display

The tuner view makes it easy for guitarists to quickly check and adjust their tuning. You can toggle into the tuner view from any other view and toggle right back as soon as you're done. All output will be silenced automatically while you're in tuning mode. You can adjust the concert reference pitch from its default of 440 Hz to suit your own needs. The tuner view fills the entire screen so you can easily see it from a distance.