Icon Platform M+ MIDI Remote - should work with any MCU based controller

Hi Everyone,

V1.0 of the Icon Platform M+ Midi Remote is now available.


  • Set your Icon Platform M+ to MCU mode if it isn’t already on it - see the manual for how to do this though it is the default so unless you changed it your all good. And if you did you obviously know how to change it :smiley:
  • Go to Midi Remote
  • Add Surface
  • Import the script:
    Icon_Platform Mplus.midiremote (7.3 KB)

It should find your Platform M+ midi ports but if it doesn’t just select them in the midi remote.

You can hover the mouse over any surface element in the midi remote and it will show a tooltip with the functionality. The icons used in the midi remote are often confusing so tooltips are your friend.

There are two pages for the Fader Area:

  1. Mixer - controls for the current bank of 8 channels (auto banks with Cubase selection)
    • The midi remote suface shows all the functionality. Track Selection is on Fader Touch so the Sel Buttons can be used for monitor on/off.
  2. Selected Channel - has 4 sub pages for the Selected Channel:
    1. Sends and Quick Controls
    2. EQ - all 4
    3. Pre Fader
    4. Cue Sends
      The first 4 record buttons are used to select each of the subpages which then change parts of the fader surface control area. Any controls not used by a subpage will remain bound to whatever was last used (not sure if this is a feature or not but I couldn’t find a way to tell a subpage to unbind a control it wasn’t using).
      Pretty much every available function is mapped to the knobs and buttons in each of the sub pages. Use the mouse to hover over them to see what is assigned where.
      For convenience (and partly to get around some confusion from not being able to unbind) some on/off functions are mapped to Knobs and Sel buttons. This proved handy for A/B comparisons in the EQ page since I was holding the knob anyway I could just push it on/off.

The Transport and Fader sections are the same for both pages.

The Main Fader can switch between:

  1. Main Output Control - more correctly its the first Output, which is Main for me but I only have one output
  2. Control Room Phones Level - again the first headphones channel
  3. Control Room Monitor Level
  4. AI Control - hover your mouse over a value and the Master Fader will snap to it and control it.
  • To switch function use the Mixer button to switch through them.

Read and Write buttons control the Selected Channel Automation Read/Write

Transport Control:

  • Play, Stop, Cycle, Record, FWD, RWD are all as normal
  • Channel Next/Previous - Next/Previous Page at the moment but might just make one of these cycle and the other be Click on/off or something useful.
  • Bank Next/Previous - Next/Previous Marker - this might be more useful as something else in future.
    ** You will note the lack of channel/bank selection from the surface. Midi Remote auto banks and the Jog wheel can be used to scroll through channels so I figured coopt these buttons for other uses.

Jog wheel - okay this one is a bit complicated. It’s almost the same a the Mackie control functions the Icon series provide and works with the Horizontal and Vertical Zoom buttons - including the “Press them both and they switch function mode”.

Normal Jog wheel mode

  • (Normal) Nudge Cursor Left/Right or Jog (with playback). This will nudge less if you turn slow and more if you turn fast. To switch between Nudge and Jog, Push the Jog Knob.
  • (Zoom Horizontal/vertical buttons active) - Two modes, switch between them by pressing Both Buttons at the same time. There is no visible change until you then select one of them to activate it. At which point the Midi Remote surface will show different functions in the lower right
    • Mode 1 - simple Horiz/Vertical Zoom
    • Mode 2
      • Vertical Zoom - Track selection next/previous
      • Horizontal Zoom - Next/Previous Event on the selected Track

Most knobs, jog included, are turn speed sensitive. Turn slow for fine control, turn fast for coarse movement. This is part of how the Icon Platform M+ works and I just made it so the facility passed into the Midi Remote.


When the Midi remote is first activated in either page it will show fully connected. Unfortunately selecting a Channel or moving some controls (in Cubase or the Icon Platform M+) will immediately cause the Midi Remote to go grey and not longer work. Selecting a Channel in Cubase will immediately cause it to reconnect and it will remain connected for the remainder of your session.
I’m fairly certain this is a Bug in the Midi Remote and have reported it to Steinberg. I’ve been able to reproduce the problem in a different midi remote controller. For now though you’ll need to select a couple of tracks to get it to reconnect and then you should be all good.

** Source Code**
If you would like to develop the script further and/or make pull requests into the code the github repo can be found at GitHub - woodcockr/midiremote-userscripts: A place for user created MIDI Remote API scripts

I’ve also put in a PR to have it added to the steinberg midiremote github repo.


Almost forgot - if the midi remote doesn’t find you Platform M+ you may have a different firmware version and thus MIDI input/output name. You can change it in icon_platformmplus.js in these lines:
deviceDriver.makeDetectionUnit().detectPortPair(midiInput, midiOutput) .expectInputNameEquals('Platform M+ V2.15') .expectOutputNameEquals('Platform M+ V2.15')

One day I’ll figure out how to detect it with a sysex call.


Nice one!

I’m working on the Behringer X-Touch MIDI-Remote script, which is actually full Mackie Control implementation. The Platform M+ is limited.

Good one, thank you!

