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

This issue was introduced in 12.0.60 update. I don’t know what changed in Cubase as the release notes say nothing.

Yes, apparently this is a bug introduced in MR. This is also what breaks the great script by bjoluc for the X-Touch - the default Mackie Control is still a better option (for me) because of this.

It seems that the new update (12.0.70) do not solves the problem. Very disappointed.

Hi all.
I found a solution thanks to @bjoluc at API: mOnTitleChange and mOnColorChange broken for some bindings - #20 by bjoluc

In the @robw script find the line with
page.makeValueBinding(faderSurfaceValue, hostMixerBankChannel.mValue.mVolume).setValueTakeOverModeJump().setSubPage(subPageFaderVolume)
and duplicate it.
For me it works. It’s strange, but it works. Thank you @bjoluc . Maybe a future update breaks the script again but meanwhile.

3 Likes

I’d been monitoring that thread but hadn’t seen that post until after yours. Extremely odd indeed! @quark could you please verify which Cubase version you were running (patch level)?

In any event I will test it on the weekend myself and put up a new version of the script for others to use with the fix. Thanks @quark for bringing this to our collective attention.

Hi @robw .
My version of Cubase is 12.0.70 build 464.

Thank you.

Hi @robw and all friends,
Please let me know whether this midi remote script of Platform M+ will work for Platform X+ if I use it as a standalone controller?

Not sure. The Faders will likely work but the page switching and other functions are managed by the additional buttons on the Platform M+. You could modify the script and perhaps use the a different trigger mechanism to switch pages.

Hi @quark
Just wanted to let you know I did take a look a the solution @bjoluc used in his script. Doesn’t appear to work for me but we have slighly different ways of doing things. I’ll look into this some more when I have time. It is rather annoying!

Hi @robw .
It’s strange. As I said I only duplicated the line :
page.makeValueBinding(faderSurfaceValue, hostMixerBankChannel.mValue.mVolume).setValueTakeOverModeJump().setSubPage(subPageFaderVolume)
and it’s working for me. I do not know if it has some sense but I tried based on the @bjoluc notes about this and worked.

By the way. This script could be adapted for working with the Platform X+ extensions?. Or is there some limitation on Cubase Midi Remote for working with 2 units?.

Kind regards.

@quark - hmm, works for you. I must be doing something different. I’ll recheck my changes against your line of code. Maybe I misunderstood. I was in a bit of a rush at the time.

Platform X+ extensions - I’m not sure how these appear to Cubase as I don’t have one and nothing I’ve read come across that way. I would anticipate that if they are connected to the Platform M+ then they would simply appear as additional MCU type extensions with associated MIDI CC/PB additions. I’m not aware of any limit in the Midi Remote code to how many fader banks you can have. It could be as simple as making the 8 into a 16 in the code that loops through to build the mixer banks.

@bjoluc clearly has an extension active in his code GitHub - bjoluc/cubase-mcu-midiremote: Cubase 12 MIDI Remote Scripts for DAW Controllers using the MCU Protocol - I would expect the behaviour to be the same given these are all MCU protocol.

1 Like

@quark - yep, I stuffed up in haste. Now with the correct line duplicated it works as it used to! :slight_smile:

2 Likes

v2.0.1 of the Icon Platform M+ MIDI Remote script is now available on the github repository - GitHub - woodcockr/midiremote-userscripts at v2.0.1

This has the work around for the Track Names not updating bug introduced by Cubase 12.0.60. Shout out to @bjoluc and @quark for the solution.

2 Likes

I am interested in this too…
How can we do this? Working with Midi CC and the motorized faders would be awesome.
Thanks a lot

Update:
I was able to get the CC numbers from the m+ to the midi page.
I can record automation but I have no idea how get the values to the faders.

