Remote Script for Behringer X-Touch

Discuss Live-ready controllers other than Push.
Arthur Montvidas
Posts: 11
Joined: Sat Oct 16, 2021 3:33 pm

Remote Script for Behringer X-Touch

Post by Arthur Montvidas » Sat Oct 16, 2021 3:48 pm

I did some improvements of Mackie Control script for Behringer X-Touch control surface.

Channel strip level meters are modified to indicate clipping when it occurs.

Some buttons are remapped

DISPLAY (near time display) - switch session/arrangement view

Channel strip:
SHIFT + ARM - Toggle monitoring state (exclusive) In/Auto. If monitoring state = IN then ARM LED is blinking
SHIFT + CONTROL + ARM - Toggle monitoring state (non exclusive)


Transport section:
CLICK - turn on/off metronome. Led blinking when metronome is active, CONTROL + CLICK - tap tempo
SCRUB - in session view run selected clip. In arrangement view - enable "back to arrangement"
MARKER - Jump to previous Marker. CONTROL + MARKER - create marker at current position or delete it
NUDGE - Jump to next marker
SOLO (near REC button) - switch clip/device view. LED in ON when in clip view

Utility section:
UNDO - Undo
ENTER - Redo

Automation section
READ/OFF - Re-enable automation
WRITE - Arm for automation record
TOUCH - Toggle draw mode
LATCH - Toggle "follow mode"
GROUP - Expand/collapse selected track if it is group of tracks. Led is ON when current track is a GROUP and blinking if current track is in a group.

JOG WHEEL:
New options: SHIFT + rotation - ZOOM in/out in arrangement view
OPTION + rotation - move loop region
OPTION + ALT + rotation - move loop end bracket

Gray section:
MIDI TRACKS - Create midi track
INPUTS - Open/close Browser
AUDIO TRACKS - Create audio track
AUDIO INST - Open/close details view

Tested in Live 10.

If you have any idea how to improve X-Touch workflow in Live please welcome.

Installation: Unzip, put folder "XTouch" at folder "MIDI Remote Scripts"
in case of Live 10 on Windows 10: "C:\ProgramData\Ableton\Live 10 Suite\Resources\MIDI Remote Scripts\".

Download:
https://drive.google.com/drive/folders/ ... sp=sharing
Last edited by Arthur Montvidas on Wed Dec 01, 2021 9:29 pm, edited 3 times in total.

Arthur Montvidas
Posts: 11
Joined: Sat Oct 16, 2021 3:33 pm

Re: Remote Script for Behringer X-Touch

Post by Arthur Montvidas » Sat Oct 23, 2021 8:58 am

Update.
Now you can toggle monitoring state by pressing SHIFT+ARM

Cavala
Posts: 1
Joined: Wed Dec 01, 2021 12:25 pm

Re: Remote Script for Behringer X-Touch

Post by Cavala » Wed Dec 01, 2021 12:44 pm

Thanks so much for sharing this work! Have you been able to try it with Live 11? I've tried adding it to both the user remote scripts folder and the default folder, and for some reason the X-Touch script isn't showing up in the list of Control Surface scripts. I was able to start using TouchAble the other day by adding its script to the user folder, so I'm not sure what's going wrong here.

Arthur Montvidas
Posts: 11
Joined: Sat Oct 16, 2021 3:33 pm

Re: Remote Script for Behringer X-Touch

Post by Arthur Montvidas » Wed Dec 01, 2021 9:34 pm

Cavala wrote:
Wed Dec 01, 2021 12:44 pm
Thanks so much for sharing this work! Have you been able to try it with Live 11? I've tried adding it to both the user remote scripts folder and the default folder, and for some reason the X-Touch script isn't showing up
I think the problem with "-" in folder name X-Touch. Now its name is XTouch. I've updated .zip, please download it again from link in first post. Also there was an error with monitoring state listener in previous version.

musiegfried
Posts: 1
Joined: Thu Mar 03, 2022 12:02 am

Re: Remote Script for Behringer X-Touch

Post by musiegfried » Tue Mar 22, 2022 10:57 pm

