Remote Script for Behringer X-Touch

Discuss Live-ready controllers other than Push.
RobrechtV
Posts: 231
Joined: Sat Feb 18, 2017 1:32 pm

Re: Remote Script for Behringer X-Touch

Post by RobrechtV » Sat Aug 23, 2025 2:54 pm

Kik07L wrote:
Mon Aug 18, 2025 7:49 pm
perfect ! telle me when it's all reday and let's publish a bit release then ! :)
Almost there! I added colored scribble strips for default Sends mode (as the user requested through your Discord). Just need some more testing for Single Send mode combined with Chains.

Edit: I implemented a way to handle chains in Single Send mode. Visible device chains will now simply show their corresponding "local" send (to a Return Chain within the device). For instance, if global send "B" is selected, chains will instead show their local send "b". If the number of global Return Tracks differs from the number of Return Chains within a device, inactive sends will turn black (for instance: global send "C" is selected but a chain only has local sends "a" and "b").

I think all features are now present for the new release, if no bugs turn up.
lectro wrote:
Tue Aug 19, 2025 7:30 pm
Wow!! That's great to hear, I will be checking this out.
All the best
I'm glad I got it working, this was a great suggestion!
Colored scribble strips on the Behringer Xtouch!
download scripts | forum posts

RobrechtV
Posts: 231
Joined: Sat Feb 18, 2017 1:32 pm

Re: Remote Script for Behringer X-Touch

Post by RobrechtV » Tue Aug 26, 2025 8:48 am

Okay, I just fixed a couple of long-standing bugs and committed a release candidate.

I had a look at what's been added since the last release. A nice big changelog! :D

Macro Mapper
Single Send Mode
Device Control Lock
Night Mode
Chains behave as groups


Kik07L, most of the info for the big new features is in the Readme, but if you feel like something can be explained better, feel free to change it. There are also a couple of small changes worth mentioning:

Miscellaneous
  • Added: SHIFT + channel strip SOLO button adds track to stored Global Solo tracks / removes track from stored Global Solo tracks.
    (This allows you to set up a Global Solo group before soloing them all at once.)
  • Fixed: soloing a track by mouse click now correctly cancels Global Solo.
  • Changed: in default Sends mode, scribble strips now show the color of the corresponding Return Track (instead of yellow).
Colored scribble strips on the Behringer Xtouch!
download scripts | forum posts

RobrechtV
Posts: 231
Joined: Sat Feb 18, 2017 1:32 pm

Re: Remote Script for Behringer X-Touch

Post by RobrechtV » Tue Aug 26, 2025 12:48 pm

Actually, lol, I can't stop adding features. Just one more for the "Miscellaneous" list:

Miscellaneous
  • Added: SHIFT + channel strip SOLO button adds track to stored Global Solo tracks / removes track from stored Global Solo tracks.
    (This allows you to set up a Global Solo group before soloing them all at once.)
  • Fixed: soloing a track by mouse click now correctly cancels Global Solo.
  • Changed: in default Sends mode, scribble strips now show the color of the corresponding Return Track (instead of yellow).
  • Added: CONTROL + global SOLO button delays Global Solo toggling to occur in time with the song (according to global launch quantization).
(This helps make Global Solo a live performance tool, kind of like scenes in Session view.)

Implementation was pretty straightforward and I'm not expecting any new bugs. And now I'm leaving it alone until after the release. :mrgreen:
Colored scribble strips on the Behringer Xtouch!
download scripts | forum posts

gregjar
Posts: 31
Joined: Thu Mar 20, 2025 3:07 pm

Re: Remote Script for Behringer X-Touch

Post by gregjar » Fri Aug 29, 2025 5:36 pm

1) there is no button assignment for "MIDI Arrangement overdub"? Very often have to on/off it with solo recording.
a) Maybe it makes sense to assign it to empty "Trim"? Or, may be,
b) would it be logical to assign it to "Replace" and assign "Capture MIDI" to "Drop" next to it? Punch-in/out move to the shift-marker and shift-nudge?

2) How do I make some changes to the script so that it starts immediately in "night" mode?

