The most flexible MIDI processing

The most flexible MIDI processing

Gig Performer is an audio plugin host for live performance that allows musicians the most flexible MIDI processing and creating very sophisticated live setups.

MIDI (Musical Instrument Digital Interface), originally created by Dave Smith (creator of the famed Prophet polyphonic synth) is a technical standard that describes a communications protocol, digital interface, and electrical connectors that connect a wide variety of electronic musical instruments, computers, and related audio devices for playing, editing, and recording music. Originally designed to control multiple synths at the same time, the first hardware-based MIDI sequencer was created by Roland (the MSQ-700), and was quickly followed by software-based sequencers which later were extended to support audio recording as well, leading to the creation of the Digital Audio Workstation, also known as a DAW.

MIDI does not have any sound capabilities. For example, when you press a key on a MIDI keyboard, a message is generated that represents the key you pressed, often along with how hard you pressed it (velocity). When you release the note, another message is produced. These messages are generally interpreted by MIDI capable synthesizers that then create sounds based on the received messages.

Today, one very common MIDI application is to play a MIDI keyboard (or other MIDI controller/surface) and use it to trigger software synths, also known as VSTs to generate sounds. Visit our user manual to learn about the Basic terminology used in Gig Performer.

To process MIDI events, Gig Performer provides lots of powerful built-in features that will be described in this article:

  • MIDI In block
  • MIDI Out block
  • Global MIDI Monitor and MIDI Monitor block
  • MIDI Filter block
  • MIDI Channel Constrainer block
  • Scriptlet block and GPScript
  • Other blocks
  • MIDI options in Gig Performer

.
Along the way you’ll find lots of useful resources such as other blog articles, user manual pages or videos, so make sure to check them out, as well.

Let’s get started!

.
Process MIDI messages received from an external MIDI device using the MIDI In block

.
The MIDI In block has already been covered (for earlier versions of Gig Performer) in an earlier blog article The hidden power of MIDI In block and is also described extensively in the user manual. Gig Performer’s MIDI In block is not just your everyday block for receiving MIDI events. It can do much more than just receive MIDI messages from an external MIDI device and feed them to connected soft-synth plugins (and indeed back out to external synths) and some of the features are:

It could be that the most overlooked feature here is the Monophonic options area. This area at the bottom of the MIDI In plugin block editor filters the note messages from the controller down to a monophonic stream of notes. This allows you to easily extract the lowest or the highest note in a chord and send it to a different plugin. Take a look at this example:

Extract the Lowest Note or the Highest Note in a chord with Monophonic options in Gig Performer

Simply duplicate your MIDI In block and check the Lowest only check box in the duplicate block. Afterward, route that block to another plugin (such as bundled HaNonB70). You can also add an Audio Mixer to (say) easily increase the volume of detected lowest note. The same procedure applies if you want to extract the highest note from a chord, just select the Highest only check box in the MIDI In plugin’s editor.

The original goal for this feature was for the case where you want to superimpose a different sound playing the lead on top of (or below if lowest) playing the full chord.

.
Leverage the MIDI Out block’s features to control external MIDI devices

.
The MIDI Out block is used to send MIDI messages to external devices such as synthesizers or samplers. The use cases are covered in great detail in the blog article How to send Program Change messages out to hardware devices and other applications. Also make sure to check the above-mentioned MIDI In and MIDI Out Blocks episode of Backstage with Gig Performer for some live examples.

If you want to send MIDI messages from rackspaces to the Global rackspace, check out this blog article, that uses MIDI Out (OSC) blocks (NB: OSC is also extensively covered on our blog so make sure to leaf through the articles to learn more).

Instrument Definition Files (INS files) are also supported:

Instrument Definition Files - Yamaha INS file

Rather than just manually typing PC and bank numbers, you can select the PC and bank numbers to be sent out using patch names defined in an INS file (if one is available for your hardware synth).

.
MIDI Monitoring

