A report about X-Touch and some ideas

Hi, All,

recently i bought the finally released Behringer X-Touch (the “big boy”). A word about it. Compared to my old BCF2000, it’s amazing. The faders are smooth, no noisy motors (they are quiet, really). Touch sensitivity is perfect for correcting automation in touch mode. Buttons are soft, no click after every (hard) press. All important buttons on strips are visible and accesible without shift (mute, solo, rec). LCD on every strip is a “must have” feature. Now, i know every time what does the strip control :-).

Timecode display works with some issues. I use the SMPTE mode and when i move the playhead by mouse, the display shows old timestamp and when i start the transport, display shows wrong time. Switching to beats and back to SMPTE corrects this problem.

Another issue is with the LCD and db scale. Moving the fader displays correct db value. Releasing it and touching again displays incorrect value. For ex. - i move the fader to maximum, display shows 6.0 (correct). When i touch the fader again (not moving them), display shows 0.0 (wrong).
Moving the fader:
Sysex (15) = [f0 00 00 66 14 12 38 20 20 20 36 2e 30 20 f7]
(6.0) 36 hex is ‘6’

Touching the fader:
Sysex (15) = [f0 00 00 66 14 12 38 20 20 20 30 2e 30 20 f7]
(0.0) 30 hex is ‘0’

Those two issues are probably in Ardour, i think, X-Touch doesn’t do anything, it’s not “smart”. Or am i wrong? Has someone similar issues with another Mackie device?

Now a word about strange behavior of the meters. When level is higher then 0 dBFS, clip LED goes ON (correct). But, the latest LED before clip is off. I undertand why, because the meters in Ardour are (were) up to +6 dBFS. Nowadays, it’s not right. There is meter in Ardour up to 0 dBFS … I’ve patch.

Personally, i don’t undertand why meters are turned off when transport is stopped???

Now, the ideas. Firstly, i don’t undertand what selection of track in Ardour means. Usually in DAW or digital mixer, when i select strip, i can control special properties, as EQ, GATE, SEND etc. I know, in Ardour, there is no “standard” EQ, standard gate, send or insert in a strip. But there is for ex. automation control (Manual, Play, Touch, Write). Now it isn’t possible to control it from the surface. Unfortunatelly, it can’t be mapped in device profile. There is possible mapping like “rec enable track 1” (track 2 … track 17) bud there is no “rec enable in SELECTED track”. It’s my idea - control more parameters in selected track.

Maybe there can be a flag in plugins/sends/inserts like “this is a standard send”, meaning is it can be controlled from the surface. Maybe too crazy or too difficult.?

--- a/libs/surfaces/mackie/meter.cc
+++ b/libs/surfaces/mackie/meter.cc
@@ -111,7 +111,7 @@ Meter::send_update (Surface& surface, float dB)

        /* we can use up to 13 segments */

-       int segment = lrintf ((def/115.0) * 13.0);
+       int segment = lrintf ((def/105.0) * 13.0);

        surface.write (MidiByteArray (2, 0xd0, (id()<<4) | segment));


I had thought the X-touch looked pretty nice.

The mackie control logic does have lots of room for additions :slight_smile: Right now the Track, Pan, etc. buttons don’t do anything. Vselect rotates through the available vpot controls. It is one of the things I want to play with.

I am working on a GUI to watch Time and metering (I don’t have a “real” surface) Currently I have only channels showing (LCD strip).

I am wondering if you have tried your patch above with other meters besides the default (right click on a channel meter for the list). I don’t know what meter data the MCP code is working with or if it changes with the GUI. I will look at it when I can test it. I think it should follow the GUI. But remember that the Surface has it’s own “ballistics”. So it will never match the GUI completely. From the manual: “Decay rate is approximately 300ms per meter division (1.8 seconds to fall from 100% to 0%).” I would expect that the X-touch follows the same rule. As such, it may make more sense to “fix” the Surface meter to one kind of meter that works with this rule.

