(Never mind, I take back the last bit about recompiling with lower numbers -- I was testing from the command line with miniAudicle still open and bound to the port.)
Ben On 8/22/14, 3:21 PM, Ben Steinberg wrote: > At Joel's and antimon's suggestion at electro-music, I tried OscRecv > instead of OscIn -- all 16 listeners worked. Recompiling with 256 makes > the original code work, as Joel said; my attempts to recompile with > lower numbers (24, 32, 72) did not -- no listeners worked. > > Ben > > On 8/22/14, 2:43 PM, Ben Steinberg wrote: >> 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 >>>> [email protected] >>>> https://lists.cs.princeton.edu/mailman/listinfo/chuck-users >>> >>> _______________________________________________ >>> chuck-users mailing list >>> [email protected] >>> https://lists.cs.princeton.edu/mailman/listinfo/chuck-users >> _______________________________________________ >> chuck-users mailing list >> [email protected] >> https://lists.cs.princeton.edu/mailman/listinfo/chuck-users >> > _______________________________________________ > chuck-users mailing list > [email protected] > https://lists.cs.princeton.edu/mailman/listinfo/chuck-users > _______________________________________________ chuck-users mailing list [email protected] https://lists.cs.princeton.edu/mailman/listinfo/chuck-users
