Using MIDI OSC blocks to send MIDI to the Global Rackspace

Using MIDI OSC blocks to send MIDI to the Global Rackspace

As of the time of writing, Gig Performer 4 does not support sending MIDI messages from a rackspace to the Global Rackspace or vice versa, you can only send audio data. Although a future version will most likely add this support (legal caveat – no guarantees), there are ways to accomplish this using MIDI OSC blocks instead.

What is OSC?

OSC (Open Sound Control) is a mechanism that allows real-time messages to be sent over a local network. A full explanation is beyond the scope of this article and readers interested in knowing more about it should visit the Open Sound Control website and become comfortable with concepts and terms such as OSC addresses and OSC arguments (integers, floats and strings). Gig Performer has included built-in support for OSC since its inception and more recent versions have added enhanced support through GPScript as well as through MIDI OSC blocks and Direct Addressable OSC for widgets.

The MIDI OSC blocks allow MIDI messages to be wrapped inside OSC packets – one important use case for this functionality is to be able to send MIDI messages to plugins inside Gig Performer from applications such as the Cycling 74’s MaxMSP visual programming environment. That allows you to use Gig Performer as an audio “server” driven by other applications.

Getting started

All blocks in Gig Performer can be assigned “handles”. These handles are used by both GP Script (the proprietary programming language included with Gig Performer) and by OSC. For the latter, the actual OSC addresses are derived from the handle. For example, you can set a plugin parameter value directly from OSC. How? Referring to the OSC message list in the documentation, you will find an OSC message with an address called /oscHandle/SetParam. The ‘oscHandle’ part of that address should be replaced by the actual handle you give to the plugin. So, suppose you have a plugin and you give it the handle abc. Then if you send the message /abc/SetParam   5   0.2 into Gig Performer from some other application, then parameter 5 of the plugin with the handle abc will be set to 0.2

Beyond messages like SetParam that will work with all plugins, some plugins have extra messages to which they can respond. Specifically, the MIDI In (OSC) block can respond to all sorts of extra messages (again, the entire list of such messages is described in that OSC message document.

In particular, if the MIDI In (OSC) block has a handle called “MidiFromLocal” then that block can respond to OSC messages of the form /MidiFromLocal/Midi a b c where a and optionally b and c represent the 1 to 3 bytes of a standard MIDI channel message. This is enough information to get started.

Set up your local rackspace

In the Wiring section of a regular rackspace, connect a MIDI In block (the automatically created MIDI In (OMNI) block will be fine for now to a MIDI Out (OSC) block.

Screenshot 5367

The MIDI In (OMNI) block works normally, receiving MIDI events from your controller as usual. Double-click on the MIDI Out (OSC) block to open its plugin editor.

Screenshot 5368

Set the OSC address as shown in the image above. The target IP should generally be set to which means the computer on which Gig Performer is running. Set the port number to 54344 (the default listening port used by Gig Performer) unless you have explicitly changed the Gig Performer listening port in the OSC section of the options in which case you should set the port to that same number. In that OSC section of the options, also make sure that OSC is enabled. The other numbers you may see in this dialog are not relevant to this particular example.

Screenshot 5374

Now, any MIDI messages received by this MIDI Out (OSC) block will be wrapped in OSC messages and sent out (in this case to the same computer). Now all we need to do is to arrange for something to receive those messages.

Set up the global rackspace

Now go to the wiring view of the global rackspace and insert a MIDI In (OSC) block there. In my example here, I have connected a MIDI Monitor plugin so you can see what’s going on. Normally of course you would just connect your synth plugin.

Screenshot 5371

Next, right-click on the MIDI In (OSC) block and select Set Handle….

Screenshot 5372

That will bring up a dialog where you can enter the OSC handle.

Screenshot 5373

Make sure to Enable OSC and then press OK. Your wiring view should now look like this.

Screenshot 5370

You’re done. If you open the MIDI Monitor and send MIDI events from your keyboard or control surface, you’ll see them displayed in the Monitor window. That’s all there is to it!

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

Related topics
OSC messages in Gig Performer User Manual
How to control your guitar or keyboard effects from a Web browser
Use your mobile phone to control your guitar or keyboard effects
Gig Performer as an OSC controller

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.