[chuck-users] limit on number of OSC addresses you can listen to?

Ben Steinberg ben at potswift.org
Fri Aug 22 14:43:36 EDT 2014


Wow, thanks! I'll see about getting a dev environment together and
recompiling with something like 32 or 64 --

Ben

On 8/22/14, 2:38 PM, Joel Matthys wrote:
> It looks to me like the limit of 12 is hard-coded in src/ulib_opsc.cpp,
> line 201:
> 
>     m_inMsgBuffer(CircularBuffer<OscInMsg>(12)),
> 
> I raised it to 256 and recompiled and your example worked correctly.
> 
> I can definitely see the value of allowing more than 12 addresses on the
> same port. I'm not sure the memory impact though.
> 
> Joel
> -- 
> 
> On 08/22/2014 12:25 PM, Ben Steinberg wrote:
>> I've posted about this to the electro-music forum:
>> http://electro-music.com/forum/viewtopic.php?p=402793
>>
>> In trying to write some code for the Illucia dtr, I found that adding
>> addresses to an OscIn object appeared not to work after twelve
>> addresses.  I wrote a test program that wasn't illucia-specific; the
>> following code starts 16 OSC transmitters and 16 receivers. When you run
>> it, you can see that transmitters 0-15 all transmit, but only receivers
>> 0-11 receive.
>>
>> for ( 0 => int i ; i < 16 ; i++ ) {
>>      spork ~ output(i);
>>      spork ~ input(i);
>> }
>>
>> while ( true ) {
>>      1::second => now;
>> }
>>
>> fun void output(int number) {
>>      12008 => int port;
>>      "localhost" => string hostname;
>>      OscOut xmit;
>>      xmit.dest(hostname, port);
>>      while (true) {
>>          Math.random2f(5.5, 8.5) => float wait;
>>          wait::second => now;
>>          xmit.start("/tester/what/" + number);
>>          Math.random2f(0.0, 1.0) => float temp => xmit.add;
>>          xmit.send();
>>          <<< "sent", number, temp >>>;
>>      }
>> }
>>
>> fun void input(int number) {
>>      OscIn oin;
>>      OscMsg msg;
>>      12008 => oin.port;
>>      oin.addAddress("/tester/what/" + number + ", f");
>>      float val;
>>      while (true) {
>>          oin => now;
>>          while ( oin.recv(msg) != 0 )
>>          {
>>              msg.getFloat(0) => val;
>>              <<< "received", number, val >>>;
>>          }
>>          5::ms => now;
>>      }
>> }
>>
>> I'm running ChucK 1.3.4 on Mavericks, with and without miniAudicle.
>> _______________________________________________
>> 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