I will add touch to my test box as well. Have you reported these bugs/feature requests on Mantis? Add the issue numbers here please.

Please have patience too, I am not the fastest coder around :slight_smile:

Metering on the mackie is not as nice as the X-touch. The X-touch has a dedicated meter per channel. The mackie has a “signal present” LED and uses the LCD for metering. Overload with floating point audio is a question mark for me. The signal can go as high as +6 (or maybe more) with no clipping. So both overload and full scale are open to interpretation. I don’t know if it is possible with the way MCP meters are implemented to make the meters useful for more than rough signal setting. The Ardour meter bridge is the final indicator and probably needs to be visible so channels banked off surface are still visible. I am not sure but in some ways would prefer to send meter as 14 levels instead of 13 with FS automatically being OL. (15 resets OL)

MCP expects only peaks and expects all channels within the strip to send whichever peak is highest rather than a sum. It is in all respects a compromise(d) meter and therefore not to be fully trusted for real level setting.

Thank you for your answer.

I didn’t report any issues related to this post to Mantis. I’m not absolutely sure that they are Ardour issues. And - some IMO strange behavior is intended. For ex. when we have monitor bus in the session, then master control on MC surface is not master control, but listening control on monitor bus. I think, master should be master every time and for controling monitor bus should be another control surface. But it’s my personal opinion only.

I agree - in floating point the sound level can be +100dB and it isn’t distorted. But, it isn’t best practice… X-Touch has 8 LED meters, another surface can hae three or 15. This is the reason, why i patched Ardour for me and i didn’t request to accept my patches.

There is lot of other small issues, as shift, alt etc. Pressing shift does nothing, the LED goes ON and there is no way to get it OFF. It lights endlessly. Pressing SENDS on encoder assignment - Ardour send Sn to the 2 character display, switches on the LED, but does nothing… etc, etc :frowning:

“For ex. when we have monitor bus in the session, then master control on MC surface is not master control, but listening control on monitor bus.” I agree that was not expected, I did file a bug, but have been told that is the way it is supposed to be.

The mackie uses the lcd bottom row where it has 13 levels +room for an * to indicate over load. I am going to implement this on my mcpdisp program soon. Then I will try different things to see how they look and how useful they are. Having higher levels than overload does not make sense, but unfortunately on the mackie there is no color change to indicate level so 0db at overload makes sense.

Shift does work. It works with the profile editor. But the LED should only be on as long as the button is pressed.

Control and a vpot will change the resolution of the vpot to fine®. None of the encoder assignment buttons work… They should be like radio buttons where one is always on and any one turns all the rest off. I don’t have that here to check yet. There are some ideas around to use those… but not time to do it yet.

I also have two lines from the UI that tell me when punchin/out happen but am not sure which buttons to attach to them. There is no standard for that and other daws use templates to assign buttons to it… just not the same ones. The record button already toggles to make punch in/out happen. All of the non-channel buttons can have up to 5 functions out of the keyboard shortcuts attached to them. (plain plus shift, control, alt, option and shift/control) But it requires the user to sit and add them. There are a few predefined profiles already there, but none for the stock mackie like what you have. I would really like to see someone come up with something that makes sense for Ardour (rather than Logic) and then set it as default. Or maybe more than one for some different work flows.

I would like to see a GUI for designing templates that the user can then print and cut to fit their surface… but that would not help with the x-touch which has all the buttons but not in the same place… Actually, having said that, there is one group of buttons on the x-touch that may be very close, just different line spacing.

