I'm trying to get AutoHotKey to change snapshots (scenes) on our X-Air-18, but I'm getting no love from the UDP packets I'm creating.
I've no problem changing snapshot with the (now old) X-Air software on our PC or a tablet. When I do that, I can see, with Wireshark, what the packet data should look like and I can reproduce the packet data.
But I'm getting no response on the X-Air. I am using the correct IP address and port number.
Is there some other handshaking I need to do before sending the /-snap/load address?
Is a single /-snap/load insufficient to make the change?
Thanks!
X-Air OSC control
Re: X-Air OSC control
@jhockin Welcome to the forums.
How are you encoding the OSC message? That's usually the source of the problems. If the encoding is wrong, the mixer will just ignore the message.
How are you encoding the OSC message? That's usually the source of the problems. If the encoding is wrong, the mixer will just ignore the message.
Re: X-Air OSC control
Since you mentioned AHK, you may want to check out @pvannatto 's XAir Live Toolbox.
https://behringer.world/viewforum.php?f=58
https://behringer.world/viewforum.php?f=58
Re: X-Air OSC control
Thanks. I’m coding the message as null-terminated strings, aligned on 4-byte boundaries, with a long integer for the snapshot number. The packet looks *exactly* like the ones I can capture with Wireshark. I’ll check out Paul’s toolbox.
Re: X-Air OSC control
Solved my problem today. OSC requires big-endian integers and AutoHotKey was sending little-endian. It really helped to have the toolbox from @pvannatto
Then I could use Wireshark to see the difference between what AHK was sending and what it should have been.
So, for anyone wanting to use AHK to manage an X-Air, it's as simple as using the AHK winsock extension to connect to the mixer (IP address and port).
Then you build the command with appropriate syntax (and endianness) and send that off. All I'm using it for is to change snapshots, so I don't even need to handle responses from the mixer.
Then I could use Wireshark to see the difference between what AHK was sending and what it should have been.
So, for anyone wanting to use AHK to manage an X-Air, it's as simple as using the AHK winsock extension to connect to the mixer (IP address and port).
Then you build the command with appropriate syntax (and endianness) and send that off. All I'm using it for is to change snapshots, so I don't even need to handle responses from the mixer.
Re: X-Air OSC control
Indeed, that is very strange. Maybe it isn't the OSC encoding but something else with the packet itself.
Just to confirm, when you say "no response" you mean that the mixer doesn't do anything, right? If you are looking for a mixer reply message, you have to hold onto and listen on the "source port" that sent the message. If you are looking at WireShark, I suspect you know all of this already but just making sure.
Re: X-Air OSC control
The OSC / X-Air documentation clearly states that integers must be big-endian. I just wasn't thinking about the PC being little-endian. So the integer snapshot number I created as 0x00000001 was seen by the mixer as 0x01000000!
Oh, sorry @kmitchell, everything works perfectly. I could see the change in snapshot on our tablet. I meant that I don't have to wait for any response from the mixer after loading a snapshot. That means I don't have to set up a listener.
Last edited by jhockin on Wed Feb 28, 2024 3:02 am, edited 1 time in total.