Thank you for your work. It doesnt work by me. I have Live 11 and Windows 11. Any Tipps for me?
Sorry for my english.
Greetings musiegfried

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

Re: Remote Script for Behringer X-Touch

Post by RobrechtV » Fri Apr 01, 2022 10:00 am

Same here. The script shows up in Ableton, but if I select it, my X-Touch won't work (it says Ableton is offline). I'm on Live 11.

I've tried comparing the script to the original MackieControl script (decompiled from Live 11) to try and find out what's causing the problem, but there are so many modifications I can't tell which one is responsible. I don't have a lot of coding experience, unfortunately. I've also been trying to port some of the modifications into the original MackieControl script but, again, it gets complicated really quickly with all the button functions that have been moved around.

Too bad, because from the description it sounds like a very well though-out improvement to the original!

Does anyone have any idea of the differences between Live 11 and 10 that might explain why it doesn't work anymore? That could give me an idea of where to look... I've tried comparing the Python API's from both versions but that didn't get me very far.

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

Re: Remote Script for Behringer X-Touch

Post by RobrechtV » Sun Apr 03, 2022 5:07 pm

Update! I've managed to adapt Arthur Montvidas' brilliant modified script to work in Ableton Live 11. If anyone is interested, I could share it (I hope that's OK).

Arthur Montvidas
Posts: 11
Joined: Sat Oct 16, 2021 3:33 pm

Re: Remote Script for Behringer X-Touch

Post by Arthur Montvidas » Mon Apr 04, 2022 8:58 pm

RobrechtV wrote:
Sun Apr 03, 2022 5:07 pm
Update! I've managed to adapt Arthur Montvidas' brilliant modified script to work in Ableton Live 11. If anyone is interested, I could share it (I hope that's OK).
Good day!
Sorry for the delay. I'm happy that you did this adaptation. I still work in Live 10 because I use the ClyphX Pro scripting engine to play live with extended tools for automation. So, have you some new ideas to improve integration of X-Touch with Live? And what was the main problem with porting to 11 version? Did you find the decompiled version of MackieControl for Live11 and implement my changes to the Live10 Mackie version?

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

Re: Remote Script for Behringer X-Touch

Post by RobrechtV » Mon Apr 04, 2022 10:07 pm

Hello Arthur, thank you for your reply!

Yes, I found the decompiled version of the original MackieControl for Live 11, and my first idea was to try and implement your changes there, but that was too complicated for me! I can decipher code but I'm not a programmer, and I was still figuring out how those remote scripts work. When I found a difference, it was hard to tell if it was something you added or something that changed from Live 10 to Live 11.

Then I found out about the Preferences/Log.txt file for debugging. I looked for the code lines mentioned in the error messages for your script and compared those lines to the decompiled Live 11 MackieControl script. Eventually, I figured out that there was a problem with the use of range(). I added "from builtins import range" to your files, as I noticed it was present in the decompiled ones. Also, in consts.py, I changed every "range(...)" to "list(range(...))". That made it work.

If you want to take a look at what I did, here is the modified script. The next thing I'd like to try is porting your modifications of the channel strip level meters to the MackieControlXT script, so that my Behringer X-Touch Extender will also indicate clipping.

I do have some ideas for additional functions, but I think they may not be possible.

One idea would be to use the "Save" button for actually saving the song (I already disabled its original "back to arrangement" function in your script since that is handled by the Scrub button now). Ideally, the button's LED would light up as soon as there are unsaved changes in the project. Unfortunately, it seems like there's no property/listener in the API to handle saving or the saved/unsaved state.

Some other ideas: a button to switch the metronome to "enable only when recording", a button to show/hide take lanes for the selected track, to show/hide automation or to show/hide the second window -- these are all little things I often do while working on a song. Unfortunately, again, it seems they are not supported in the API.

But it doesn't matter, I'm already super happy with your improvements. The labels for the buttons on the X-Touch actually make sense now, zooming and moving the loop region around using the Jog wheel is great, the metronome on/off button makes my life so much easier and using it for tap tempo is genius. Thank you!
Last edited by RobrechtV on Tue Apr 05, 2022 12:52 pm, edited 1 time in total.

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

Re: Remote Script for Behringer X-Touch

Post by RobrechtV » Tue Apr 05, 2022 12:28 pm

RobrechtV wrote:
Mon Apr 04, 2022 10:07 pm
The next thing I'd like to try is porting your modifications of the channel strip level meters to the MackieControlXT script, so that my Behringer X-Touch Extender will also indicate clipping.
Hey, this worked! It was simply a matter of making the scripts refer to each other.

So I copied the decompiled MackieControlXT script and renamed the folder to XTouchXT. In MackieControlXT.py I changed the imports to refer to your script instead of the original MackieControl one:

Code: Select all

from XTouch.consts import *
from XTouch.MainDisplay import MainDisplay
from XTouch.ChannelStrip import ChannelStrip
And conversely, in your XTouch script, I edited MackieControl.py to refer to XTouchXT:

Code: Select all

from XTouchXT.MackieControlXT import MackieControlXT
That seems to have done it! The more accurate level meters work, and so does the monitoring state toggle (SHIFT + ARM). I've updated the link above to include both scripts (XTouch and XTouchXT).

Edit – For anyone interested: I've added a Readme file under that link crediting Arthur for the original customized Remote Control script, and documenting a couple of small changes I've made (like adding a button for MIDI capture that lights up when there is material to be captured).

MPrinsen
Posts: 15
Joined: Thu Mar 19, 2020 5:14 pm

Re: Remote Script for Behringer X-Touch

Post by MPrinsen » Thu Jun 16, 2022 8:49 pm

Thank you for doing this! I love it!

After a bit of testing, I found a few things:

- It seems the Shift + jog wheel doesn't zoom in/out in arrangement view? You can just switch to Zoom mode using the Zoom button, so not a big deal, but having a momentary function would be nice. I would rather have the zoom button for this though: short press to latch, hold to use it momentarily.
- It would be nice to be able to switch the monitoring state to Off as well. Maybe with Option + Arm?

MPrinsen
Posts: 15
Joined: Thu Mar 19, 2020 5:14 pm

Re: Remote Script for Behringer X-Touch

Post by MPrinsen » Thu Jun 30, 2022 9:43 pm

Ableton recently fixed several bugs of the the regular mackie universal script.

See here (search for "Mackie"):
https://www.ableton.com/en/release-notes/live-11/

It would be awesome if anyone would apply the improvements of this custom script to the updated standard script, so those bugs are also fixed in this custom script.

Thanks!

eecue
Posts: 4
Joined: Sat Apr 18, 2020 4:38 pm

Re: Remote Script for Behringer X-Touch

Post by eecue » Mon Jul 25, 2022 9:18 pm

Ok so... this works great, but I was wondering what the best way to add the functionality from this script: viewtopic.php?f=4&t=243388 that has the fade banks jump to the track you select in the editor.

eecue
Posts: 4
Joined: Sat Apr 18, 2020 4:38 pm

Re: Remote Script for Behringer X-Touch

Post by eecue » Mon Jul 25, 2022 9:19 pm

Also would it be possible to get the scribble strip color matching the track colors?

eecue
Posts: 4
Joined: Sat Apr 18, 2020 4:38 pm

Re: Remote Script for Behringer X-Touch

Post by eecue » Wed Jul 27, 2022 5:31 pm

Ok I found some I info about the colors, looks like there are only a few options:

https://adobe-video.uservoice.com/forum ... n-audition

SysEx (hex):
F0 00 20 32 dd 4C nn cc c1 .. c14 F7

dd: device id (X-Touch Ext: 0x42)
nn: LDC number 0..7
cc bits 0-2: backlight color (black, red, green, yellow, blue, magenta, cyan, white)
cc bit 4: invert upper half of LCD
cc bit 5: invert lower half of LCD
cc1..c14: ASCII characters (1..7: upper half; 8..14: lower half)

... should still be possible to choose one of those that's close and assign it. I'm going to spend some time tinkering around with this.

Post Reply