RobrechtV
Posts: 231
Joined: Sat Feb 18, 2017 1:32 pm

Re: Remote Script for Behringer X-Touch

Post by RobrechtV » Fri Aug 29, 2025 7:44 pm

1) I've had a quick look in the API and I think an Arrangement Overdub button should be possible. I'll keep you updated once I find the time to implement it.

Assigning it to TRIM sounds good, simply because that button is still unused and it's close to somewhat related functions like automation recording. I want to be careful with moving existing functions around and potentially breaking users' habits. (Also, MARKER – NUDGE – CYCLE – DROP – REPLACE all relate to the song position and loop bar, and I personally use punch-in/out quite a lot :) ).

It's a little frustrating that the labels of some of the buttons don't reflect their function, but that hardware button layout was thought up for a whole other context a long time ago (historically related to the Mackie Control devices and more traditional DAWs). I've more or less resigned myself to maybe one day having a nice overlay made for myself with the actual functions, and maybe some color coding for the SHIFT/ALT/... buttons.

2) In SoftwareController.py, try setting the first occurrence of self.__night_mode_on to True instead of False. If that doesn't do it yet, add self.__update_night_mode_leds() at the bottom of __init__, after self.__update_automation_record_button_led(). Make sure to indent the new line like the one above it.
Colored scribble strips on the Behringer Xtouch!
download scripts | forum posts

gregjar
Posts: 31
Joined: Thu Mar 20, 2025 3:07 pm

Re: Remote Script for Behringer X-Touch

Post by gregjar » Fri Aug 29, 2025 8:46 pm

Thank you very much!
You can also bind "Create a new return track" to an empty BUSES. This bring all types of tracks creation in one row.

Later, when it comes to creating a convenient overlay, the view buttons and the three create buttons in this row can be conveniently grouped.
Probably, when creating a new overlay scheme, You will have to think about a script option (or a special switch) for those who will use it without an overlay...

By the way, I'm just cutting out the overlay from paper and writing on it with a pencil (and putting colored marks for the modifier actions). ) I need to think it through better, and then I'll present You my version for a visualization competition. ))

A question for everyone: how do You mark up the new layout? Very interesting, because simplicity and clarity are very important.

RobrechtV
Posts: 231
Joined: Sat Feb 18, 2017 1:32 pm

Re: Remote Script for Behringer X-Touch

Post by RobrechtV » Sat Aug 30, 2025 11:32 am

Alright, last beta before release (for real this time):
  • TRIM now toggles MIDI arrangement overdub.
  • BUSES adds a new return track.
  • Added code to save user settings: Night Mode is now remembered across sessions.
RobrechtV wrote:
Tue Aug 26, 2025 12:48 pm
And now I'm leaving it alone until after the release. :mrgreen:
Thanks for the suggestions, gregjar! These feel like useful additions.

Oh and about marking up the layout for an overlay: I'm also curious for ideas. The button mappings have been constantly evolving with all the new features added so I never actually made an overlay for myself, but maybe it's time to do so.

Kik07L, I think – even with the last-minute additions – everything is now bug-free.
Colored scribble strips on the Behringer Xtouch!
download scripts | forum posts

gregjar
Posts: 31
Joined: Thu Mar 20, 2025 3:07 pm

Re: Remote Script for Behringer X-Touch

Post by gregjar » Sat Aug 30, 2025 12:49 pm

Saving settings is a genius move! ))

Maybe You can also bind the F1-F8 buttons with Record Quantization?
With only one button selectable at a time. Or no buttons selected. No selected (previous selected pressed a second time and deselected and no other pressed - all lights off) = No quantization. And then there are F1-F8 buttons as in the "Record Quantization" menu.
Just a timid wish.

RobrechtV
Posts: 231
Joined: Sat Feb 18, 2017 1:32 pm

Re: Remote Script for Behringer X-Touch

Post by RobrechtV » Sat Aug 30, 2025 2:32 pm

Haha damn that's another good idea I couldn't pass up.

