[chuck-users] limit on number of OSC addresses you can listen to?
Ben Steinberg
ben at potswift.org
Fri Aug 22 15:43:34 EDT 2014
(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
>>>> 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
>>
> _______________________________________________
> 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