Rackspaces vs. Program Changes

Rackspaces vs. Program Changes

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 the ability to switch instantaneously from one set of sounds to another without any glitches as well as the optional ability to persist sounds in the old rackspace until you release keys or your sustain pedal (our Patch Persist feature).

Adding multiple variations allows you to use that same collection of plugins with different settings (e.g, switch a phaser on or off, bypass a particular effect, change the depth of a flanger, adjust the cutoff frequency of a filter) so you don’t even have to create new rackspaces for minor changes to your sounds (perfect if you’re Donald Fagen performing on a Rhodes). If you are using plugins that require huge amounts of memory for each sound (typically samplers), then you can of course also use our Predictive Loading feature to reduce significantly both RAM size and CPU utilization.

Now, musicians who have used MIDI for a long time, particularly with outboard gear are very familiar with the concept of sending MIDI Program Change (PC) events to hardware synthesizers to switch from one sound patch to another. Indeed, Gig Performer’s MIDI Out blocks have always had the ability to send PC MIDI events out to external synths automatically when you switched from one rackspace to another.

Sometimes, users who are new to Gig Performer, or perhaps just trying it out, but who are familiar with the use of PC events, want to control their plugins using PC events to change presets rather than using the normal rackspace approach. Sometimes, they’re concerned that duplicating plugins will use too much memory.

Now, it happens to be the case that some plugins – albeit not that many – do have the ability to respond to MIDI PC events. However, each plugin that supports PC events does it differently, even plugins coming from the same manufacturer. The feature is often disabled by default and then you have to manually associate plugin presets with PC numbers in advance.

Generally, it’s not really a good idea to use PC events with plugins (check this blog article: Use host automation rather than MIDI to control plugin parameters). Apart from the fact that, as mentioned above, only some plugins have support for it, you also don’t know how long it will take for a plugin to change its patch after receives a PC event. Depending on the plugin’s implementation, you may even get stuck notes if you were holding keys or the sustain pedal down when a program change is sent. It’s rarely instantaneous and you can’t take advantage of features such as Gig Performer’s Patch Persist™ mechanism that allows an “old” sound to continue even after you switch to a different set of plugins, using the standard rackspace mechanism. A plugin taking significant time (and 100th of a second is significant time!) to switch from one preset to another might also not handle updated widget values that get sent when you switch variations.

Consequently, up until Gig Performer version 1.8.3, we chose deliberately to have only very limited support for explicit program changes. Normally, when a MIDI PC event is received from the “outside”, it is interpreted by Gig Performer as a request to switch to the rackspace/variation associated with that incoming PC value. There is an option to allow PC events that don’t correspond to rackspaces to be passed through to plugins (via MIDI In blocks) but that requires care to make sure that you don’t use the same PC values for both rackspaces and plugins. We don’t recommend doing this as it prevents many Gig Performer features from working properly.

But if you must…..

Nonetheless, there are some older systems around, where the only way to change sounds is to send PC events to plugins. If you tend to use the same set of plugins all the time and you already have them configured to respond to program changes, then it may be the case that you just want to stay with that model. To address this need, we recently exposed Program Change as a parameter in both MIDI Out blocks and MIDI In blocks. This allows you to associate a knob (say) with a program change parameter so that turning the knob causes a different program change event to be sent out. If you create multiple variations and the knob position is different in each variation, then every time you switch variations, a program change MIDI event can be sent out. Please understand however that if you use this mechanism, all bets are off and we cannot support you if it doesn’t behave the way you want or expect. Gig Performer features like Patch Persist, Predictive Loading, instantaneous glitch free switching from one set of sounds to another and variation updates just can’t work properly. If your plugin doesn’t behave correctly, that’s on the plugin and there’s absolutely nothing we can do about it. Feel free to complain to the plugin developer that their plugin doesn’t respond sufficiently fast for your needs! You have been warned!

Now that we have warned you not to use presets, here’s an unsupported example of how you CAN do this if you really must. We’ll use Native Instrument’s wonderful FM8 plugin for this purpose. If you need to use a different plugin, please consult the plugin’s documentation. For everything following, I am assuming that you are already familiar with the basic use of Gig Performer so I say things like “create a rackspace” or “add a new plugin and connect it”, I’m assuming you already know how to do that. Even though it’s easy to get started with Gig Performer without any documentation, we do have a comprehensive user manual. Various video tutorials are also available.

