Behringer x-touch series

I know that the X-touch works with Ardour, but to what extend? I read that some things don’t work, but is this still true?
With time, firmware updates tends to fix such issues.
I’m in the market for a DAW controller and I have the X-touch or X-touch One in my sights. I assume that they work the same with Ardour?

What are your experience and can you recommend another option?

I have the X-Touch. I’d say 80% of the things work, and most of the important things work (transport, faders, pan, choosing tracks, etc.). The things that I couldn’t get to work:

  • If I activate punch in/out the buttons drop and replace will light up in the controller, respectively. But if I press the buttons it doesn’t toggle them.
  • Some of the function buttons don’t do anything.
  • Some of the encoder assigns don’t do anything (like EQ, eg.)

Overall I’m happy with it, and it makes me more productive, especially when I’m recording my guitar.

The X-Touch One seems like an interesting compromise. Once thing I noticed is that I usually adjust one fader at a time, so that might not be a strong limitation in the One.

BTW, there are a few YouTube videos showing the X-Touch with Mixbus. It’s better supported in Mixbus because you can control the builtin EQs.

Hi Roberto,
Which version of the X-Touch do you have?
I already have a DigiDesign Command8 but I’m having issues with getting some of the functions on it to work. I did make some progress last night. It is especially the transport section that is bugging me and there’s very little information out there.
So the X-Touch One would be a good choice just to get the transport functions.
The control surfaces section in Ardour does not include the One model, but I suppose it would be a subset of the X-Touch?

I have the regular X-Touch (not compact, not mini, not one). The transport function works perfectly, including looping, record, play, stop and moving around.

As for the control surfaces, I think it should be straightforward to adapt the one from the X-Touch.

I would note that these things are common to the Mackie Control as well. Not all of the function buttons are mapped, but there is the possibility to map them as you choose to any menu action. The encoders are mapped the same for Ardour and Mixbus, however Ardour does not have EQs to control. However, it is true that so far there is no way of controlling plugins which would allow controlling an eq plugin. There is hope that at least the a-eq might be hooked up to the eq controls used by the Mixbus eq. Same for a-comp. It would be great if all eq plugins used the same control set, but I can’t see that ever happening. So it is unlikely that the mackie eq controls will ever control eqs in general, a-eq has a chance just because Ardour ships with it.

Cool, that’s good to know. I hope it comes to fruition some day as it would be really useful.

It’s useful to know, as Len pointed out, that this isn’t a deficiency with either Ardour or the X-touch. I guess it’s by design – it’s a blank canvas for the user to customise to their heart’s content, which is really, really useful.

I configured some of the function buttons as soon as I got my X-touch a few years ago. Looking in the settings, I’ve just discovered that I’d mapped far more things than I had remembered!

The raw F-keys I have doing timeline-related things: go to Start, go to End, go to previous marker, go to next marker etc.

Using the modifiers I’ve got a load to toggle on/off the visibility of things like the monitor section, editor mixer, track list, summary etc, all useful for maximising screen estate (I also have maximise editor space and maximise mixer space!).

Resizing/fitting track height(s) are useful controls I’d forgotten I’d mapped. I can even launch the online user manual and this forum from my X-touch!

The possibility that I really hadn’t fully appreciated though, is not just that the function keys can be used with modifiers, but all the other “right-hand side” buttons as well, meaning that there are massive capabilities for shortcuts – if only I could remember that many! And because of the way Ardour is, it’s all completely customisable :slight_smile: :+1: :clap:

I’m just setting up the xtouch for use in Ardour. Is there really no way to control a plugin’s pot controls in some way using the xtouch?

I would be happy to have all inputs mapped over the faders in some mode and then be able to adjust them with the faders or the push encoder knobs.

Alternatively, could I somehow map the control of specific parameters of a specific plugin to the xtouch controls?

Sorry if this doesn’t make any sense - I am new to this game…

Um, yes… but not in mcp mode. Having control of the plugin controls is something that wants doing in mcp mode but has not been done yet. In generic midi it should be possible to have a knob control a plugin parameter but once that knob is set using a midimap that is all that control would be able to do. That is banking would just change it to the same numeric plugin on the new strip. This may not be of much use because the new strip may not have any plugins or at least a different plugin that may not have that parameter.
I don’t know if mcp will get plugin parameters for 6.0 or not. Only that so far as I know, no one is working on that right now.

Thanks for the answer. I’ll play the waiting game then as the xtouch (the big one) is only mcp (and hui) and no midi.

But out of curiosity: could the midimapping be changed using a lua script? That is, could you ‘cache’ or store a current mapping, change the mapping to a particular plugin, and later restore the original binding using lua scripts?

I do not believe so currently, however this could make an interesting feature request as well.


