Gig Performer controls the RME software mixer TotalMix FX from an Icon Platform M+ motorized control surface

I just wanted to share my first experience of Gig Performer controlling the RME software mixer TotalMix FX from an Icon Platform M+ motorized control surface via MIDI and OSC.

GP to Icon control surface synchronization
The GP rackspace contains all the widgets necessary to simulate an Icon Plaform M+ control surface with its Platform DU LCD unit. It is synchonized with the Icon control surface using bi-directionnal MIDI control, using standard GP sync possibilities and some additionnal SysEx messages.

GP to RME TotalMix FX synchronization
Regarding the RME TotalMix FX software mixer, GP synchronizes with it using the OSC network protocol. Additionnaly, it is possible to remote control TotalMix from an iPad running Lemur or the RME TotalMix remote control app.

This was made possible thanks to the scripting possibilities of GP, which makes it highly customisable. I am quite happy of the result as I always wanted to use a motorized control surface for this kind of use rather than an iPad app. If I need to adjust a fader when playing, in my opinion, it is easier to touch the real thing. As you can see in the video, I have sometimes difficulties to catch the small screen faders in the TotalMix remote control app, which never happens with an hardware fader. :wink:


Great!! you can also map total mix to a korg nano.

Nice work :muscle:t2::rocket:

He did not map his hardware directly to TotalMix.
This is done by Gig Performer, therefore it should be possible.

@onkeyz, @pianopaul is right, the OSC communication job is done by GP which does basically what Lemur does with the RME template.
Of course the Korg nano can control some GP widgets of this rackpanel, but there is no feedback when using this kind of small control surface, you then need to observe the feedback on the GP rackpanel. Using a Platform M+ with its optional LCD, you can run the GP rackspace in a second instance and have a visual feedback on the control surface itself even if the GP window is hidden.

Thank you!
I missed your words of encouragement. It was not straightforward and it is not finished, but I think this kind of project is interesting regarding many aspects (one bug almost fixed in TotalMix FX, several bugs fixed in GP and perhaps some GP script enhancements :shushing_face:, one bug fixed in the Icon Platform M+ and another just discovered and a proposal of improvement to Icon).:nerd_face:

Nice job David. It’s clear you are not the scarcrow from OZ, as your brain is working wonderfully. I have been wanting to do this with my Mackie MCU which I use with my XR-18 and my DAW. I have not really done any scripting, and I did put in a request with GP on this. Any thoughts on using my MCU. Glen.

Thanks, I hope so :upside_down_face:

What Icon call MCP (Mackie Control Protocol), is basically an implementation of the MCU (Mackie Control Universal). The XR-18 seem to support OSC, but no idea about the way they implemented it. The easiest thing is to bridge your Mackie MCU to the XR-18 via a MIDI connection within GP. I looked for a highly customisable setup and I therefore prefered to do it with OSC, but the MCP/MCU protocol is supported by both the Mackie MCU and the XR18, so it should work well out of the box.
You could start a specific topic where you could explain what you are expecting exactly. :wink:

Nice Implementation based on Midi. as i have 2 Hardwarecontroller which only use MCU/MCP i would like to go
Controller - MCP - GP - OSC - Toatalmix. Andy ideas how accomplish this way?
And i would like To get more in Deep Information how you did realize your solution…

What you plan to do is exactly what I did. What do you exactly want to know ?

it’s great ! Thanks for your reply. so I’m going to buy this keyboard

I guess you are talked about the Motör 61. So, let us know how it works :wink:

I just got a feedback from the Icon support. This is the 3rd beta firmware and 2nd iMap configuration software they are updating to make their Icon Platform M+ control surface work better with GP. Each time, they sent me an email to tell me that the problem is solved or that they have added a requested feature. Before I bought the control surface, they had also kindly sent me the SysEx messages to display something on the optional display unit. I appreciate all of this!

So if I summarize what they did:


  • motorized faders react slowly in “user defined mode” when controlled with something else than a pitch bend message (e.g. a CCxx value)
  • endless knob values are not stored internally for absolute coding (relative coding was supposed to be use for knobs)

added new features in “user defined mode”:

  • endless knobs can be controlled by any CC value and relative or absolute coding is now selectable (very useful, until the synchronization of the widget knobs works incrementally and can be MIDI synced in GP).
  • touch on faders can now be assigned to any MIDI control message or disabled (is use this to display the current submix of the fader I am touching)

Another couple months later, how do you like the Platform M+?

I’m still using an old Behringer BCF-2000, which does everything it’s designed to do just fine, but A) it only has 8 faders and B3’s have 9 drawbars, B) it’s kind of awkwardly large (its depth), and C) it doesn’t have any kind of display.

There are a number of options in the MCU-clone category, but of the ones I’ve seen the M+ seems like the best able to address my particular wants (9 faders, compact, display, not insanely expensive).

I came to the same conclusion, I bought the Palform M+, and I am still satisfied after a few months. It is still not fully integrated in my keyboard rig for now, but there is nothing that stops me to do it… but the free time I have. I can use it for controlling TotalMixFx, but I want to do much more. I want to use it at the same time to control other things in GP (GP mixer plugins, widgets…).

Regarding drawbars control with the motorized faders, a bug in GP (related to inversed MIDI sync) stopped me to evaluate it easily (I could find a workaround using GPscript, but I didn’t find the time for now). But, I am wondering if it is that convenient for changing organ settings, when you are used to use standard drawbars :thinking:

As a conclusion, I would buy it again !

Same inversion issue here using my BCF2000 faders (only 8) for drawbars. I can work with it, write code to deal with it, or do nothing until I know how GP is going to handle inverted (or otherwise transformed) inputs. I’m waiting for now.

I might have to break down and buy an M+. My BCF has been good to me over the years, but it’s way too big to sit on top of my upper keyboard, and if it’s not sitting on top of my upper keyboard it’s not practical to use to control drawbars in real time in my music space anyway.

When you have time, can you describe your “dream setup” for how you’d like to use it? I use TotalMix myself, and obviously also use organ and other VSTs. I’m in the process of coding for the external API interface (c++) and I think I’m on my third re-write in three weeks. Each time I get something working the way I want I think of something new, so I strip out application specific code and figure out a way to make it generic and configurable. So I’m now thinking about how to abstract it as much as possible, ideally to the point where you can “bank select” between controlling a VST, TotalMix, stage lights, and your home thermostats.

I cannot help you much because I follow a similar road, and I really go step by step. :wink:


I tried to use Total mix with OSC now. I’m able to change the master volume and to mute / solo the channels.

But: the command /1/volume1 changes the input volume for the Analog Out 3, not for main or any others. Do you have an idea how to change the output layer? Is it with Businput?

At the moment I have no idea :frowning: … and, is it necessary to send to messages at once to change this?

Thanks for your help!

Edit: ok i understand I have to use /setSubmix for changing the submix.

I have to test if I have to send it every time or only one time and like a layer change :slight_smile:

But now it’s time for sleep. I think this will be a new tutorial.

Exactly. To understand how it works, there is a TouchOSC template available somewhere in the RME forum. This helps to understand how OSC works with TM FX.


wich program is able to open the template? I found it…
I tried everything but at the moment I have no solution :slight_smile: But I’m hopefully!

Is it necessary to send both or all three messages at the same time? Than I have to use a script, right?