Old 12-05-2019, 03:28 PM   #1
gsagostinho
Human being with feelings
 
Join Date: Jun 2015
Posts: 9
Default Behringer X-Touch MINI in MIDI mode

Hi everyone,

I recently bought a Behringer X-Touch Mini and I am trying to control REAPER with it using its MIDI mode (not the Mackie Control Universal mode). I find the MCU mode rather limiting, even when using Klinke's MCU implementation. In MIDI mode, I am able to assign actions to both layers and this works very well for me.

The issue I have is that when I launch REAPER after just connecting the X-Touch Mini, all CC values in the MIDI controller will be set to 0. E.g., the first knob is CC1 @ channel 11 and starts at 0. If I move this knob now, it will override whatever I have got it set to control in my project. If this is set to volume, this will then make the volume slider of track 1 jump to 0. A solution is to enable soft takeover, of course, but I am looking for a different solution:

The X-Touch Mini can both send and receive MIDI data. I tested this with Pure Data: moving knob 1 will send values from CC1 @ ch11, but also sending any value between 0 and 127 from Pure Data to CC1 @ ch11 will override the state of the X-Touch Mini. So I was wondering if this is also possible in REAPER: is there a way of sending all CC values from the project to the controller at the press of a key or when REAPER launches?

Many thanks in advance.
gsagostinho is offline   Reply With Quote
Old 12-09-2019, 11:18 AM   #2
themixtape
Human being with feelings
 
themixtape's Avatar
 
Join Date: Aug 2009
Posts: 851
Default

If you are looking for feedback from your controller, I suggest The Reaper Blog's YouTube channel, and his video about midi feedback. It's a bit of an effort to set up, but it works. It's mostly for synth plugin parameters, though, from my research.



Another option you can consider is instead, using a Novation Nocturn, which gives you midi feedback using Automap... while not everyone is a fan of Automap, it does exactly what it needs to do, and you can save custom mappings, so they load as default, and everything remembers the positions depending on the active plugin... again, that's synth parameter stuff.

For volume control and transport (only), I think the Behringer X-Touch series (X-Touch, X-Touch Compact, and X-Touch One) work wonderfully... the motorized faders are great, and the position of everything is remembered, upon opening a project, depending on the bank (1-8, 9-16, 17-24, etc) you're on. Lots of options, but nothing is insanely cheap. You can also consider a used Mackie Control Universal with the Klinke script, which I used for years. Worked perfectly every time. I never used it for anything other than Transport control, and the motorized faders.

I use my X-Touch Mini as a control surface using general midi / custom actions in Reaper. One encoder is a jog wheel (left/right by measure), another is track scroll previous/next, and others are zoom horizontally, vertically, etc... buttons are transport, and additional ones like arm selected track, etc... it saves a lot of time. I don't need each encoder to be volumes as that constantly changes depending on the project, but having them as useful Reaper functions works better for my workflow.

Hope that helps!

Last edited by themixtape; 12-09-2019 at 11:26 AM.
themixtape is offline   Reply With Quote
Old 12-09-2019, 01:08 PM   #3
gsagostinho
Human being with feelings
 
Join Date: Jun 2015
Posts: 9
Default

Thank you so much for your reply, themixtape. I had come across that video but I decided to take a different route and write my own ReaScripts. It now works quite well!

If anyone is ever interested, my code can be found here: https://github.com/gilbertohasnofb/r...or-xtouch-mini

I also added my custom layers which need to be sent to the X-Touch Mini via its editor (I wanted some buttons to be true toggles, others to be regular momentary buttons). I wrote scripts to reset pan and volume, and another one which syncs any movement in the GUI using the mouse back to the X-Touch Mini. This one is initialised using the global startup action from SWS. It keeps checking the faders and GUI buttons (mute, solo, etc.) every now and then, and then syncs back with the X-Touch Mini.

My current setup is as follows:

layer A
=======

knobs: pan
pressing knobs: reset pan to centre
top row of buttons: recording arm toggles
bottom row: transport buttons, first one moves back to the beginning of project, second adds a marker to current position, the others are the same as the labels on the controller

layer B
=======
knobs: volume
pressing knobs: reset volume to 0dB
top row of buttons: solo toggles
bottom row of buttons: mute toggles

My code will only work with my custom layers and also if the X-Touch Mini device ID is set to 2 for both input and output.
gsagostinho is offline   Reply With Quote
Old 12-10-2019, 02:03 PM   #4
themixtape
Human being with feelings
 
themixtape's Avatar
 
Join Date: Aug 2009
Posts: 851
Default

Quote:
Originally Posted by gsagostinho View Post
Thank you so much for your reply, themixtape. I had come across that video but I decided to take a different route and write my own ReaScripts. It now works quite well!

If anyone is ever interested, my code can be found here: https://github.com/gilbertohasnofb/r...or-xtouch-mini

I also added my custom layers which need to be sent to the X-Touch Mini via its editor (I wanted some buttons to be true toggles, others to be regular momentary buttons). I wrote scripts to reset pan and volume, and another one which syncs any movement in the GUI using the mouse back to the X-Touch Mini. This one is initialised using the global startup action from SWS. It keeps checking the faders and GUI buttons (mute, solo, etc.) every now and then, and then syncs back with the X-Touch Mini.

My current setup is as follows:

layer A
=======

knobs: pan
pressing knobs: reset pan to centre
top row of buttons: recording arm toggles
bottom row: transport buttons, first one moves back to the beginning of project, second adds a marker to current position, the others are the same as the labels on the controller

layer B
=======
knobs: volume
pressing knobs: reset volume to 0dB
top row of buttons: solo toggles
bottom row of buttons: mute toggles

My code will only work with my custom layers and also if the X-Touch Mini device ID is set to 2 for both input and output.
That's awesome... does it work for more than 8 tracks, like the MCU protocol? Can it bank previous/next and/or track previous/next? Just curious, thx again!
themixtape is offline   Reply With Quote
Old 12-13-2019, 04:23 PM   #5
gsagostinho
Human being with feelings
 
Join Date: Jun 2015
Posts: 9
Default

Quote:
That's awesome... does it work for more than 8 tracks, like the MCU protocol? Can it bank previous/next and/or track previous/next? Just curious, thx again!
No, this current solution works only for up to eight tracks. Does the regular MC mode work for more than 8 tracks? The issue is that with the regular MIDI mode you get one CC or Note per button/knob, and REAPER associates just one of those for each action, which are track dependent.

That said, I once wrote a patch in Pure Data that multiplied the knobs of a controller by creating an infinite number of banks. Basically, Pure Data would receive the MIDI data from the controller and then outputs it to REAPER as if Pd itself was another physical controller. But then you can do all sorts of stuff with Pd, such as routing the output of a controller's knob to any arbitrary CC value, and you can map any button to cycle through the banks, so it would be possible to do this. I might actually try this solution again, sounds like a fun little project.
gsagostinho is offline   Reply With Quote
Old 12-14-2019, 12:00 AM   #6
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 8,683
Default

To support more than 8 tracks you might consider using the CSI Reaper plugin.

Supposedly the "Control Surfaces" supbforum is a better place to investigate this.

-Michael

Last edited by mschnell; 12-16-2019 at 11:00 PM.
mschnell is online now   Reply With Quote
Old 12-16-2019, 02:09 PM   #7
gsagostinho
Human being with feelings
 
Join Date: Jun 2015
Posts: 9
Default

Thanks Michael, I will take a look into that.
gsagostinho is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -7. The time now is 02:38 AM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2020, vBulletin Solutions Inc.