[chuck-users] OSC reliability issues

Spencer Salazar ssalazar at CS.Princeton.EDU
Thu Jan 25 01:33:50 EST 2007


Hi David,
Yikes!  It sounds like you are running into two big limitations of  
ChucK--lack of file i/o, and lack of a reliable networking API.

OSC in ChucK, as in most other OSC implementations, uses UDP as its  
transport protocol, which basically means that one's OSC messages  
sent from ChucK are not guaranteed to ever arrive at their  
destination, nor are they guaranteed to arrive in order, nor are they  
guaranteed to arrive only once.  Under heavy load it is very likely  
that the network will drop packets.  Believe it or not this is  
actually desirable for many computer audio applications, as the  
latency overhead of a reliable transport protocol like TCP is often  
too great.

But it sounds like its definitely not desirable for your situation.   
The best solution would be to use TCP, which guarantees packet  
arrival.  Unfortunately ChucK doesn't support TCP in any form (yet),  
so thats not that helpful of a suggestion.  Another route would be to  
implement TCP-like reliability mechanisms over ChucK's OSC API.  To  
be honest this sounds like a huge pain too--implementing a light TCP  
stack over OSC over UDP in ChucK, no thanks!  Unfortunately until  
file i/o comes along this could be your only option.

> There is a
> posting on this list with a method for dumping the debugging output to
> a file instead of the console, but this does not work when running
> Chuck with separate class files

Could you be a bit more specific about this particular problem,  
possibly providing an example?  It is possible to pipe ChucK's <<<  
 >>> style output to a file or another application--is this what you  
are saying does not work for you?  I think trying to get this working  
would be the best way to go right now.

spencer

On Jan 24, 2007, at 9:20 AM, David Michael wrote:

> Chuck is sending regular "heartbeat" messages to a remote OSC app
> (written in Ruby: http://www.funaba.org/en/ruby.html#osc). When Chuck
> is only in the business of sending these messages, they all reach
> their target. As Chuck takes on more tasks, the events stop arriving
> at the remote machine.
>
> I have not tested this between 2 chuck applications on different hosts
> under heavy loads, but I will do this tonight or tomorrow and post the
> results back to this space.
>
> The reason I would like to send these messages reliably is because I
> am trying to figure out a way to get data out of Chuck. There is a
> posting on this list with a method for dumping the debugging output to
> a file instead of the console, but this does not work when running
> Chuck with separate class files (it only dumps the last one in the arg
> list). The alternative seems to be cut and paste all my classes into
> one huge file. I just thought that there would be a more elegant way
> to get data out of Chuck, perhaps by OSC so that another language
> could handle formating, file i/o, etc...
>
> Thanks
> David
>
>
>
> On 1/23/07, Philip Davidson <philipd at cs.princeton.edu> wrote:
>> Just to narrow this issue down-
>>
>> the Chuck app is sending regular messages ( or should be )
>> and a second, ( chuck/ non-chuck ) application on the ( same /  
>> separate
>> ) machine is not receiving?
>>
>>
>>
>> David Michael wrote:
>>> Hello list,
>>>
>>> I have been running experiments with Chuck's OSC implementation and
>>> have found that when I have an instance of Chuck producing  
>>> regular OSC
>>> events under a relatively heavy load (heavier than the example  
>>> files),
>>> the receiver only gets a few of these events - perhaps less than 20%
>>> of them. This situation makes it very difficult for parallel  
>>> instances
>>> of Chuck (on different machines) to communicate reliably.
>>>
>>> I have reproduced this on both Mac and Linux (Ubuntu) installations.
>>> I am curious if anyone else on the list has come across this issue.
>>> Does anyone have suggestions for dealing with OSC communication  
>>> reliably?
>>>
>>> Best,
>>> David
>>> _______________________________________________
>>> chuck-users mailing list
>>> chuck-users at lists.cs.princeton.edu
>>> https://lists.cs.princeton.edu/mailman/listinfo/chuck-users
>> _______________________________________________
>> chuck-users mailing list
>> chuck-users at lists.cs.princeton.edu
>> https://lists.cs.princeton.edu/mailman/listinfo/chuck-users
>>
> _______________________________________________
> chuck-users mailing list
> chuck-users at lists.cs.princeton.edu
> https://lists.cs.princeton.edu/mailman/listinfo/chuck-users



More information about the chuck-users mailing list