How to use OnSong with Gig Performer [guest article]

How to use OnSong with Gig Performer [guest article]

In this guest article written by Alexander (@tripleB) you will learn how to use OnSong with Gig Performer.


As we have seen in another blog, it’s easy to add a SetList / Songbook app to Gig Performer. This article describes the usage of OnSong on an iPad along with Gig Performer running on a MacBook Pro.

Originally, I used OnSong standalone with my Kurzweil Forte SE to have some cheat sheets, song texts etc. and of course to navigate through my needed patches in a setlist order. So, I can prepare my setlists based on existing songs offline and don’t need to touch any of the HW / Gig Performer stuff during a show.

With the transition to Gig Performer (with a short stop at MainStage) my current rig looks like this (currently at home):

Alexander (tripleB) home rig with Gig Performer and OnSong

I’m using a Kurzweil Forte SE, an Arturia KeyLab 61 MkII and a Focusrite Scarlett 8i6 audio interface, an iPad running OnSong and of course Gig Performer 4 on a MacBook Pro 14″.

Everything except the iPad is connected via USB. The audio outputs of the Kurzweil are running into the Focusrite and routed through Gig Performer to build a two-channel audio mix for FOH / Main Band mix.

On my KeyLab MkII I have some (more) dedicated buttons to control Gig Performer, OnSong and also some Script based actions, e.g., to bring Gig Performer, my PreSonus Mixer App to front of the screen etc. (but that’s a different story…):

KeyLab MkII I with some dedicated buttons to control Gig Performer, OnSong and script based actions (to bring Gig Performer, PreSonus Mixer App to front of the screen)

For this article the left and right arrow keys on the top right of the DAW Commands / User section are relevant to change OnSong to the previous/next song.

In the following sections we will see two main concepts for:
a) calling a corresponding Song from OnSong in Gig Performer,
b) changing to the previous/next Song in OnSong by using buttons on a MIDI controller.

Here is my typical Gig Performer main view:

Typical Setlist view of Alexander (tripleB) in Gig Performer

We will have a closer look to the Global rackspace and the setlist later on.

Preparing OnSong

As far as I know, OnSong changed the license model and package contents somewhere in the past. It’s necessary to have the MIDI option purchased (in-app purchase) and enabled:

In app purchase for MIDI feature in OnSong

Setting up Bluetooth

First thing we need to do is to setup a Bluetooth MIDI connection between the iPad and the MacBook Pro.

Open the Audio MIDI Studio on your MBP, open the MIDI Studio view and click on the Bluetooth symbol on the top right. Your MBP now scans for Bluetooth MIDI devices:

Bluetooth configuration, MIDI Studio on macOS

Now open OnSong and go to Settings -> MIDI Settings and click the Bluetooth icon:

Advertise the MIDI Service feature on the OnSong app Settings

Then enable Advertise MIDI service.

Now connect (German: “Verbinden”) to the iPad on your MacBookPro:

Bluetooth Konfiguration auf macOS an iPad Verbindung

And you’re done:

Bluetooth Konfiguration auf macOS an iPad - Fertig

Prepare OnSong – Song Program Changes for Gig Performer

This is a little bit tricky: for every Song in OnSong you need a 1:1 match in Gig Performer. So, all your songs need to provide MSB/LSB and PC for OnSong.

Therefore, you need to edit your songs and add a MIDI: control to the header of your song.

Add a MIDI control to the header of your song in OnSong

Note the red rectangle; Midi: 0.42:[email protected] translates to:
– MSB = 0
– LSB = 42
– PC = 3
– @0 = MIDI Channel 1.

Please refer to the OnSong documentation for more details.

OnSong will send these MIDI messages over Bluetooth to your Mac when a Song is selected. You can select a song either by picking directly from the Songbook or by swiping to the previous/next song.

As outlined above, every song needs a 1:1 assignment on both Gig Performer and OnSong. Therefore, we have to provide a match. From our example above we need to assign a program change number for the first Song Part in Gig Performer (refer to the Song Part Properties dialog):

Defining Program Change with bank messages (MSB and LSB) in Gig Performer's Song Part Properties

We also need to configure some Global MIDI and Setlist Options in Gig Performer.

Gig Performer Setup

We need Gig Performer to only respond to Program Change messages coming from the iPad:

Accept Program Change Messages from iPad Bluetooth in Gig Performer

I also use zero-based PC numbers and accept PC messages on the channel 1.

In Setlist Options, I turned on the following toggle button:

PC and Next/Previous MIDI assignments switches to Setlist view automatically

This option will switch to the Setlist view automatically on incoming OnSong messages.

From now on you should be able to select a Song in OnSong and call the corresponding Song on your Setlist in Gig Performer.

Switching Songs in OnSong by MIDI

Now let’s proceed to the other way around: changing Songs in OnSong by MIDI. To enable Previous and Next Song selection by MIDI in OnSong click on the remote symbol:

Define MIDI triggers in OnSong app for Previous Next Song

Then add triggers for Previous/Next Song actions. I selected Control Change messages CC 20 and CC 21 on channel 1 for the following setup in Gig Performer.

Prepare Gig Performer and provide buttons

In the Global Rackspace you have to setup two momentary button widgets:
– General: enable momentary touch,
– MIDI: assign the widget to the MIDI Out of the iPad (drop a MIDI Out for the iPad in the wiring view before assigning) and assign the formerly in OnSong defined MIDI controllers (CC 20 and CC 21).

Now learn the corresponding MIDI from your controller and you are done.

In my case my Arturia sends CC 55 and CC 56 which are mapped by the Rig Manager.

MIDI message assignments and Rig Manager

You can now control with two buttons from your MIDI controller OnSong’s Previous/Next songs.

OnSong will then ‘respond’ with the MIDI MSB/LSB/PC of this Song to ‘sync’ with Gig Performer.

Final thoughts

With this setup it’s only a one way sync! Gig Performer will follow OnSong. Picking a Song in Gig Performer and syncing OnSong would result in a MIDI loop.

If you have questions or want to share your feedback with us, please visit this Community thread.

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

Own The Stage® with Gig Performer®

Related topics:
How to use BandHelper with 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 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