Eos unresponsive to self-made OSC messages

I'm playing around with writing my own software that will send OSC to an Eos console and running into a bit of a stumbling block.

When I connect via TCP, I can see the connection noted in the diagnostics tab, but get absolutely no response from the console when I try to send OSC messages.  Looking at the traffic in Wireshark, I can see them making it to the target computer, and it looks (to me) that the messages being sent by my program are identical in form to the ones that Eos is sending out, as well as messages that come from MLA that I know work.

I noticed that messages coming from the console are prepended with four bytes that show the length of the message, but if I prepend those four bytes to my message the console still doesn't react.

If I fire up StringTheory and try to send messages that way, I also get nothing.  Oddly, though, if I send them via UDP I see the received message in tab 99, but only if it's UDP directly to that computer's IP (UDP to a broadcast address gets no response), and "/eos/ping" isn't answered with "/eos/out/ping".

Is there some extra step to setting up a TCP connection with Eos that I don't know about?

  • It's amazing the things a little bit of reading can eludicate.  I still don't know why the console won't respond to things when I try to set it up to listen to OSC 1.0, but who uses that on their shows anymore, anyway?

    I've gotten it working with this one trick:

  • OSC 1.0 via TCP uses Packet Length Headers (PLH) to loosely frame the OSC messages. If you would like to send a message this way, you essentially need to compose the OSC Message then prepend the message size as a 4 byte (UInt32) to the packet e.g. <message size><message>. For OSC 1.1 SLIP was introduced as you have found. You will need to implement RFC1055 to frame your OSC message correctly before transporting it. If you are receiving packets you will need to decode them in a similar way.

Related