OSCulator – convert any input to any output

Mar 19, 2017 | Gig Performer Blog

If you’re on a Mac, there’s a great app out there called OSCulator that can be used to transform pretty much any input to any output. For example, you can configure it to receive MIDI notes and have it send keystrokes (yes, that’s right, as if you are typing) to an application. Or you can receive OSC messages from Gig Performer widgets and control a Wiimote!

Right now, I’m experimenting with it to solve a problem that is due to a currently missing feature in Gig Performer. Gig Performer widgets can learn external MIDI events so as to respond to them. For example, you can associate a widget with a knob on your MIDI controller for example. However, Gig Performer widgets do not send out MIDI messages directly so if you have a MIDI controller like the MIDI Fighter Twister (an expensive but really cool surface) with endless knobs and LEDs that can display current position, turning a Gig Performer widget will not be reflected in the Twister.

Now, there are ways around this by associating a widget with a CC parameter in a MIDI Out block but then you’ll also need to use the widget grouping feature so that you can have another widget that will control the desired plugin parameter.

We’ll get around to supporting this directly at some point, but in the meantime, you can use OSCulator so solve the problem. Now, by its very nature, OSCulator is a complicated application but I’m going to provide step-by-step instructions complete with images so you can see how to do it. We’re going to leverage Gig Performer’s OSC functionality so that widgets send out OSC messages when they’re turned. Then we will use OSCulator to recognize those messages and convert them to MIDI CC events that are then sent to the Twister control surface.

By the way, if you’re already using Gig Performer’s OSC mechanism with a control surface such as Lemur, you’re going to need to configure Gig Performer to use Broadcast Mode for OSC messages. See this article for information on how to do this.

From now on, I’m going to assume that:

  • you have Gig Performer and OSCulator running,
  • you are already familiar with Gig Performer’s editing features,
  • you know how to use the widget MIDI Learn facility,
  • you have already configured Gig Performer’s OSC settings appropriately, and
  • you have a device such as the MIDI Fighter Twister that you want to use with Gig Performer.


Let’s get started:

  1. Create a new gig and drag a couple of widgets onto a panel

  2. Switch to Edit mode and learn a MIDI event for each widget

  3. Assign a unique OSC name to each widget. I use names like Knob1, Knob2, Knob3 because our Lemur template is already configured to recognize those names.

  4. Exit out of edit mode. The Gig Performer widgets should be responding as you turn knobs on the Twister but turning the Gig Performer widgets doesn’t affect the Twister.
  5. Run OSCulator and make sure it is listening on port 8000, the same port on which Gig Performer is sending OSC messages.
  6. Turn the knobs on your Twister and examine the main OSCulator window. You should see something like the following:
  7. The only items you care about are the ones that end with /SetValue so uncheck the other entries.
  8. Next you need to select the output device to where your MIDI events will be sent. Click the Gear button called Parameters to bring up the following window (which will look different depending on what devices are available on your own system.

    Note that the first input port, OSCulator In(8000) represents a virtual MIDI In port created by OSCulator itself. Other applications that produce MIDI events could send those events directly into OSCulator using that virtual port. I’ve selected the MIDI Fighter Twister as the output port.
  9. For each of the selected messages, you’re now going to define the Event Type and the Value. As you will note from Step 2 above, the first knob should be associated with MIDI Controller number 71 and the next three (which are not shown here) happen to be associated with controllers 1,2 and 3. You should end up with something that looks like this:
  10. Now, if you move your Gig Performer onscreen widgets, the LEDs on the associated knobs of your MIDI Fighter Twister will show the same values. If you do this for multiple rackspaces, whenever you switch racks, your Twister display will reflect your Gig Performer Widgets.
  11. Finally, save your OSCulator mappings so you can easily use it again later. I saved mine to a file called GPTwister.osc3

Wildora is graciously offering a 25% discount for OSCulator specifically for Gig Performer customers.

For more information on our recommendation policy, please see this knowledge base article.