OK, I want to get this to work: I want to have a basic plugin surface support with the xtouch. I found this blog post
which contains some neat tricks that might help me to get it done. In the blog, Paulo describes how he “intercepts” the xtouch midi commands using puredata and Max to send out varied commands to his DAW. Now my idea is to use the xtouch as a Mackie device (as intended and supported by Ardour) but also as a generic midi control to which I manually bind some controls of specific plugins (like a-eq). I want to use the “Encoder Assign” buttons on the X-Touch (like EQ and Plug-In) to switch between the two modes (Mackie vs Generic Surface) in puredata.

Using JACK, the following is quite simple to achieve:

  1. Set up puredata to have 1 midi in and 2 midi outs
  2. In puredata, receive all system calls and midi in commands and relay them to midi out. I will vary the port depending on “EQ” being clicked or “Pan/Surround” being clicked. The first out port (when “Pan/Surround” is active) will be the untouched X-Touch signals, and I will use the second out port as the generic midi control.
  3. In JACK connect “X-Touch MIDI 1” to “Pure Data In”.
  4. Connect “Pure Data Midi-Out 1” to (ideally) the mackie control in from ardour.

However, that is not working, as Ardour for some reason does not give me the Pure Data ports to select as midi in or out as control surfaces. I would like to know why. Aside from the X-Touch, I can only select the system’s “Midi Through” ports.

Continuing, if I route “Pure Data Midi-Out 1” my system “Midi through In”, and then select “Midi Through Out” as the Control Surface’s Midi In, everything works fine; that is, I can use the X-Touch exactly as if I selected “X-Touch MIDI 1” as Midi In. This last point confirms to me that what I want to do basically works.

Now why aren’t the puredata ports showing up for me to select as control surface Midi In and Out? Can anybody share some insight?

Sounds like a alsa/jack midi driver config, ardour can manage both but not at same time.

Thanks for the tip, but I’m still investigating that. It’s discussed further here: Virtual midi ports and control surfaces

I made some progress, though. Will post results here once I get everything organized a little better.

I now have a patch which allows me to control a-EQ with my Xtouch. It’s a hack at many levels because it involves routing the unit through puredata and intercepting the signals. I basically route the signals through different ports depending on whether I want is a mackie control or a generic midi controller, and for the latter I have a mapping created for the 8 pots, for which I also switch the channels so that I can control more than 8 controls in the a-eq plugin. To top it off, it only works if a-eq is in the position where the mapping file points to.

In case anyone is interested in the files and setup, I can provide it. But at this point, I decided to clone the code repo and have a look at the code to see if I can get it to control the plugins the way it is configured for Cubase (there are YouTube videos showing that - it’s pretty cool).

EDIT: This is how I envision it: Please click around and leave comments there. Feedback is very welcome! Also, if the devs could have a quick peek, they could let me know if this is in line with what they may have thought of already, or if there is a reason this can not be done in code.

@lenovens: did you do some coding for the mackie control surfaces? I’m deep in the code and have some ideas (also fluent in C++). Is it best to discuss code ideas in issues in the tracker?

I have, but it was two years ago now. I have been working on OSC since then. In this case, rather than changing the MCP code, it may make more sense to set up route to populate the well known eq ports. Then eq would just work for MCP (mackie control) OSC and any other surfaces that use them.
I was actually thinking about working on that. I would like to support at least a-eq, but it looks like eq10q and x42-eq as they look like they follow a reasonable pattern for port names. So look at plugins as they load in a route. If they are tagged eq, look at their port names to see if there are channel numbers. If so and there is not yet an eq, set a variable that points to this plugin. If the plugin is removed, check if there is another plugin that fits as eq and if not set empty.
This would use the eq control code already in the mackie control code.
My main problem is that my development computer stopped working this morning… power went off and now it won’ start. So I need a new power supply it seems.

Yeah, that would be a good feature for the EQ button. I actually want to tackle the Plugin button. I also have some ideas on how to clean up the code. Should I make an issue in the tracker to discuss this or just do it and see if my pull request gets accepted?

I think a PR would be fine against the github repo. Plugin would be great. The main thing there will be setting up paging but as Paul pointed out There is already paging code in some of the other controller modules that can be copied.
One really good reference is: midibox on this page look at the “The old manual” for the logic control. Chapter 13 gives a MIDI map for all the buttons, faders and encoders as well as displays. Chapter 11 has some good information about how logic envisioned the surface being used. Ardour does not use it exactly that way but using the arrow keys for paging makes sense. I think Paul has limited the modifier keys to only use the shift key… except the setup in 5.12 still shows them all there. Maybe ask on irc if you are thinking of using alt left to page by single parameters or whatever. Probably just paging full pages is of the most use though.

1 Like

To anyone still reading this: I am so pumped that my PR containing the code to make Plugins controllable was merged! Now we can all merrily control our Plugins using our Mackie controllers starting from version 6.0!

This is my first contribution to an OS project ever, so forgive my excitement over this.


Not at all, that’s totally justifiable excitement :slight_smile: Brilliant, I can’t wait to try it, that will be so, so useful! Many, many thanks for doing that and congratulations.