@Fred this app is cinder-based, using the new OSC block. It supports UDP and TCP transport, which are almost identical in terms of use (TCP can't do multicast, and order of bringing up the server and the client is important). I don't know about the specs, but under the hood this block is based on c++ asio library.
I don't have a feeling of how unsynchronized the messages arrive to the devices, if they did arrive. By ear and a naked eye the arrived messages are in sync. Also, in the first show I have embedded the app into, reaching the destination at all is more important than reaching it in sync.
Node-red and its mqtt modules are node.js based. I have a solid experience with node, but the node-red flow diagrams operation and semantics escaped me in 5 minutes I spent yesterday after installing all that good stuff. Hence, having a basic flow example of how to wire osc and mqtt would be swell.
In the second show I am working on right now, I want to selectively control devices, this is where node-red proxy may become handy (it will keep the addresses of all devices and distribute the messages between them as needed). If not that, cinder's new osc block is great and I don't think I will have any difficulty coding the proxy in it. The only thing that stops me from jumping onto it, is that node-red may provide a much better configuration interface, which should be easily understood by the technicians in the field (once I build it), whereas cinder will require recompiling, until I figure out how to provide an easy off-line configuration.
--8