@Martin.Jirsak Is you source code available anywhere?

Be good to learn from your experience.
The Platform M+ may have a limited set of the full functions but it fits on my desk :wink:

Wow !!
You have truly boggled the mind of this cranky 63 year old!

Hi @SJB928, @robw ,

I sent you PM.

V1 .0 is now released - see the first post for details and the midiremote files.

1 Like

great work.
I do have a B+ directly connect to the M+ plus the X+ via USB to my PC. I’m not familiar yet with Midi remote. I’m curious, do you think that a B+ and X+ version is simple to develop?

thank you, best regards.


Via PM, I sent you my Mackie Control MIDI Remote version (in progress).

Yep should be simple enough. Just more buttons!
I used midi monitor to figure out which buttons were which notes/CC as required.
Unless you can find a manual that works too!

What a great work! My iCON devices collected dust for quite a while because I couldn’t get them to do what I want which is a shame because the hardware is really good and it fits my desk too :wink:
With Cubase 12 and your work this has changed and I am very happy with it so far.

I just had to restart Cubase every time I disconnected the device. While it seems to reconnect its Midi connections it doesn’t respond to Midi in and output. changing channels didn’t help either (I’m on Win 10 Pro Cubase 12.0.40).

On another note: I am desperately searching for a solution to toggle “DIRECT MONITORING” on my Steinberg Audio Interface UR-28M and off with some kind a hardware switch. Steinberg still hasn’t made a key command for that. Is there a way to get that done with this new remote implementation or is this also completely based on key commands?

This is great and it works very well. I have to practice a bit to get it into my workflow but I’m sure it will be worth it. One thing is though, I cannot make the motorized faders move - is this a limitation of the script? I have setup the midi in and out channel in Midi Remote to Platform 2.15.

Sorry, I’ve been away for work for some weeks and just getting back to the feed.

Glad you like the script. I also got the ICON because it “fits on my desk” :slight_smile:

I see that too - if Cubase is running and you (re)connect the Icon Cubase doesn’t pick it up in the Midi Remote. I just make sure mine is on before I start Cubase. I don’t know why, I suspect its only running the Midi remote initialisation when Cubase starts, not on midi port changes.

I can’t see anything in the midi remote API for this aside triggering a key command (which as you point out doesn’t seem to exist).

If you have suggestions on ways to improve the script layout and choices for control mappings do make a suggestion on this topic. It was simply my first guess based on what I could find was available.

That is very odd. They definitely move on my Icon Platform M+ so long as midi in/out are both connected correctly. Are the LED lights changing correctly in response to changes in Cubase (e.g. Solo and Mute changing for a track)?

If the LED lights are responding that it means the midi in/out are working correctly.

For my Icon Platform M+ the Power Adapter must be connected and On for the Motorized Faders to work - the USB power alone is not sufficient to power the motors and Icon state on their website that the motors will not operate in this mode. So use the power adapter. My Icon Platform M+ is connected to a Powered USB Hub and I have deliberately left the USB power OFF, and am running the Icon Power Adapter as the only power supply. Not sure if USB power on would make any difference, just explaining my setup so you can troubleshoot.

Other option is there might be a way to disable the Motors on the Icon itself. It happens whenever you touch a fader for example (so you don’t fight the fader motor). I haven’t noticed a command to do it so just speculating since I’ve seen similar functions in other motorised devices that support MCU.

Thank you for your response.
I have just solved my issue 10 minutes ago af having been in contact with iCon support.
Apparently I had some sort of firmware issue, which I don’t know how I got. I was not able to update the firmware on my Windows 11 Ryzen 5950x desktop computer even though I was directly plugged into the machine, not even in Test mode (a suggestion by iCon support). Perhaps because my computer also was connected to several other peripherals on other usb ports. I borrowed a Mac and was able to update the firmware without problems and without using test mode, and now it does work! I’m thrilled!
I hope this script will get alot of attention from iCon users and that it will stay updated, I’m sure I am going to use it alot.

Hi robw, this seems like great work and a great script to learn from, but I couldn’t find the source code at the github link you provide in the intro? Sorry if it’s just me being daft and not looking in the correct place!


It’s on the develop branch - try this version of the link GitHub - woodcockr/midiremote-userscripts at develop


Feel free to make requests in this thread. The layout is simply one that seemed to fit okay with respect to current Midi remote capabilities. No doubt there is room for improvement in the (somewhat arbitrary) choices. I’d also like to clean up some of the Jog Wheel handling (both in code and use). It works but I hope there is a better way to code it to improve some of the handling.

1 Like

Got it, thanks so much, this is a great help for me.

I’m really overjoyed with this :slight_smile:

One suggestion:
Right now we have two pages, one for mixer and one for track controls (and the the subpages)- how about a page with midi CC’s? That would be handy for programming string libraries etc. I don’t know if it is possible though, I am not yet into scripting and how Midi Remote works that deeply.

I would like to use the master fader only as an AI knob, since I rarely touch the master fader and is most likely to do it as an accident but perhaps I will be able to modify the script somehow if I study a bit :slight_smile:

Edit: Could it be possible to show selected track on the controller?