Eos OSC no responses.

I am trying to create an OSC client for EOS and I would like to get the command line. I am able to send MSC commands over a UDP connection, but no replies from EOS . I would like to receive the commandline at a minimum '/eos/out/cmd'.

I am using a RawDatagramSocket in dart to send OSC messages. Eos is responding to keypresses by filling the commandline, but Eos does not respond with anything. I am trying to listen on port 8001 for a response, but I am not sure if there is anything I am doing wrong here.

I am not sure if anyone is a programmer here, but here is my code interacting with ETC Eos: github.com/.../osc_control.dart

  • I'm not familiar with the libraries you are using and am too lazy to dig into them. Most of my OSC experience is with embedded processors and the CNMAT/OSC library.

    The diagnostics tab (Tab 99) will confirm Eos is sending and receiving OSC messages. That will help isolate the problem to your code.

    If Eos is not sending /eos/out/<whatever> messages in response to your /eos/<whatever> message then confirm OSC TX is enabled and OSC UDP TX Port is set to 8001.


    After that, it's likely due to your code. /eos/subscribe and/or eos/filter can suppress responses. SLIP settings may influence whether your OSC library can decode the message.

    Wireshark is a useful tool in the early stages of debugging an OSC app.

  • Thanks  . I have been using the diagnostics tab and I can see the packets going out, but I do not see them going through wireshark unless they are encrypted. the library I am using relies on UDP.  Below is my Configuration and output. I am suing OSC 1.0 and not SLIP 1.1. 

  • The packets are going out on [USB 1] but they aren't going out on [Global/UDP]. Specify an OSC UDP TX IP Address in setup. If you don't know your client's IP then try using your network's multicast IP. For a 192.168.1.1/24 network that would be 192.168.1.255.

  • You should also have a look at the packets going into Eos. Just because you're getting Eos to react to them, doesn't mean that they're actually formatted correctly. Use Wireshark to check if what you're sending (and receiving) is actually OSC and not just any regular UDP packet.

  • As mentioned already you need the TX IP Address set.

    However I'm pretty sure you have a bit of an error in your code.

    It looks like you correctly open the listening socket at the start of the code,  but then you call your UpdateEOS function and that opens it again (and closes it at the end of the function).  And in general a lot of your functions keep opening and closing the socket. (high probabablty of packet loss even if it works at all)

    You probably just need to declare OSCSocket listenSocket at line 24 and remove the other definitions and get rid of all the OSCSocket listenSocket = OSCSocket(serverPort: clientPort); and close lines of code other than in the setup code at line 61, which becomes just listenSocket = OSCSocket(serverPort: clientPort);

    You might also consider changing the way you have different definitions of the call back function you are assigning to listenSocket.listen to be a single definition that you set at initialisation as you probably want to respond to any incomming OSC in a consistent way regardless of what command you've just sent (as because this is all asyncronous and with (albeit small) network delays, you are opening your self up for race conditions if you only process specific incoming osc after sending particular osc command.

Related