Okay but so I kind of meant to keep those Function keys for the user to MIDI map (even though Live's MIDI mapping system doesn't play well with the X-Touch's implementation of LED on/off for visual feedback). For that reason, I've made quantization control optional, using the new persistent settings: just press SHIFT + any Function key to enable/disable it. That way, it stays out of the way for anyone who doesn't specifically enable it.

(It also leaves me the possibility of creating other modes for the Function keys later, which would then be selected using OPTION, CONTROL or ALT.)

Other than that, it's implemented exactly like you figured: the eight Function buttons correspond to the eight quantization options, press a lit button again to turn quantization off.
RobrechtV wrote:
Tue Aug 26, 2025 12:48 pm
And now I'm really leaving it alone until after the release. :mrgreen:
Colored scribble strips on the Behringer Xtouch!
download scripts | forum posts

gregjar
Posts: 31
Joined: Thu Mar 20, 2025 3:07 pm

Re: Remote Script for Behringer X-Touch

Post by gregjar » Sun Aug 31, 2025 10:31 pm

Does it make sense to implement some approximation of fader movement for our devices to overcome jerking/stuttering, something like shown in this idea: https://www.youtube.com/watch?v=DtFwmEwhUHo
There it is arranged through an intermediate program, which is not necessary in our case.

RobrechtV
Posts: 231
Joined: Sat Feb 18, 2017 1:32 pm

Re: Remote Script for Behringer X-Touch

Post by RobrechtV » Sun Aug 31, 2025 11:19 pm

Interesting. I'll definitely have a look at that tomorrow, I always have LoopMIDI running anyway.

Remote control scripts more or less leave the actual handling of the faders up Live: "These are the MIDI pitch bend values, you talk to the device directly." That means the script has no way to intervene, and anyway the script itself operates at a limited refresh frequency inside Live. So my first thought is that a fast C++ program running outside of Live may be the only option.

Meanwhile, there have been... a couple more updates. :D The quantization selector and some other hidden toggles have visual feedback now in the form of short messages on the 7-segment display. Color matching has been optimized in the background to only run when needed. There's an alternative color matching mode (prioritizing hue for better perceptual matching, with tunable white cut-off). The persistent settings system has been further refined.
Colored scribble strips on the Behringer Xtouch!
download scripts | forum posts

gregjar
Posts: 31
Joined: Thu Mar 20, 2025 3:07 pm

Re: Remote Script for Behringer X-Touch

Post by gregjar » Mon Sep 01, 2025 10:21 am

Is it possible to add the following two behavior extensions, "like on some consoles", with individual switching in the Option file:
a) when one or more tracks are soloed, all unsoloed tracks are muted, with the MUTE LEDs lighting up.
b) tapping a fader duplicates pressing Select. The X-Touch definitely has touch knobs, but I don't know if these functions can be controlled via script.

RobrechtV
Posts: 231
Joined: Sat Feb 18, 2017 1:32 pm

Re: Remote Script for Behringer X-Touch

Post by RobrechtV » Mon Sep 01, 2025 5:09 pm

Cool, that's exactly the kind of things the options system enables. I suspect they won't be for everyone – I prefer to be able to handle the faders without changing the currently selected track, and the fact that a soloed track is silencing other tracks is already indicated in different ways (the Rude Solo LED on the time display and the global SOLO button). But they're definitely useful additions for those who want them, so I added them as flags in options.txt. Just launch Live once with the latest beta of the script to update options.txt, then open it in a text editor to set those flags to "true".

(The MUTE button blinks for tracks muted via solo, to differentiate them from actual muted tracks.)

I'm also working on a simple settings menu (not in the current beta yet) so all current and future options.txt flags can be set directly from the device, not just the ones with a dedicated button combination.
Colored scribble strips on the Behringer Xtouch!
download scripts | forum posts

gregjar
Posts: 31
Joined: Thu Mar 20, 2025 3:07 pm

Re: Remote Script for Behringer X-Touch

Post by gregjar » Mon Sep 01, 2025 8:14 pm

RobrechtV, thank You! Very, very impressive! ) The usability of the device breaks through the roof! )

Is there any progress in overcoming of faders jerking/stuttering?