So first, create a basic rackspace and add FM8 into it.

FM8 plugin and Gig Performer, connected with virtual wires

Next you have to configure the plugin so that it will respond to program change messages. (This procedure will be different for different plugins and may often not even be available.) Open the FM8 editor and you’ll notice a little switch near the righthand side of the plugin, to the left of a button called “Programs”. That’s the on/off switch for enabling PC support in FM8.

FM8, configure plugin so it responds to program change messages

Press that switch to enable PC support and then click the Programs button. The FM8 editor should now look something like this:

FM8 plugin, enable PC support, Gig Performer

You’ll note that there is an empty numbered list on the right. Those numbers correspond to program change values. Note that program change numbers in Gig Performer start from 0 so when we send 0 to FM8 that will correspond to program number 1. (This “off-by-one” scheme is not unusual by the way, some systems start at 1, others start at 0)

All your available patches show up as a list in the center pane of FM8 and basically you drag patches that you want to use from that center section into your program number list. For example,

FM8 plugin, drag desired patches from the center section into your program number list

Here, I have dragged three patches into the program number list. If I send a PC value 1, FM8 will switch to the 303 patch. If I send PC value 6, FM8 will switch to Falling Electrons  (remember, off-by-one).

So how do we get Gig Performer to send the desired program change numbers? Well, we could just add a knob, associate it with the PC parameter of the Midi In block and turn it (holding SHIFT key down for finer resolution) until FM8 switches to the desired program. Then add another variation and repeat to get the next program change, etc. However, there’s an easier way and although the following procedure will work with knobs, it is now possible (since 1.8.3) to do this using the Text Label widget so let’s do that!

Step 1: Add a new Text Label to the rackspace

Gig Performer, audio plugin host, adding a new text label to the rackspace

Step 2: Associate it with the MIDI In (OMNI) block

Gig Performer, OMNI MIDI IN plugin mapping

Step 3: Scroll down to the bottom of the parameter list and select PC

Gig Performer, OMNI MIDI IN plugin mapping to PC parameter

Step 4: Modify the “Customize caption” so that it just contains [value]   (yes, including those square brackets). The label will now display PC xxx (where xxx is some random – for now – integer)

Gig Performer, OMNI MIDI IN plugin mapping PC 6

Here’s where the fun starts. Make sure you have your FM8 plugin editor window open so you can see the list of programs. If you were following along exactly with me, then your FM8 Program List entries with numbers 2, 4 and 7.   (Now remember that these will correspond to 1, 3 and 6 in Gig Performer)

