First Pass at controlling an XR18

4 posts / 0 new
Last post
notme's picture
First Pass at controlling an XR18

First off thanks for the great tools.

While I do have a question, this post is mostly because I couldn't find this information without reading all of the XR18 Manual (46 pages), the unofficial X32-OSC remote protocol by Patrick-Gilles Maillot (177 pages), the BC Manager manual (145 pages), and the BC MIDI Implementation docs (149 pages), plus some on line text to ascii and hex calculators and an XR18 OSC chart that shows some of the differences from the X32. I hope this helps others get the most our out their toys.

I've been looking for a way to more reliably control my Behringer XR18 digital mixer in live settings. When indoors with solid networking an iPad works well, though recenly that's not where I've been. As part of Covid my band, where I play sax and run the sound system, has been playing outdoors in a park with long mic cables and batteries to enable social distancing. This works great, however the wifi base staion in the XR18 mixer is so pathetic that the iPad frequently looses sync so that by the time I manage to boost the solo it is over, especially if I have to unlock the iPad first. I haven't figured out how to get the iPad and mixer talking over ethernet with out an external router and setup takes long enough as it is, so enter the BCF2000 connected via MIDI cables (I had seen demos of the X-Touch connecting to the XR18 over MIDI and this looked less expensive).

Long story short, the XR18 supports a very limited set of MIDI and the BCF2000 doesn't do XCF (or whatever the new magic protocol is, perhaps just bidirectional OSC). The XR18 MIDI table is essentially just Channel Faders, Channel Mutes, Channel Pans, and Snapshot restore. While I would like full control, I needed send levels so that I can fix the "more me in the mix" problem. Luckily the XR18 supports most of its full OSC command set over MIDI vi Sysex commands. I've managed to get a .bcf that meets my needs and will post the python script that generates it as soon as I can figure out how to attach a file.

So on to the questions:

Dose anyone have a good idea how to better control the send levels? I can embed the val in the .tx based OSC command, however the OSC wants the level as an ascii string value between -90.0 and 10.0 while the val output is an integer from 0 to something large. I've configured the encoder to send 0 to 9 as a post fader knob with a press setting to -20, basically giving me "more me" and "mute" but not full control. The string in question is:

.tx $F0 $00 $20 $32 $32 $2f $63 $68 $2f $30 $33 $2f $6d $69 $78 $2f $30 $31 $20 val $2e $30 $20 $4f $4e $20 $50 $4f $53 $54 $F7


.tx [sysex] [behringer] /ch/03/mix/01 val.0 ON POST $encoder 2 $F7

if anyone has any ideas (either on better ascii encoding or how to get the XR to accept hex) I'd like to hear them.

I solved the "how to get the initial fader values?" problem by leveraging the fact that the XR18 has 64 internal snapshots. I've set a user button send the OSC command to store to a previously unused snapshot and another to load from it. This effectively gives me a "refresh all fasters" command in a two button sequence so that I can initialize the faders if I changed settings while the BCF was not connected, or if I need two presets to handle either more than 4 sends or more than 8 channels. 

the relevant lines are

$button 51 ; Store Temp
  .tx $F0 $00 $20 $32 $32 $2f $2d $73 $6e $61 $70 $2f $73 $61 $76 $65 $20 $31 $32 $F7 ; store current to temp snapshot "/-snap/save 12" note 1 based numbering
$button 52 ; Load Temp
.easypar PC 1 off off 11 ; load temp snapshot which refreshed faders, note zero based numbering

Ross Dickson

nottooloud's picture

As you have discovered, the XR18 internal wifi is crap. Best answer is to get a router that does 5 gHz. Barring that, set the IP addresses of the mixer and the laptop/ iPad to related but not identical fixed addresses. Then all you need is an ethernet cable. You can go back to your iPad, but set it to not turn off and keep it plugged in. Apple's Lightning to USB3 adapter has a power jack, and you can plug in their USB to ethernet adapter. Don't bother with third party adapters, the savings isn't worth the headaches.

If you want to use a BCF, or any generic MIDI controller, get Mixing Station for whatever platform you like. The X-Air MIDI control is extremely limited. Mixing Station has full control, and can learn MIDI for any function. Set your BCF up as HUI or whatever.  You probably don't need B Control, but you will need a laptop.


notme's picture

I the abstract I agree, but there are two constraints I'm operating under:

1) a very limited power budget as I'm outdoors using batteries

2) I'm already using the laptop to record mult channel audio over usb

I want to use physical controls rather than ipad as I'm trying to grab a level between bars on the Sax so its much easier to grab a physical control than hit the right button on the screen. I've tried connecting both the BCF2000, and an x-Touch mini (usb only) to the laptop but haven't figured out how to only control the mixer and not the DAW that is doing the recording.

With the setup I have above I've managed to get all the controls I need, if not all the controls I want, from BCF to XR via MIDI cable with audio recording over USB essentially eliminating the use of ethernet or WiFi during performance. And the added bonus that I don't need to connect to the XR Ethernet to change the Ethernet address everytime I plug or unplug from my desktop network, though I could probably just assign a static address to the XR that work with my desktop network.

All in all, thanks for confirming what I've found.

notme's picture

I found the upload site, the files are now in a new Behringer folder under devices. for the python script and for the generated .bcf

I would have createde a new .ini but couldn't get BCManager to recognize either a new manufacturer or a new device .ini I suspect a problem with the new file permissions on the mac