Behringer XR18 + OSC/Pilot?

Hello. I want to create my own interface to control XR18. So it’s either MIDI or OSC. OSC is preferable because we will be controlling it from another computer in network. I was able to get everything working using:
MIDI Translator (paid)
OSI Stage (paid)

But that’s way too many programs at once and more than 150$ investment. Is it possible to directly connect OSC/Pilot to XR18? I will be buying OSC/Pilot if it’s possible.

I’m not familiar with the XR18 directly. With the current way you have it setup, is OSC/PILOT sending OSC to MIDI Translator, which is forwarding those MIDI messages over RTP MIDI to the XR18? HOw is OSI Stage in the mix?
Are the MIDI messages that come out of OSC/PILOT itself not usable for this?

My current setup looks like this:
Pilot → Midi translator → OSIStage → RTP-Midi → XR18 Midi

OSIMidi is a software that can map midi commands to mixer and control it. Maybe if there is a way to find out OSC or MIDI commands that mixer sends back. I wasn’t able to map directly OSC/Pilot MIDI to XR18 yet.

I was able to get faders and buttons working by linking MIDI CH and MIDI CC. But they do not synchonize in OSC/Pilot when you change values elsewhere. Using Midiview I was able to see that mixer sends events when faders or buttons change. But how can OSC/Pilot get those?

MIDI feedback is not yet supported, however I’m working on it this weekend and hope to release it tomorrow. I have it working on Windows, just need to get the macOS version working.

1 Like

I was able to map faders and buttons to XR18 via OSC. But OSC feedback doesn’t work. Mixer is designed to send back data to the original port. If the request comes from 10028, the it sends it to 10028. TCPView shows that ports 55650 and 10028 are open by OSC/Pilot. Unfortunately it uses 55650 to send the query. There is no way to change feedback port on mixer itself.

What can I do to send and get all requests from the same port?

Ah, this is a missing feature. The send-from port is randomly chosen by the OS (55650 in this case). However I don’t listen for messages on that port, I only listen on the ‘listen-on port’.
I’ll look into also listening for messages on the send-from port, which will be randomly chosen by the OS, but receivers know that messages are coming from that port, so they can reply to it if they wish.

Thanks. I might start using OSC/Pilot now, but having full sync with the mixer will be a game changer.

There is 1 little thing to make it all work with XR18. I found out that: mixer sends back OSC feedback data only if you ping mixer using /xremote every 5 seconds. If you dont send this command repeatedly, then it won’t give you back changes that are made outside of OSC/Pilot. Is there a possibility within your program to loop an OSC command? If not, would you please consider adding it?

Interesting requirement, I’ll think about that. Maybe some sort of heartbeat widget.
Looks like I can’t post today because my codesigning certificate has expired. I’ll try to get the new build out this week.

Thanks. Will be looking for updates!

Yes you need to send the handshake within 10 seconds and indeed the mixer will answer to the same port a request originates from. This is especially important for subscribing to parameters so the mixer can update changes to any connected editors.

Getting the port answer working would be the first i’ve seen in higher level environments. I managed to get it all working within Arduino IDE with Teensy 3.2’s and ethernet shields.