.
Gig Performer includes the system-wide Global MIDI Monitor and the MIDI Monitor plugin that displays MIDI messages from the plugin block which is connected to. These are useful means for diagnostic purposes:

Global MIDI monitor in Gig Performer

Additionally, MIDI monitors can show SysEx indices, helpful if you are using GPScript to manipulate incoming SysEx messages . Check out the user manual for more information.

.
Easy remapping of MIDI messages using the MIDI Filter plugin

.
The MIDI Filter plugin can be used either to block specific MIDI messages or to remap them to other messages:

MIDI Filter Plugin. MIDI remapping and MIDI blocking

Check out the user manual for detailed guidelines. Also visit Remap MIDI messages without using the MIDI Filter plugin to see another way of remapping MIDI messages.

.
Remap MIDI channels using the MIDI Channel Constrainer plugin

.
The MIDI Channel Constrainer is a new built-in plugin in Gig Performer 4 and it allows you to set what messages are allowed through based on the MIDI input channel, remap the input channel to another channel, or block all MIDI traffic that goes through this plugin in a very clear way (learn more about Gig Performer’s way):

The MIDI Channel Constrainer plugin Gig Performer

Visit The MIDI Channel Constrainer blog article to learn more (video included).

.
The ultimate MIDI processing using GPScript and Scriptlet plugins

.
If you have some specific use cases or want highly advanced setups, you can take a look at the true musicians programming language created by Gig Performer developers – GPScript. This assumes that you have some basic programming skills and is really straightforward to learn. The GPScript manual will help you through your journey. There is a detailed example in the user manual that will help you to quickly dive into the realm of GPScript.

If you have your specific user scenario, we suggest that you first search our Community forums. For example, here is a recent thread where a user had a USB foot switch that simulated the letter “b” on the computer keyboard and wondered whether he could he change variations/rackspaces with that foot switch and indeed Gig Performer can respond to a key stroke, so this was a solution:

An example of a gig script using GPScript programming language in Gig Performer

Try it! 🙂 Click on the Window menu and select Show Gig Script Editor. Type in the text above (or copy the text from the community thread that is mentioned above) and then click on the Compile button. As the result, every time that you press the “b” key on your keyboard, Gig Performer will switch to the next variation (and jump to the new variation in the subsequent rackspace). Therefore, there is no need to buy third-party software to achieve this functionality.

Another example is converting note or CC messages to PC messages. Click here to see the solution from one of our superpower users. There is no need to use a third-party application such as MidiPipe or to buy a MIDI converter.

You can use scripting to inject MIDI messages into MIDI devices as if the messages had originally come from those physical devices. Take a look at this example with another advanced Gig Performer 4 feature – the Local GP port, which provides even more flexibility in Gig Performer.

So, what are Scriptlets then? Scriptlets are my favorite feature of Gig Performer 4. The Scriptlet plugin allows you to leverage the power of GPScript and create your own MIDI processor plugins! For example, you can play various chord progressions using only one key from your keyboard. This example is included as a template when you create a new gig (look under Cool Stuff):

Scriptlet example in Gig Performer templates wizard

Find other examples tagged with Scriptlet in Gig and Rackspace files forum category, created by our brilliant beta users.

The best is that you can save Scriptlets as favorites and easily reuse them in your own gig files.

.
Other plugin blocks that can help you on your MIDI journey

.
Here are other plugins bundled in Gig Performer that can help you with MIDI processing and management:

.
MIDI options in Gig Performer

.
We conclude this article with Gig Performer options where you can configure different MIDI options and behavior.

Global MIDI options in Gig Performer

Check our user manual for detailed explanation of various MIDI related setting.

.
If you like this article, please share it and spread the word.

Own the Stage® with Gig Performer®.

Nemanja Pudar

.
Further reading
:

– SysEx support – Controlling RJM GT Mastermind pedal controllers from Gig Performer
– How to synchronize Gig Performer’s tempo to an external MIDI clock or Link-enabled products
– Use host automation rather than MIDI to control plugin parameters
– Rackspaces vs Program Changes



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.