How to automate switching rackspace variations and song parts using the MIDI File Player

How to automate switching rackspace variations and song parts using the MIDI File Player

In this article you will learn how to automate switching rackspace variations and song parts using the MIDI File Player.

Gig Performer 4 comes with great features such as a bundled MIDI File Player, Scriptlets and a Local GP port. If you have a MIDI file that contains program change (PC) or control change (CC) messages, you can load that MIDI file into a MIDI File Player and route the output of that player in such a way so that you can both control Gig Performer (e.g. to change rackspaces or songs automatically) and also perform operations such as widget automation.

We will combine all the above-mentioned features to build an example gig file, which you can download as a starting point for your own use.

How to insert a program change or a control change message into a MIDI file

.
The first thing you will need of course is a MIDI file for the song you are planning to perform and into which you will insert PC and/or CC messages. You can of course create one using pretty much any DAW or MIDI sequencer (Logic Pro, Digital Performer, Cubase, etc.) that can export standard MIDI file (SMF).

If you don’t have a MIDI file for the song, you can probably find one using your favorite search engine.

The second thing that you need is an application through which you can edit the MIDI file so as to insert the desired PC and/or CC MIDI messages. For this purpose, you can use simple applications like MidiEditor (free for Windows/Linux and donations are accepted) or complete solutions like Cakewalk (free for Windows), Ardour (for macOS/Windows/Linux and there is a free/demo version that periodically goes silent after 10 minutes) or MuLab (macOS/Windows, and the free version is available). To see more software recommendations from our community users, please visit this community thread.

For this article, I used MidiEditor, which is extremely easy to use. Simply load your MIDI file and scroll down until you see the Program Change section (indicated with the red rectangle) and the Control Change section (indicated with the green rectangle). All operations are easily available from the main toolbar and are very intuitive (for example, the Pencil symbol creates a new MIDI event, the Eraser symbol removes a MIDI event, etc.). The Standard Tool (the arrow symbol) can move blocks containing MIDI events and right clicking on a block duplicates it.

From the screenshot below you can see that I created 4 Program Change blocks and 17 Control Change blocks:

MIDI Editor application - Insert PC message (Program Change or Patch Change Message) and CC message (Control Change message)

In the Event properties you can define the desired program change value as indicated with the blue rectangle on the screenshot above. Here are values for other three program change blocks:

MIDI Editor application and insert Program Change Events

Here is important only the value of the program change message, you can ignore the text after the colon (say: “Bright Acoustic Piano”) as those are standard MIDI associations.

Insert as many program changes blocks as you want and save the MIDI file. These program change messages will be used to switch rackspace variations or song parts in the example gig file.

As for the CC messages, these will be used to demonstrate how you can automate widget movements using the Local GP Port. More specifically, we will gradually decrease and then increase the Output volume using a Knob widget. Here are Event properties for the first 3 blocks:

MIDI Editor application and insert Control Change Events

We’ll send CC23 and will gradually decrease values by 4 (64-60-56-52-48-44-40-36-32-28-24-20) and then increase values by 4 (24-28-32-36-40).

How to inject program change messages to the Local GP port

.
First, open the Global rackspace, click on the Wiring view, insert the MIDI File Player plugin and load your prepared MIDI file from the previous section. Afterward, insert the Scriptlet plugin and add this simple code:

This scriptlet Injects all MIDI events to the Local GP Port in Gig Performer

Click on the Compile button (click here to learn more about Scriptlets). This scriptlet will inject all incoming MIDI messages (that are coming from the MIDI File Player, in this example) into the Local GP Port.

The Local GP Port is a special port that exists only inside Gig Performer. It functionally behaves like any other MIDI In block, for example, widgets can be associated with MIDI events arriving at this port, just like any physical MIDI Input port.

How to use the Local GP port in rackspaces

.
There are no restrictions for the location of the Local GP port in terms that you can insert in the Global rackspace or in regular rackspaces.

For this example, I built a rackspace with four variations:

Gig Performer rackspace with four variations. It includes a Panel and the Global panel

To every variation is assigned the corresponding program change number (refer to this page to learn more).

In Edit mode of the Panels view, click on the Output Vol. widget:

Local GP Port, MIDI Association to Widget

Click on the MIDI tab and then click on the Edit button. Match the settings from the screenshot above and click OK to save your input.

In the Wiring view of this rackspace, the Local GP Port is connected to the bundled KeysOfThe70s plugin:

Gig Performer's Local GP port in simple Wiring view

If you click on the Play button in the Global rackspace, you can see how variations change automatically as the MIDI file is being played. Also note how the Output volume widget moves.

If you are in the Setlist view, the corresponding song parts will be switched automatically as the MIDI file is being played.

Another button, “Block PC” blocks sending out the program changes in the MIDI File Player, so clicking this button won’t change variations or song parts.

Note: Some plugins like KeysOfThe70 can react to received program change messages, so make sure that the option “Pass unused PC messages” in the Global MIDI options is turned off, otherwise any program change message that is not assigned to rackspace variations or song parts will be sent to the KeysOf70s plugin (click here to learn more).

Finally, you can use CC messages and the System Actions plugin to change rackspace variations or song parts; refer to this blog for detailed instructions.

Here is the example gig file: DOWNLOAD

Note: you can play the supplied MIDI file in this gig file even if you don’t already have this file on your computer – the MIDI File Player will report that the underlying MIDI file is “missing”, but you can still play it. The reason for this is because the MIDI files loaded in the MIDI File Player plugin are stored as part of the state of the plugin.

To learn more about program change messages, make sure to read this in-depth blog Program change management.

To share your feedback and to see more recommendations and tips, please visit this Community thread.

.
Please share this article it to support Gig Performer and spread the word! 🙂

Own The Stage® with Gig Performer®

Nemanja Pudar

.

Related topics:
Questions about Rackspaces and Variations
How to change sounds and control plugins from your MIDI controller



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.

 

 

What's new in Gig Performer 4.5


  1. Record what you play, complete with all effects - multiple channels of mono or stereo wave files
  2. The Follow Hardware feature lets widgets update automatically to match your controller values when you switch rackspaces
  3. Plugin blocks can now be easily dragged to insert them between other plugin blocks
  4. Widgets can be hidden when not in edit mode.
  5. Widgets support various CC relative modes
  6. The MIDI Thru option lets widgets respond to messages while allowing them to pass through to plugin blocks
  7. The Global MIDI Monitor now displays outgoing MIDI messages
  8. Audio options can now be exported and reimported to make it easier to support multiple audio configurations
  9. OSC now supports named targets
  10. Song Part OC assignments can now be globally changed and applied
  11. GP Script has a new Timeline callback, a MIDI connect/disconnect callback and many new system functions
  12. New parameters in the System Actions plugin now provides even more global control of Gig Performer

Click here to see the complete list of release notes for Gig Performer 4.5