What I'm personally missing, is only one point left. )) I understand that there are designated encoders for this action, but is it possible, while there is nothing more important for F1-F8, to occupy one additional option by specifying the input source for the selected track?
The point is to quickly assign to the SELECTED track an instrument from the list - as they are listed in Settings -> Input Ports (just Instruments, not port-to-port routings) for MIDI and Ext.In Port/Channel for Audio, if there is any.
There are different types of keyboards (and other instruments - pads etc), with different playing techniques. For example, I have 4 keybeds absolutely different ones (grand action, synth, waterfall and seaboard). And it's good when you can quickly and accurately change the input controller. 8 buttons is quite enough for quick actions. These settings do not need to be remembered, they just have to work instantly - press (for example) alt-F3 on the SELECTED track = instrument from position 3 is chosen. And that's it, F1-F8 system returned to its previous state.
This is an optional addition, and you can always choose the ALT modifier for something more useful later. ))

RobrechtV
Posts: 231
Joined: Sat Feb 18, 2017 1:32 pm

Re: Remote Script for Behringer X-Touch

Post by RobrechtV » Mon Sep 01, 2025 10:10 pm

Alright, new beta with a global settings menu!
  • SHIFT + ZOOM: Open settings menu.
  • UP, DOWN: Browse settings.
  • LEFT, RIGHT: Change setting.
  • JOG WHEEL: Change setting.
  • SCRUB: Reset setting to default.
  • ZOOM: Save and exit.
Settings names and values are shown on the Time Display. Every setting in options.txt is controllable this way, so no more need to edit hidden settings manually.

I gave MackieFaderFixer.exe a try. It does soften the movements noticeably, especially large jumps – we all know how they normally hammer down when you exit Live!

But I've also looked into the possibilities a little more and confirmed what I suspected:
  • Live handles messaging to faders directly, bypassing the script. The script just tells it which parameter is associated with the faders and which MIDI notes they expect for pitch bend values. Live then handles bidirectional messaging to the hardware (control + feedback), but also complex systems like banking left/right.
  • Even if I did manage to take over control and reproduce everything Live takes care of (which would be way beyond my coding skills at the moment), remote control scripts run sandboxed and are limited to an update frequency dictated by Live. The script can't do anything faster than that, so any interpolation would still be quite coarse. If I managed to slow the movements down, I imagine they would become "zippery" (where you can hear the tiny discrete jumps).
So for those reasons, MackieFaderFixer.exe is in a better position to do what it does: it's free to intercept the messages coming out of Live and do whatever with them, and being a C++ program, can run at a much higher frequency than my sandboxed script.

Quick Input selection: hm, interesting idea. I've whipped something up (another beta just uploaded :lol: ).
  • OPTION + F1-F8: Select the first eight items in the Input Type dropdown for the selected track.
  • CONTROL + F1-F8: Select the first eight items in the Input Channel dropdown for the selected track.
  • ALT + F1-F8: Select the next eight items in the Input Channel dropdown for the selected track, for a total of 16, covering all available MIDI input channels.
  • For MIDI tracks, the very first item (All Ins / All Channels) is skipped, so F1 = Ch. 1 etc.. Choose an already selected channel to set the track input back to All Ins / All Channels.
The order of the Input Type list is the order of the dropdown menu for each track. I don't have access to the order of the hardware MIDI sources in the Settings -> Input Ports list.

I'm thinking if I ever want to create more modes for F1-F8 (apart from quantization control on or off), I'll just use SHIFT + F1-F8 to select between up to eight modes. So OPTION/CONTROL/ALT + F1-F8 wouldn't necessarily be needed anymore.

Edit: Okay, some of the new F1-F8 modes do use modifier buttons. But I'll make sure they pass on any unused ones, so the direct shortcuts to Input Type/Channel will mostly still work, depending on the currently active mode. And of course Input Type and Channel have their own dedicated mode with LED feedback now.
Last edited by RobrechtV on Tue Sep 09, 2025 6:20 pm, edited 1 time in total.
Colored scribble strips on the Behringer Xtouch!
download scripts | forum posts

Post Reply