Behringer X-Touch Extender MIDI transform

Dear Bome support,

I’d like to give the Behringer X-Touch Extender a second life as a MIDI CC controller. I’ve been using the Project Input Transformer in Cubase for this, but the options are limited (I can customize two faders at max).
MIDI-OX has transform options, but I haven’t been able to make it work.
MIDI Translator seems to be able to do the job as well, but I don’t entirely understand its operation yet.
Currently checking out the trial, I’ll gladly buy the full version if this works.

The X-Touch Extender can run in MIDI control (CTRL) mode instead of the Mackie Control protocol, which is generally used for virtual mixing. In CTRL mode, the faders, buttons and encoders send fixed note on/off values and/or fixed MIDI CC values. These fixed values can be seen on page 20 of the Quick Start guide by Behringer. See documentation on the Behringer product page → Quick Start guide (can’t post a direct link).

My main goal is to transform the MIDI data from the Extender’s faders before it goes into my DAW (Cubase) and perhaps to make use of some of the buttons and encoders for MIDI CC as well. Would it possible to give an example on how to achieve this with MIDI Translator?

The first fader sends MIDI CC #70 and a note on/off on a high D8 note. I’d like this to be transformed to MIDI CC #1 and the note on/off messages (when touching and releasing the faders) should be discarded entirely.
If I could see one example of all the proper settings, rules and MIDI routing (!) , I can probably figure out the rest myself. I suppose I need to make use of the virtual MIDI driver in Cubase instead of the Extender directly.

Many many thanks in advance!

Hi and welcome to the Bome community!

The following example should do the trip.

The first preset ‘Init’ is just used for most of my project to handle project initialization and is not really relevant to your specific request.

This tutorial describes what I do here.

I set my aliases as follows. You will need to set them to the physical ports you will be using.

You can learn more about aliases from this tutorial.

Translator 1.0 (Preset 1 translator 0) handles the conversion from CC70 on MIDI CH 1 to CC1 on MIDI CH 1. I use the local variable ‘qq’ to capture the incoming value and also send as the outgoing value. Variables and their types are discussed in the manual which can be accessed by pressing F1 or using the help menu of Bome MIDI Translator Pro . It is a PDF file.

Translator 1.1 looks for either note-on or note-off with note 110 on MIDI CH 1. It turns out if I mask the upper nibble of the first MIDI Byte (command byte) with 0xe0, I can determine whether it is a note message. Either note-on (0x90) or note-off (0x80) will result in a value of 128. Other MIDI messages will not.

I then mask with the lower nibble to check for MIDI CH 1.

If both match, we perform the outgoing action which is ‘None’

Otherwise, the message will go through the MIDI thru route defined in the MIDI router.

If the MIDI thru route is not added, then the second translator would not be necessary. In this configuration, all other MIDI messages that are not handled by translator with the ‘Swallow’ option, will pass untouched.

Here are the rules of translator 1.1 with their comments.

// look for note message (on or off)
// mask value
rr=oo&224
// if not 128 ten it is not a note message
if rr!=128 then exit rules, skip Outgoing Action
// look for MIDI CH 1
// mask channel nibble
rr=oo&15
//MIDI CH 1?
if rr!=0 then exit rules, skip Outgoing Action
// look for note number
if pp!=110 then exit rules, skip Outgoing Action
// do nothing

x-touch-ext-cc-mode-example-2025-03-25.bmtp (2.1 KB)

Steve Caldwell
Bome Customer Care


Also available for paid consulting services: bome@sniz.biz

Thank you Steve! Much appreciated. I’m going to have to take a good look at this. I’ll report back later!