Now before you go any further, go ahead and create two more variations so that you now have a total of three variations for the rackspace. Optionally name your variations so that they show the names of the Program Change items in FM8 as shown here (the righthand side of FM8 is on the left and the lefthand side of Gig Performer is on the right 🙂

Gig Performer audio plugin host and FM8 plugin, Program Change items

Step 5: Select one of your variations. Here, I’ve selected 303

Gig Performer audio plugin host and FM8 plugin, Program Change items, variations

Step 6: Switch back to edit mode and select the label. Note that there is an entry field called Now

Gig Performer audio plugin host and FM8 plugin, Program Change items, Edit Mode

Step 7: The patch in FM8 called 303 is at position 2 in the FM8 Program List. That means we need to send MIDI program change value 1 to access that specific patch. So type 1m into the field called Now and press Enter,. The ‘m’ after the number 1 is critical because it tells Gig Performer to interpret the value as a MIDI number rather than the usual kind of value that goes from 0 to 100.

As soon as you do this, your MIDI number will be replaced by a decimal value (which happens to be 1.0) but more importantly FM8 will now show that the 303 patch is selected.

Step 8: Now switch to another variation in Gig Performer. Here I selected “Crystal Clear Guitar”

Gig Performer audio plugin host and FM8 plugin, Program Change items, another variation

Looking at the FM8 Program List we can see that Crystal Clear Guitar is at position 4 in the list which means we need to send MIDI program change 3 to it. So switch back to edit mode and type 3m into the entry field called Now and press enter. The value in the Now field will change to 2.4 (see below for an explanation why) and the FM8 patch will change to Crystal Clear Guitar.

Repeat this process for all other program changes you want to access.

Finally, watch the FM8 Program List as you switch from one variation to another. Each time you switch, the current “value” will be sent out as a MIDI Program Change and FM8 will update accordingly.

You’re done!

Remember, sending program changes directly to plugins bypasses some important Gig Performer functionality. You won’t get Patch Persist, there may be plugin-dependent delays before the sound changes and there’s also the risk of stuck notes if the plugin doesn’t automatically silence itself when a program change occurs. You have been warned. If you have problems with this mechanism, it’s between you and the plugin developer 🙂 as Gig Performer (or indeed any plugin host) has no control over how a plugin will react to program changes.

————-

Why does the Now field display 2.4 after we typed in 3m?

Values in Gig Performer are always decimal numbers between 0.0 and 100.0 – think percentage – if a knob is turned fully clockwise, its Now value will be 100.0, if the knob is halfway up, its Now value will be 50% and so on. However, MIDI values range from 0 to 127 and when you type in a number followed by the letter m, Gig Performer will divide your number by 1.27 so that it maps into the internal available range from 0 to 100. So whenever you see a decimal value, you can multiply it by 1.27 and round it to see the equivalent MIDI value. Hence 2.4 multiplied by 1.27 gives us 3.048 which rounds to 3.





.

Related topics:
 – How to change programs in Gig Performer if you can only send Note messages
 – Basic Terminology in Gig Performer



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.

 

GP Script Enhancements


GP Script adds new language improvements such as multiple initialization sections, initialization with declarations and enhanced callbacks. The WidgetValueChanged callback now supports multiple widgets. Sysex messages are now built-in with numerous supporting functions. String array handling is much faster. Integer bit manipulation is now built-in. A new global GigScript allows incoming MIDI messages to be modified and redirected on the fly. It also allows you to define keyboard macros for your computer keyboard to control Gig Performer itself. For complete information, please review the GP Script Language Manual available through the Help menu.

 

Scriptlets


Scriptlets make creating custom MIDI processors easy. You don't have to be a programmer to use them - you can just download scriptlets from our ever-growing collection on our website and drop them right into your rackspaces to use them. Use scriptlets for simple operations such as turning your single notes into chords, modifying, duplicating or converting one kind of message into another, automatic chord latching (AutoSustain), threshold detection, sysex manipulation... imagination is the limit.

 

Other Improvements


  • System Actions plugin
  • MIDI Out to OSC converter
  • Comment plugin
  • New GUI dialog to define MIDI events to send on song part change
  • MIDI Out blocks can automatically send multiple MIDI events
  • Open/close a plugin editor from a widget
  • Choose default startup view
  • Quick find for plugin parameters
  • Large collection of startup hints
  • OSC Patchbay mode
  • Plugins now default to stereo I/O
  • Dragging presets into the wiring view will automatically create the required plugin
  • Numerous other minor (but nice) usability and workflow enhancements

Numerous other enhancements and optimizations serve to make Gig Performer 4 a superb platform for performing artists.

 

Songs and Setlists


You can organize your rackspaces into songs and your songs into setlists and then just select the setlist you need for a show. Then simply cycle down through the parts, or use your control surface or a MIDI Guitar pedal controller to select individual parts directly.

 

Predictive Loading


Predictive Loading™ is an advanced feature that reduces your RAM and CPU resources by only loading rackspaces (or songs) as needed.

 

 

The Global Rackspace


The Global Rackspace can receive audio from whatever rackspace is currently active. Instead of inserting effects in every rackspace, simply insert them once in the Global Rackspace and all your local rackspaces will have access to them. The Global Rackspace can also send audio to the currently active rackspace. So you can insert a looper that receives audio directly from your guitar (say) and then send the looped audio to different effects in different rackspaces. If a particular instrument such as a piano or organ is needed everywhere (or almost everywhere), put it in the Global Rackspace.

 

   

Zoomable Wiring View


Gig Performer 4 provides a virtual view allowing you to spread out your blocks and connections to make them easier to see and manage, even if you have a very small screen. You can zoom in or out and you can use the Auto-Fit option to position your blocks to fit in the available space.