does anyone have a clou, how to listen to plain UDP messages in Isadora or instead a way to translate these messages from UDP to an Isadora compatible TCP?
What are you trying to connect :) Perhaps we can be of more help then.
You can use Processing (UDP to Net (Processing Net library is TCP)), I guess to translate ? Never done it myself, but with a quick look at the API it seems doable.
i have some raspberry pi's preconfigured by someone else, sending fixed UDP messages to a Watchout Server. I would like to kick out Watchout and using Isadora instead. I saw a thread once here, discussing OSC send actor to send plain UDP messages and thought it might work the other way around.
As time and my processing skills are limited, while the solution should be easier then or at least equal, using Watchout translating the messages, processing is not an option.
Oh, by the way, the System is on Windows! ;-)
Hi there @DillTheKraut,
Got ya. Raspberry Pi's can speak OSC. Any way that you can ask the person that did the configuration to use pyOSC ? That way Isadora support is easy :)
OSC is UDP based, so what we can do is the follow :
- Change the packets that are being sent to a OSC format (See the OpenSoundControl specs for more information). Since we are already sending UDP we can easily change that around by using OSC format.
Let me think about this subject for a bit, perhaps I can even give you a way to translate it by creating my own little processing patch :) Will let you know soon
What are you sending btw ? Are we talking big streams of data ?
Thanks for getting into it Juriaan!
The pi's ar out of reach in the time being. They are proprietary coded and wont be changed in any way soon. They just sent a trigger message like "start video X". I even don't really know the exact string, but could provide a wireshark listening protocol.
I now tried to send a TCP message from watchout to Izzi and realized, that the TCP stream has to be initialized by Izzy, is this true or do I miss something?
As watchout/ initializing/opening its send port only when sending the message, one can't connect Izzy to the corresponding port. Isn't it possible to have Izzy just listening at a specified port accepting external connections?
Ok, regarding to watchout documentation the UDP string ist 'run "video X"' followed by line feed + carriage return (0A 0D).
Hi there @DillTheKraut,
It is possible for Isadora to listen to connections see "TCP In Watcher - Text" / "TCP In Watcher Binary" and the "TCP Stream Control.
You need to have one TCP Stream Control actor that basically is our 'master' connection and the TCP In Watcher - Text and TCP In Watcher - Binary just parse the data.
But you got me to the idea, that changing the plain UDP String somehow to a propper OSC message, readable by the OSC actors!?
I'm currently working on it for you. I already got it working :)
@juriaan wow, you are amazing! How could I thank for that!? I'm looking forward to the magic!
But I'm curious how to use the tcp actors anyway. I already tried these, but as both listeners rely on the stream control, isn't a preconfiguered connection needed, that has to be initialized by the stream control actor?
Regarding your questions about the TCP actor.
The Stream Control actor establishes the connection with our web endpoint. Basically he says 'Hi there 'TCP Adress' at Port 'TCP Port', if you wish to do a handshake here am I !' The endpoint reacts with a TCP Handshake and returns his response. The response get inside our TCP In Watchers and parses to valid output
We intiliaze the connection with the Stream Control actor.
Regarding my solution. I came up with a idea to parse UDP packets to OSC commands. (Something that is really easy with Isadora to control was the design question).
For this I used processing 3 since it has some great libraries for UDP / OSC.
My setup :
- 2 Laptops. One that was the 'WATCHOUT' or UDP sender in your setup and one laptop that is receiving (parsing the packet and sends it over to Isadora using localhost)
- One network switch (Gigabit)
Processing Patch :
- For this to work we need to install Processing 3. Head over to there website to install the windows version that you need :)
- Install the UDP library (http://ubaa.net/shared/processing/udp/) and install OSCP5 (From the included library manager, not from Google / Website. Since those are old versions..)
- Open up my example patch and change the Settings to your Incoming Port (Output Port of WatchOUT / UDP sender (Raspberry PIs)) and change the IzzyBridge settings to have the correct OSC port (See Isadora > Preferences > Midi / Net)
- Run the Processing code (IzzyBridge Processing)
- Go to Isadora > Stream Setup > Auto Detect Input (On)
- Send a command from your sender (WatchOUT / Raspberry Pis / anything basically that speaks UDP)
- The string that is sent with UDP now appears in the Stream Setup window
- We can use this string with a Text Parses in Isadora to get the necassary information from it :)
Like Always, if you need any help with it please let me know :)
Isadora Community is Best Community.
Maybe this small application helps: UDP-TCP Bridge