I tried a lot with this code lines:
midiOutput.sendMidi(activeDevice, [0xE0 + fader)
midiPageOutput.sendMidi(activeDevice, [0xB0, cc, ccValue])
But i had no luck.

Can you help me please?
Thanks a lot
Kind Regards

thats awsome! the values for the mixer page are working again indeed.

I tried doing the same trick for the selected track page(QCs) by duplicating this line:
page.makeValueBinding(surfaceElements.selectedTrack, selectedTrackChannel.mValue.mVolume).setValueTakeOverModeJump().setSubPage(subPageSendsQC)
but that didn’t work unfortunately. if someone has a trick for making the values work on de channel page i’d be interested🙂
cheers,
Jurian

I just found this thread and I want to say you are a God.

This has reinvigorated my creativity and allowed to get 3x the amount of use out of this Platform I had sitting here. Thank you!

1 Like

@robw - I’m Finding this all fantastic work!
I Have a couple of questions. I would like to change a few things in this code but have no real idea what I’m doing. For example, I’d like sends to be on faders… and for Main Fader 9 - to toggle betweeen AI and selected channel volume.

Am I right in thinking that changing this script using the mapping assistant will mess up lot’s of things. I seem to have “played around” with the mapping assistant, and finding it hard to revert back to your original scripts… I’ve tried deleting them, re-downloading your original scripts only to find my “edits” come back to haunt me.

Again, thank you so much for taking the time to do this. I’m so NEARLY there with my ideal set up !!

Hi @indietay
Apologies for the very slow reply, busy with work.

Yes, the mapping assistant will definitely mess up lots of things. I believe the edits from the mapping assistant may get saved along with the project, hence the haunting feeling. It’s not clear to me precisely the relationship here but I’ve seen something similar and it was annoying. Can’t recall how I managed to get back to “normal”.

As for Main Fader 9 and Sends - you can alter the code as you wish. I recall an earlier version I had setup up switching from AI and selected channel volume (or maybe it was main volume). It’s probably still in the git history. I think I used the mixer button or something similar to switch. Similarly you can set up a switch to change the Sends to be on faders (and back again).

I have some leave coming up and am hoping to upgrade to Cubase 13 and write some (bad!) music - I’m better with code than I am with music so will probably tinker with the M+ midi remote to make sure it runs with Cubase 13.

Hi Folks,
I purchased Cubase 13 and updated the Icon Platform M+ MIDI remote script to use the new Touch Fader in Midi remote API v1.1. This appears to be working correctly for Automation, though I’ve not used touch faders previously so welcome any feedback to confirm. Theoretically this has the necessary check to make sure it doesn’t break on Cubase 12 which doesn’t have the updated API.

Whilst I was at it I fixed the bug that was preventing Display updates for the Focussed QCs on the Selected Channel Page (introduced by cubase 12.0.60 an not fixed, still…). You can now be on this page and change selected track and/or switch focus to a VI editor and the QC titles and values on the display will change.
Known issue: if you are on the Selected Channel Page and you add a QC in Cubase for the Track, the display doesn’t update. There is no onTitleChange event triggered. Oddly enough both the impacted Fader and the Cubase midi remote picture of the surface do get updated. What magic is requried to make this update the actual controller is beyond me. But so is the need to duplicate valueBindings to get updates to work in the first place. Not to mention that this works:

    var quickControlValue = page.mHostAccess.mFocusedQuickControls.getByIndex(idx) // ! Weird: If this isn't a var in the line below but a direct call then Cubase will not bind values correctly
    page.makeValueBinding(faderSurfaceValue, quickControlValue).setValueTakeOverModeJump().setSubPage(subPageSendsQC)
    page.makeValueBinding(faderSurfaceValue, quickControlValue).setValueTakeOverModeJump().setSubPage(subPageSendsQC) // ! Duplicate to overcome C12.0.60+ bug

but this doesn’t:

    page.makeValueBinding(faderSurfaceValue, page.mHostAccess.mFocusedQuickControls.getByIndex(idx)).setValueTakeOverModeJump().setSubPage(subPageSendsQC)
    page.makeValueBinding(faderSurfaceValue, page.mHostAccess.mFocusedQuickControls.getByIndex(idx)).setValueTakeOverModeJump().setSubPage(subPageSendsQC) // ! Duplicate to overcome C12.0.60+ bug

This is seriously the weirdest programming experience I have ever had - and I’ve been programming professionally for 30+ years!

And if Steiny happens to read this - please please give Midi Remote API more love. It has the potential for greatness but these issues plague it and not having it Follow Track Visibility is just nuts.
You might also like to fix the typo in the MIDI remote script console. I have MIDI input ports not intput ports.

image

3 Likes

Hi @indietay

FYI, I reviewed my previous attempt at getting Faders and Knobs to flip roles. Unfortunately the Platform M+ flip function (pressing the two upper left buttons together) produces a MIDI Note ON and MIDI Note OFF event with the same time stamp. Whilst this is received by Cubase my attempts to have MIDI Remote detect a note event (either or both) fails - as such this particular way to trigger a flip needs another approach.

I’m somewhat running out of buttons so need to find some other options some how. Do you have any suggestions on alternate button usage?