X-Touch (+Extender) MIDI Remote Script (MCU mode)

Hey guys, regarding the visibility, there could be a workaround. I used a C24 as a controller for a while and I just remembered, that the visibility mirroring only worked, when a visibility agent was applied to the project window and not to the mixer window. So could you please try to sync the project window to the first mixer console? We just ordered an X-Touch for the studio but it didn’t arrive yet, so I can’t test it myself.

Where did you park the low and high cut filters?

Now that I have the Extender I can confirm your script turns the X-Touch Extender into a neat little standalone controller, exactly how I wanted! Awesome!!
Many thanks again.

I use mouse and keyboard and other controllers to control transport, plugins and everything else, so I don’t need all the extra buttons on the regular X-Touch or even the X-Touch Compact.

I will be using the rotary buttons to switch to different Midi Remote mapping pages in order to change the function of the encoders.

1 Like

Hi! I’m using this script for my XTouch One:

Is there a way to add the automatic part switching for the One?

Hey @ppmc,

I don’t really know what you mean by this. Do you mean the “one encoder selects the plugin and the others control its values” approach? It was an active decision to not implement this given it’s more complex and I find the “focused plugin” approach easier to use anyway.

If there are any parameters that you currently can’t control, feel free to use the Remote Control Editor to tweak the way a specific plugin’s parameters are laid out on the encoders.

1 Like

Yeah, I thought about such a hardcoded approach in the beginning. However, comparing the added complexity overhead with the limited use (the selected channel types cannot be combined), I decided to better wait for the setFollowVisibility() implementation to arrive. Little did I know :see_no_evil: Now that we’ve been waiting for a long time and it is very likely Cubase 12.0.70 is the last Cubase 12 update, I might reconsider this. However, since API: mOnTitleChange and mOnColorChange broken for some bindings has not seen any fix, my priority will be to implement a stable workaround for Cubase 12.0.60 and 12.0.70. Sadly, that workaround might complicate implementing a visibility selection mechanism.

Nope. Only that it’s highly unlikely to ever arrive in Cubase 12.

Currently, that would be a “no”. You’re the second one to request per-device visibility settings, and I’m generally interested to make this possible one day, but it is not my priority right now. Also, this might be of limited use at the moment, since visibility agents have no effect at all without setFollowVisibility() working.

I don’t think so, sorry.

That’s a very interesting idea and I’d love to have this. Still nothing I can do on my own without the API providing at least basic support for it :man_shrugging:

One of the first things I tried when I realized setFollowVisibility() had no effect was hiding tracks in the project window. Sadly, that has no effect either, so I doubt visibility agents will make a difference.

Perfect candidates for the “Track” encoder assignment. I’ve been toying with the idea of adding them there, but I was on the fence about whether they should be there by default or hidden behind a config flag. Now I think there’s nothing wrong with just adding them to the list of “Track” assignments.

Just checked a remark I have about setFollowVisibility:

Mixer banks created by the script will follow whichever visibility configuration is active.

Hi all,

I just released v1.6.0 which – most importantly – works around the regressions introduced in Cubase 12.0.60, so there should be no differences between Cubase 12.0.52, 12.0.60, and 12.0.70 anymore :tada: Furthermore, I renamed the project to cubase-mcu-midiremote and added a script version for the iCON QCon Pro G2 (as initiated by @bluesound). Version 1.6.0 also detects “X-Touch INT” port names (thanks @swinginguitar), provides dedicated Track and VST Quick Controls (thanks @Danix78), and offers low-cut and high-cut encoder assignments (@Capelli.mp3). There’s also a table for encoder assignments in the Readme now.

Thanks all for your input and help, both here and on GitHub! :pray:


Great work man! Thank you :pray:t3:

Listen I made a few changes to your 1.5.0 script. And it worked, but it somehow stopped. Just some thoughts you might wanna consider…

Most of the time I’m editing parameters of only the selected channel, instead of multiple channels. That’s why I remapped your „First“ button assignment.

Basically I used to „monitor“ page as a global track control.

Left to right:
low cut freq - low cut type - blank - blank - pre gain/monitor (on press) - phase - blank - blank - high cut type - high cut freq

The low and high cut activates/ deactivates automatically when adjusting the freq.

