Icon Platform M+ MIDI Remote - version 4.0.0.rc1 Release Candidate

Hi Platform M+ midi remote users.

It’s been a long time between updates and version 3 never saw the light of day, here’s version 4 Release Candidate 1. There are lot of changes under the hood including the beginnings of Stream Deck integration for display and page switching. As a result and to hopefully reduce the impact of their being horrible bugs impacting your work the new version is sitting in a new repository and has a new directory location of “bfw” rather than “icon” because it (optionally) has more integration via the Stream Deck. You should install the midi remote script into <“…\Documents\Steinberg\Cubase\MIDI Remote\Driver Scripts\Local\bfw\platformmplussd\bfw_platformmplussd.js”/>. The “…” will be wherever you have the Documents folder for your MIDI Remote scripts.

Here’s some highlights:

  • The page handling has been completely refactored. All pages are subpages and you can navigate to them directly using the new Shift page activated via the Mixer button. Use the Select and Mute buttons - when on the Shift page the top row of the LCD is Select button to page binding, bottom row for Mute buttons.
  • The LCD display now provides more information including track and parameter names, moving controls shows Values and then returns to parameter names. There’s even a Display Value Toggle to force Value display (for those of you with a good memory on what is where). You will find the Toggle on the Channel 1 Rec button on the new Shift Page.
  • An additional midi port binding for a Stream Deck - so you can setup buttons to control page switching and display much more information on the SD buttons (lots more characters than the LCD!). Note: You will need to create the loop back ports and select them in the Midi Remote when you add the controller (the names of the ports in the picture below - it was documented, looks like the AI might have eaten that :smiley: . If you don’t have a Stream Deck the data will simply go nowhere and all will be well. Everything will still work, and the Shift Page (via Mixer button) supports the navigation. If you have a Stream Deck or Virtual Stream Deck (I use an old iPad above the Platform+) then you can set it up like the image below (navigation on the left, top right button updates when Display value is ON/OFF - I had buttons with Track Names, Parameter Names, and 4 lines of text but disabled that in this release, it needs more development).

There is documentation, of varying quality, on the configuration and bindings of all the pages in the repo here. I had an AI generate the docs and have only given them a quick glance for correctness. If you are familiar with the old setup then the bindings on each page haven’t changed, its just how you get to the pages that has and the displayed information.

Also in response to a request to streamline things for users, the AI had a crack at creating the necessary release action and with one small tweak it now works. You can find this release (and all future releases) on the github releases page:

https://github.com/woodcockr/cubase-bfw-platformplussd/releases/tag/v4.0.0.rc1

Hope you enjoy the new release - be sure to use the new directory so you can switch back on the inevitable discovery of a myriad bugs.

Cheers,

——-
Loopmidi ports

image

In Cubase the Input is the …SD Input
On the Stream Deck the MIDI input is the …SD Output. Example for Mixer button below.
Midi note numbers for the pages are consecutive from 0 (Mixer), 1 (sel Chnl EQ)…5(Ch Strip Gate)….10 (Control Room), 11 (MIDI CC), 12 (Shift)

Screenshot from my Virtual Stream Deck…

Thanks for your great work! I really like the way the controller works (before your old skript this controler was useless with cubase at my opionion). Thought about integrating the stream deck for exactly that purpose and will test this as soon as posible. Nice to see that it goes on with this “old” controller.

Happy to share it, glad you like it.

I’ve released a 4.0.1 now. Seems to be holding up just fine during my use (I stopped developing and made some (bad) music to see how it was to use.

I’ve added Unmute All and Deactivate All Solo as a result. They can be access on the Channel buttons or via Stream Deck (my SD setup below). The AI generated docs seem to be saying the right things about the configuration but post on this thread if it gives you trouble.

Hi,

I’m very interested in this but I cant seem to get the links to work - it says 404 error.
Can I use it withot the stream deck and with only the Icon screen?

Opps, my bad. Forgot to push the “make public” button - you should find the links work now. This is the releases page which will update automatically with any new releases: Releases · woodcockr/cubase-bfw-platformplussd · GitHub

You can use it without the Stream deck. You will still need to setup the extra midi ports as if you had a stream deck but operation will not be impacted. The Mixer button will activate the Shift page which has navigation for the different pages. This is definitely more convenient via a SD or virtual SD but it works just fine pushing Mixer and then tapping Sel, Mute, etc for the different pages. I attempted to have the LCD display which page goes roughly with which button but the screen is very constrained. Still better something than nothing.

Thank you! Do you want comments/bugs on this page or on the repo?
I noticed that quick controls is on the first fader line 2 (it says EQ on the display) in stead of the second fader line two (where it says SndsQC)

I noticed that it is Track Quick Controls and not Focused Quick Controls which is what I need. I’ll dig into it! Very exited!

On the forum, this page is fine. That way others can join the discussion if they wish.

I will look into the two issues you’ve mentioned - I’ve not used Quick Controls at all in my recent usage.

I do find the Stream Deck page switching more convenient than the Shift Page (via the Mixer button). Both work though so I’m pretty happy with the refactoring.

I put up a new minor release - added the code mentioned on the forum to auto update the mixer zone when visibility is changed. It has a short time delay before it updates the Icon after a Visibility change in Cubase. Works though and much nicer than having to force a refresh.

Now the quick controls seem to control Focus Quick Controls for some reason. To me this is my main usage of the script - it is so nice to have my most used controls of any plugin on the small display and on the faders for automation writing - it is phenomenal!

I’m not into programming at all, and for some reason my script with the icon has been quite unstable. Multiple instances showing up in Nuendo and Cubase, no connection at times, the script working in smaller session but not larger and so on, so I really hope to have a solid solution. Now I know that there is a json file I can delete if things mess up :slight_smile:

Thank you so much for your work!

I just checked and the code only uses mFocusedQuickControls. So it will be whatever is in focus - so instrument controls when focus is on an instrument and track controls when on a track. At least it should be - unless there is a lock active in Cubase or something isn’t refreshing when the focus changes. I can’t test it myself right now but have noted the issue in my dev logs.

These are midi remote project, setting, script update, json config caching issues. The README.md file contains my attempt at getting a consistent method to get Cubase, including the currently open project, to refresh everything if you replace the midi remote script. It is still hit and miss. During development I tend to:

  1. Replace the script
  2. Open a project
  3. If the script has no errors it will usually initialise - with the incorrect midi ports assigned even though the icon will become active and move faders (only some ports are broken).
  4. Hit midi remote refresh scripts button
  5. 3 will happen again
  6. Chances are there will be a Shadow (disabled) icon midi remote as well as the newly initialised one (with incorrect ports)
  7. Remove the Shadow one
  8. Remove the one that says it is “working” - I usually use the Pop up window with the midi remotes in it to remove it since during dev I have it open.
  9. Delete the MIDI Remote\USers Setting\bfc_platformplussd_…json file.
  10. Re-add the control surface with correct midi ports - this time it should come up fully correctly
  11. Save the Project

Sometimes this will result in the project having the new setting embedded. Sometimes it doesn’t. I’ve never figured out a reliable way to get Cubase to update to what the actual script says when it is updated. The cached Json (step 9) will update as well during midi remote script reload (which is why its important to remove it, in case it decides to use it after the main script is updated).

It’s very annoying to say the least. My theory is that some part of the midi remote mapping is being stored in the Project file, and isn’t always updated when the script is.

On this aspect I don’t know what else to do. It appears to be outside the scripting control.

Exactly my experiences! Glad you made a guide to get around it as much as possible. We should report it to Steinberg - but I guess it has been done? Would be so nice to have it ironed out.

This is fixed in release 4.0.3

Thanks for the bug report.

Very cool. Thank you very much. I think this will improve my workflow. I really like the new subpage selection, though on my Maschine the note numbers were slightly different from what was specified. I experimented a bit and came up with the following.

In Stream Deck, I created a multi-action consisting of 2 steps:

  1. Button type: hold and note 84 c5 (activates the subpage selection)
  2. Button push and 24 c0 (activates the mixer)
    Maybe this is too complicated, but it works for me.

To be honest, I kind of miss the page with the effects send levels. That was one of the main features I used. Is there a way to bring that back, or is it no longer possible with the new script?
By the way, with the old script, I had assigned those to the faders to make the operation a bit smoother, i think the encoders are not so precise. If anyone’s interested, I could upload the script somewhere. It’s still based on the first version, though.
And another thing I had in there was the option to disable the AI knob, because I didn’t like it when I was working with the mouse and the fader kept jumping around. I think I just swapped it out for the Control Room or something :wink:

Hi @RanDypsilon ,

For the SD action you don’t need a multi-action. Just sending the midi for the desired page should work. All the note bindings for the stream deck can be found here: cubase-bfw-platformplussd/src/midi/binding.ts at 52a2886b541454a45f51f06c4e10e624a07dc6df · woodcockr/cubase-bfw-platformplussd · GitHub

No pages have been removed. I believe you are referring to the Sends QC page. It is still there. There was a bug in 4.0.1 fixed in 4.0.2 which had EQ and Sends QC swapped on the shift page buttons. Perhaps that was the issue.

With the Shift page (and the Stream Deck) we can add some configuration toggles like this simply enough. Feel free to write a PR if you like. I may get to it myself in the next couple of weeks.

How great is it! I was able to switch the Sends to the Faders and the QC to Encoders (simply toggle line 7326 with line 7343 in the .js script). For the rest I’m testing and be really happy about this pretty little script :slight_smile:

Quick question: How many of the ports need to be Visible in the Midi Port setup? Perhaps none?

Just an update:
I have no programming ability whatsoever. I do have some technical know how though. I have been vibe coding some vst3 plugins (about 15) during the past two weeks, using Claude Code in VS Code. I’ve installed JUCE and CMake and it is the most wild thing that I’ve ever tried with technology.

All the plugins work in 5.1 and include:
A fantastic sounding 5.1 resonator effect
Granular sampler that works in 5.1 in different versions: live input, long .wav file, a folder of .wav files
Crazy polyrhytmic midi effects and arpeggiators using physics, bouncing ball, fractal delays, fibonacci delay.
A 5.1 physical modelling synth that uses the same midi functionalities as mentioned above and much, much more.

I always had stability issues with this wonderful script that I’ve used for years. Now I finally was able to modify it to my hearts content using Claude Code. I installed Node.js and started prompting and now I have my simplified version without stream deck, CC, and loopmidi, but only Quick Controls and control room volume on the master fader. Only one midi input and output. It serves me well.

EDIT: The issue with multiple shadow instances does happen all the time and I believe @robw is right, that some Midi Remote data is stored in the project file. It is very annoying. Would be nice if there was some kind of workaround until Steinberg fixes this eventually, hopefully

Thank you for all your work robw!

Hi @robw
Firstly, thank you for all your hard work on this.
I’m currently using the older version of the script (for which I’m very grateful) and it’s working - but I have a new PC and a streamdeck, and want to power up.

I first tried the newer version a couple of months ago - but got stuck with loopmidi owing to the new Windows Midi updates. So I gave up until now, given the CFR for the Win Midi updates has been complete a couple of weeks and things should be stabler.

So before I dive in, my questions are:

  1. Can I use the Windows Midi tool to create midi ports instead of loopmidi?
  2. I’ve gone through this post, and the previous post, and the .md files on github, and as far as I can tell, getting this working should be as simple as copying the script to the Steinberg\Cubase\MIDI Remote\Driver Scripts\Local\icon\ dir, and then following the Streamdeck Integration guide ( cubase-bfw-platformplussd/STREAMDECK_INTEGRATION.md at main · woodcockr/cubase-bfw-platformplussd · GitHub ). But I’m apprehensive of messing around with midi on my nice stable new machine which is working, so I wanted to confirm - is this all?

Also, I have read that the motorised faders may or may not work; they don’t currently with the old script I’m using. Is this something that v4.0.3 will help with?

Once again, thanks!
David

Hi David,

You are most welcome. Glad it is useful to you.

Yes. That is how I have my setup running. I use the MIDI v1 loop back ports which MS added as they were designed to replace what loopmidi does.

Correct, though I expect my documentation may be lacking as its not received enough user feedback yet to cover a lot of different ways of communicating. documentation is hard.

Both the old and new scripts have working motorised faders in my setup on every page except the MIDI CC page (Cubase doesn’t have a way to send that midi data back to the Icon as an echo of what it is sending out to the actual instrument the CC info is for).

If faders are not working, do the LED lights (Mute, Sel, Rec, Play, Stop) turn on and off when Cubase has the corresponding button presses? Check with a Mute button on the selected channel. It should turn on and off when CUBASE Mute is mouse clicked on and off. Obvious I know, but given how the state management works there are some quirks if you happened to have pushed the button on the Platform, and other oddities when the MIDI loop back is not quite right - the newer version of the script handles this better, but its still not perfect because of the way midi remote worked.

My first check would be this. It will tell you if the MIDI Port From Cubase to the Platform M+ is sending data at all. If the LEDs turn on and off then that loop back port is correctly configured but your Icon isn’t activating motors - which will be a physical issue I am afraid (make sure power supply is all good and also check its in MCP mode - see the manual on how to do that, if you have a LCD display it will tell you on start up).

I’m travelling at the moment and will be slow to respond but let me know how you go. You can direct message me on the forum or in this thread with screen shots of your configuration if you run into trouble following the documentation. Feedback is welcome and I’m still not sure about the Stream Deck integration. I like the handy shortcuts, but it adds complexity. Not quite sure myself but it was fun working out how to do it!