2011/5/10 matteo sisti sette matteosistisette@gmail.com:
Hi,
Does the OSC standard (or to be more precise, the standard for OSC over UDP) allow to pack multiple OSC messages into a single UDP packet?
If so, is there any chance that [packosc] and/or [udpsend] do so "behind the scene" (i.e. without explicitly asking them to do so) when you send them many messages in 0 or little logical time?
Ok that is definitely _not_ happening (whether it is possible or not). Nor is packOSC unexpectedly bundling messages into bundles: it only does it if you explicitely ask it, as expected.
I ask this because I am sending OSC messages from Pd to TouchOSC (on an iPad) and when I send it multiple messages in 0 logical time (even just 3 or 4 messages at a time, not dozens), TouchOSC almost systematically loses many of them.
That's simply and plainly what is happening: either TouchOSC or the iPad itself are dropping UDP packets if they are received too close to one another.
On 10/05/11 10:38, matteo sisti sette wrote:
Have you tried explicitly packing them into OSC bundles? it might fix the issue as a side effect.
Thanks a lot for the suggestion. It does fix the issue!!!!! :):):)
I hadn't tried at first because I thought that even if it worked it was not an option, as I cannot know in advance how many messages are to be sent. But then I realised I could buffer the messages and send a bundle every XX milliseconds.
With this trick I have drastically reduced (almost eliminated) the occurrence of packet losses. To remove the issue completely I have created a memory of all the target osc addresses and I periodically re-send (always in big bundles) the last values that have been sent - which is feasible in my case because the messages I'm sending out represent states and not events.
Does anybody of you perhaps know a (free) generic UDP monitoring application for the iPad, so that I could figure out whether the packets are being dropped by TouchOSC or by the iPad?
Thanks m.