Also I remapped the „plug-in“ button to the focused quick controls. That way they control any window that is open. No matter if plugins or instruments. And with neither open, they control the track quick controls (where I have panorama assigned :wink:

This gave me a veeeeery intuitive controller mapping.

Now here is my question. How can I make the LEDs follow the selected channel, or project window? Because for plug-in page I’d like to have them follow the project window. As you can tell, this is my most used page…

Thank you!

1 Like

Excellent work bjoluc!! I bought the x-touch about 3 years ago but gave up with it and stuck it in the cupboard. Saw your script yesterday and dug it out and its like a new toy. Its awesome! Even the colours make me smile each time I see them come on.

I especially like the fact your script doesn’t crash whenever you touch the Jogg wheel like mine did!

Is it easy to add the click functionality to the click button? [edit - it is!!]

Starred and Caffinated! Thank you.

1 Like

Thanks for the new version and the hard work!

I can confirm that all is working again (colors and track names) with the new versions of Cubase and your script.

A suggestion though: in Mackie mode, I was using the Ctrl key on my keyboard to select multiple channels with the X-Touch. With your script, this not work anymore.
Is there any chance to make it work or is it a limitation due to the MIDI Remote interface?


1 Like

The script you modified stopped working?

I thought about that earlier, but decided against it because the Focus Quick Controls only support 8 parameters. With the current Plug-In button, we can cycle through all of a plugins remote-controllable parameters. Do you think there should be a config flag to use Focus Quick Controls on the plugin button?

The scribble strip display colors follow the encoder colors (= colors of the channels the encoders control parameters of). If an encoder is unassigned, the color of the corresponding mixer channel is used directly. Would you be interested in a config flag to ignore encoder colors and always use channel colors? I might end up using that one myself :sweat_smile:

That’s neat! I didn’t know this was possible.

You name it :confused: We should open a feature request for this.

Thank you @lsunley! :blush:

100 % agree, the colors were the reason I started this project :grin:

For anyone reading and new to the Midi Remote: You can freely reassign any control element of the X-Touch (except Motor and Display Name/Value) using the Midi Remote Mapping Assistant :tada:

1 Like

Thats definetely wanted and hopefully a keeper.

You should add Focus Quick Controls to your arsenal, so that we have both features. With MCU it is “SHIFT + Master” to activate it.

This feature would make so much more sense, if you ask me.

1 Like

Wow, one more hidden feature I didn’t know about MCU! Guess I should’ve read the manual more carefully :smiley: Then forget about the config flag thing – both options should be available by default. Now I’m wondering if “Shift + Master” makes sense to keep or if it should be “Shift + Plug-In”, which is not original MCU mapping but seems quite intuitive to me, given we also put “Shift + Instrument” on the “Inst” button… I’m leaning towards “Shift + Plug-In” right now. @u-man What do you think?

Since you dont have a Master button, or at least not such a labeled button, i am fine with any of the both “Labels”: “Shift + Instrument” or “Shift + Plug-In” both sounds intuitive to me.

I dont know, if you know it, but you can map Send Pan settings, but only with the mapping editor. It is not exposed on the API script side. Open the channel window (the “e” on a track) go to send pan tab and right click it.

The mapping editor will cover only the “turn” function of the encoder. In a normal case you would miss LED ring feedback and the display values, BUT if you previously scripted a mapping page, that worked with the “normal” pan settings, then you could use that mapping page and just map the Send Pan Settings with the mapping editor. This way you have a 100% working Send Pan page. Not possible to do with scripting alone. :wink: :slight_smile:

1 Like

Hi bjoluc,

First post on here… been reading about this fantastic script and got a chance to try it today.
I have an MCU Pro and an extender and was wondering if you might know what part of the script I could check for the following issue that I am seeing…

The only problem I am having is with my display of track names.
The MCU shows two “rows” on each channel display that look basically like this, based on the name/value selection on the MCU…




For some reason, I am not seeing the track names… however

If I use the bank button on the MCU and bank from across say 1-24 tracks, every 3-4 button presses I will suddenly see the track names flash, then disappear. If I bank across tracks at a faster pace, every now and then the track names will suddenly show up and stay there. Then, if I bank again, the track names disappear again. It almost feels like it is refreshing something and causing the track names to disappear. When it does show up on the screen, I’ll then see something like this…


I tried changing the AbbreviateString setting that you mentioned earlier and was able to see the track name length truncate when I changed it 5 characters… once I could get the names to show up just temporarily. I’m not sure which setting might be causing the weirdness for just the track names showing up or not.

Any ideas what I could check?

Thank you so much for making this script… lack of autobanking has been a pain since switching from Reaper to Cubase a couple of years ago. I really like Cubase, but this one lack of control has driven me crazy (and apparently a lot of other folks too).
I would be happy to test your script to help other MCU Pro users as well, that would be cool.


1 Like

I forgot to mention, I’m using the following
Cubase 12 Pro 12.0.70
Mackie MCU pro 4.0.3 firmware
Latest xtouch script 1.6
Windows 11 pro
midi ports in/out - MCU Pro USB v3.1

When using the default Cubase control surface for MCU Pro, the track names display with no issues. With this script, they seem to show up only while banking. I noticed they showed up a few times in a row, but sometimes the text would get “garbled”, if you will.

Thank you for your time!

1 Like