The bug with the modifier keys (tracker #6601) has been fixed.

Assign buttons don’t light any more either. (till we actually make them do something)

@pedro42: It looks like all buttons on the x-touch have lamps, is that correct? Also, the scribble strips seem to have more than 7 characters with the possibility of pictures. It seems that there is also an OSC mode. So MCP mode is probably dumb (as you said), but I think the unit has some smarts in it for other things.

Are you using USB, net or MIDI to hook it up to your computer?

@lenovens: Hi, i saw your commit, simple but good… Shift, alt… fine, encoder assignment does nothing, ok, thanks!

Buttons - all butons have LEDs except two: “display name/value” and “smpte/beats”. They are next to the timecode display. A started:

cat </dev/snd/x-touch >/dev/snd/x-touch

When i pressed a button, it started lighting and stopped lighting when i released it. No signs of “smart” behavior, 2 character display does nothing when i press encoder assign. Faders are holding position when cat is running, because computer sends back the position. When cat was not running, the fader returned back to initial position. All expected, nothing “smart”. I mean, when i run the cat utility and x-touch was not connected to Ardour.

Second LCD row - i"ve “Pan” on it and when a move the fader, it displays amplification level of the strip (from -inf to +6dB). It’s fine. I don’t understand what do you mean :13 levels" ?

I think, the buttons should do things they are designed for` yes, x-touch has complete MCP set and some surfaces haven’t. What about possibility of remapping them? Too strange, maybe.

About level meters - after my modification, it works well (for me). X-touch has 7 LEDS+clip, 4 green, 3 orange and clip is red. First orange goes up on level about -13dbFS, second orange about -6 dBFS and last orange around -3dBFS (close to clip). I think it’s good, because input during recording mustn’t clip. Recording level around -12dBFS is perfect, there is headroom enough and space for peaks. So i’m now happy with the meters (after i commented out the condition that transport must roll).

I use USB. X-touch doesn’t have IP midi, it has RTP midi. Ethernet connection can’t be used on linux yet. Maybe with future firmware. Also is not possible to change the color of LCD displays :-(. Behringer said this is because it’s not specified in MCP. Pitty.
The ethernet port is mainly intended for connection to devices like Behringer X-18, X32 (rack) etc. through proprietary Behringer’s protocol. Midi port should work. I didn’t try it.

About number of characters on the strips - yes, they looks like there is more space, but actually isn’t. I tried to comment out the shortening procedure in libs/surfaces/mackie/strips.cc, but displays don’t show more then 6 characters. I hope, Ardour doesn’t short the message outside the mentioned procedure. “iiiiii” looks like there is enough space for 7. “i”, but it’s not shown.

Remaining issue: the second row LCD shows incorrect value when fader is touched and not moved. Value is correct when fader is moving. It looks like Ardour doesn’t read the real strip amplification, but is computed as value 127 is 0dB, value 1 is -60DB and value 0 is -inf.

And - when someone who can do it and have a time, to allow control of the automation mode (Manual, Touch, Write, Play) on SELECTED strip(s). Those buttons should work as radio buttons (simillar to encoder assignments). Much thanks!

@pedro42: Your comment: “The ethernet port is mainly intended for connection to devices like Behringer X-18, X32 (rack) etc. through proprietary Behringer’s protocol.” It is not proprietary… At least I did download the document not that long ago. It is OSC and the freely downloadable x32edit and x-air-edit applications (for linux even) save everything as OSC messages in the file. So I have two sources. However, the Behringer website has been taken over by Music-group.com (the same people that own Mackie BTW) and I can no longer find the document on line. :frowning:

I am working on meters right now… well working on a meter display so I can work on meters.

timecode/barbeat does sometimes not update when moving the play head. and appears to be starting at the wrong time when play is hit. Eventually as the time gets to where the time is, it becomes correct. Then again, sometimes it just works too. Hard to reproduce consistently.

Hi Pedro,

I’ve been waiting to see about this device, One thing that I still use my BCF for is for 14bit NRPN messages for some of my external synths…
Does the X-Touch have this capability?



@pedro42: Meters. I think it may be that the X-touch does not quite follow the mackie spec. The original Logic Control doc. Says that 0 to 12 is 0% to 100% (0x0 to 0xc) and that 0xe is overload and 0xf clears overload… I would note that this means 0xd is not used. When I build a display using the spec as above, it seems that I get overload either at 0xc or one step higher (it is hard to tell). It would appear that the X-touch (with 8 LEDs) uses every second number (1,3,5,7,9,11,13,15). This is a bug in the X-touch firmware. Probably from doing reverse engineering rather than reading the spec… this is odd seeing as mackie and behringer are now owned by the same company. Anyway, Ardour’s meters seem to work to “spec”. It is best to leave them. If it is easy… I may put a config option for behringer meters :wink:

I need to add touch to my faders (at least one anyway) so I can check that next. I have seen the problem with the time code but can not get it to happen consistently. I will have to play some more.

@allank, Looking at the (very sparse) documentation, I would suggest that the x-touch is a mackie control knock-off that does not try to have more than a few options. The X-touch compact may be more what you are looking for as it seems to promise more… however, the manual is not available for download and it seems that the edit SW is only OSx and Win, not Linux… unlike the SW for the X-32 (which does come for Linux… for now). I would suggest going to a good music store with a laptop with the daw you want to use it with as well as your Keyboard/synth when you are ready to buy and try them in the store. A “good” music store will let you do this (a good music store will take it back in a week with refund if it doesn’t do the job). I do not know if the Win midi editor will work in wine or not. I am downloading the control edit app in the hopes that the included manual will tell more.

@lenovens … thanks for that… Yep, I came to the same conclusion. I couldn’t find the software for the compact. (which is probably the better option, as I don’t have the space for the big version)… Looking to replace the BCF … due to the noisy faders e.t.c…(going a little OT here) However, I have a LIVID Base, that I got for playing around with Bitwig… and the touch faders may provided an acceptable solution for “motorised faders”

I am a controller junkie … I also have a Novation Zero SL Mkii (general purpose , but mostly for my TX-81z and fx units), and my Zed R16 also provides contoller functionality, though I’m not really using it,but having the BCF got me hooked on motorised faders. However, now this thread has me thinking about the LIVID base as an alternative, if that works I’ll probably see if someone wants to trade a BCF for a BCR as the BCR would make the perfect controller for my DSI Tetra (which is what I need the NRPN functionality for)

@pedro42: In your request: “when someone who can do it and have a time, to allow control of the automation mode (Manual, Touch, Write, Play) on SELECTED strip(s).” I think the best way to proceed with this is to add a feature request to mantis (post issue number here) In your feature request, take each button with the name on the unit (no overlay) and the expected action. I can see touch and write, but not Manual and Play. I would need the expected action to be pretty clear as I don’t do much in the way of automation. (My faders are two keys marked up and down and so no good for automation).

Any of the keys from your main fader to the right side of the unit can be set to anything you can do a keyboard shortcut for… I would not re-purpose the 4 meta keys though :slight_smile: So if you can find the above functions in the menu, it should be easy to add them to the surface. I do have two lines for punch in and out, but am not sure if there are two good keys to add them to (or one to toggle). I would like to have a good default profile. I think the “utility” buttons work. I would like to use expected actions if I could, but am not against the use of an overlay if it would work better for Ardour and the way it works with the GUI. My feeling is that the surface should reflect the GUI rather than the surface working like xyz Daw. (did the X-touch come with any overlays?)

I tried the X32Edit (32 bit only, hmm, i’ve pure 64b system). OK, it works in linux container with 32 libraries. I configured the network properly, but no result :-(. X-Touch offers MCP or HUI and Master and Slave mode. No OSC. I tried all 4 posibilities (Mackie Master, Mackie Slave, HUI Master, HUI Slave). When X-Touch is in master mode, i"ve to configure slave destination IP and port. On X32-edit i can configure the IP address only (if i not overlooked something). I"m not sure which port i have to set. The X32Edit listen on random port everytime a start it. OK, netstat -alnp|grep LISTEN. I saw some port, where X32 listen. This port i set on X-Touch. I sniffed the traffic by Wireshark. At the beginig, there were some ICMP packets (ping) and responses and then some data. No reaction. X32Edit does nothing, X-Touch does nothing. The X-Touch firmware is not done yet. Read this: http://forum.music-group.com/showthread.php?8316-X-Touch-User-Manual - no support for graphics or colors on LCD.

@allank: no support for 14bit NRPN (if it’s not a part of MCP or HUI, i don’t know). I don’t believe that BCF2k has 14b resolution. It’s, probably, mathematical transformation, the lowest 7 bits are alvays 0. But, maybe, i’m not right.

Automation - i think, 3 buttons have those 4 states:
Touch button - touch mode
Write button - write mode
Read/Off button - play mode (= read the previously written automation)
All three buttons off (Read/OFF) - nothing = manual mode.
The Read/Off button is currently assigned as meters on/off button.

I know the Mantis, thousands of unresolved/unassigned issues :-(, i’m not very comfortable to create another one ;-), probably latter.

It’s difficult to say what is better - to try assign buttons in simillar position as they are in the GUI or respect the command meaning. IMO is better to respect the command, because X-Touch is not the only one Mackie surface. When someone don’t feel comfortable with this, he/she can modify the behavior through profile, but, currently, it’s possible for unassigned buttons only.

X-Touch comes with one USB cable, one power cable and it’s all. No overlay(s), no manual, nothing. I bought B-Stock from Thomann, so i’m not the first owner (it’s returned article), but, i think, the first customer didn’t lost/steal it. It should be complete package.

We need to generate an MCP profile for the X-Touch. Please get in touch on how to do this. Does it use ipMIDI or regular MIDI?

Paul, do you mean device profile?
This is my device profile:

<?xml version="1.0" encoding="UTF-8"?>

<Name value=“X-Touch”/>
<Strips value=“8”/>
<Extenders value=“0”/>
<MasterPosition value=“0”/>
<MasterFader value=“yes”/>
<TimecodeDisplay value=“yes”/>
<TwoCharacterDisplay value=“yes”/>
<GlobalControls value=“yes”/>
<JogWheel value=“yes”/>
<TouchSenseFaders value=“yes”/>
<LogicControlButtons value=“yes”/>
<NoHandShake value=“no”/>
<HasMeters value=“yes”/>
<UsesIPMIDI value=“no”/>

It uses regular MIDI. In setup is possible to chose USB, MIDI (cable) or network.
No other then this https://media.music-group.com/media/PLM/data/docs/P0B1X/X-TOUCH_QSG_WW.pdf documentation is available.
From the manual: … this port is an Ethernet interface for connection to a DAW supporting RTP MIDI, or remote controlling BEHRINGER digital mixer series (future implementation).

That’s a device info file. I need to add that too, but I mean a profile, which maps buttons to functionality. I am working on one for the Mackie Control Universal Pro as I write this.

OK. Currently, i don’t have any specific profile. I double checked it - X-Touch has exactly the same set of buttons as MCU Pro. Looking at the picture of MCU Pro, i see those differences (except position of the buttons)

  • MCU hasn’t meters, it has a signal LED only. X-Touch has 8 LEDs on every strip - 4 green, 3 orange and one red (clip). There is no meter at the master fader.
  • X touch has LEDs inside every button except two - “display name/value” and “smpte/beats”. MCU has (probably) less LEDs. I don’t see LEDs above F1-F8 buttons on MCU etc. Maybe LEDS are inside the buttons (don’t know).
    So i think, the mapping should be the same. The problem is which function map to which button :). IMO Solo should clear solo, Click should switch click on or off. It’s simple. What about encoder assign section and global view section is difficult to say/decide. F1-F8 can remain unassigned, let user chose where to map them.?