[PD] many - a library for managing many instances

Hans-Christoph Steiner hans at at.or.at
Tue Nov 23 20:35:54 CET 2010


Ok, I refactored voices~.pd (previously known as voicepoly) so that it  
no longer uses [initbang].  It turns out the rest of the 'many' lib  
was already using [loadbang].  Also I just remembered another  
advantage to using [initbang]: you can create a [throw~] to have audio  
inlets, and Pd won't complain about no missing [catch~].

.hc


On Nov 23, 2010, at 12:28 PM, Hans-Christoph Steiner wrote:

>
> That was just a preliminary release, check the SVN for the most up- 
> to-date (also I think I updated the tarball to have [bundle]).
>
> The dynamic send idea is interesting, especially since you  
> benchmarked it.  How did you benchmark it?  That would be useful.   
> Also, did you try making the send symbol using a message box to  
> benchmark, i.e.:
>
>       |
>      [pack float $0]
>       |
>      [$2-in1-$1(
>       |
>   [send]
>    |
>
> It seems that the help patches do require something besides Pd- 
> vanilla, u_robinpoly-help.pd gives me this:
> soundoutput
> ... couldn't create
> u_loadmeter
> ... couldn't create
> u_robinpolymono
> ... couldn't create
> s_drumelectro a b c d
> ... couldn't create
> s_drumelectro a b c d
> ... couldn't create
> s_drumelectro a b c d
> ... couldn't create
> s_drumelectro a b c d
> ... couldn't create
> s_drumelectro a b c d
> ... couldn't create
> s_drumelectro a b c d
> ... couldn't create
> s_drumelectro a b c d
> ... couldn't create
> s_drumelectro a b c d
> ... couldn't create
>
> When I launch u_makepoly-help.pd straight from rjdj/rjlib/rj, I get  
> this:
> soundoutput
> ... couldn't create
> 1004-poly 3 1 2 0 (canvas->throw~) connection failed
> 1004-poly 5 1 2 0 (canvas->throw~) connection failed
> 1004-poly 7 1 2 0 (canvas->throw~) connection failed
> 1004-poly 9 1 2 0 (canvas->throw~) connection failed
> 1004-poly 11 1 2 0 (canvas->throw~) connection failed
> 1004-poly 13 1 2 0 (canvas->throw~) connection failed
> 1004-poly 15 1 2 0 (canvas->throw~) connection failed
> 1004-poly 17 1 2 0 (canvas->throw~) connection failed
>
> And this from u_robinpoly-help:
> soundoutput
> ... couldn't create
> 1160-poly 0 0 3 1 (receive->canvas) connection failed
> 1160-poly 3 1 2 0 (canvas->throw~) connection failed
> 1160-poly 0 0 5 1 (receive->canvas) connection failed
> 1160-poly 5 1 2 0 (canvas->throw~) connection failed
> 1160-poly 0 0 7 1 (receive->canvas) connection failed
> 1160-poly 7 1 2 0 (canvas->throw~) connection failed
> 1160-poly 0 0 9 1 (receive->canvas) connection failed
> 1160-poly 9 1 2 0 (canvas->throw~) connection failed
> 1160-poly 0 0 11 1 (receive->canvas) connection failed
> 1160-poly 11 1 2 0 (canvas->throw~) connection failed
> 1160-poly 0 0 13 1 (receive->canvas) connection failed
> 1160-poly 13 1 2 0 (canvas->throw~) connection failed
> 1160-poly 0 0 15 1 (receive->canvas) connection failed
> 1160-poly 15 1 2 0 (canvas->throw~) connection failed
> 1160-poly 0 0 17 1 (receive->canvas) connection failed
> 1160-poly 17 1 2 0 (canvas->throw~) connection failed
>
> .hc
>
> On Nov 23, 2010, at 4:07 AM, Frank Barknecht wrote:
>
>> Hi Hans,
>>
>> these look pretty cool and very useful. The rj library has two
>> polypoly-like objects as well: [u_makepoly] and [u_robinpoly] (of  
>> course
>> the latter don't require any externals or modifications to vanilla  
>> Pd).
>>
>> I have found in some benchmarks, that the  [inlet]---[route 0 1 2  
>> 3 ...]
>> technique can become quite slow for larger numbers of instances, so I
>> have replaced it in the rj-polys with the much faster technique if
>> dynamically assigned renamed [send]s. I have attached the patches  
>> so you
>> see what I mean. It really makes a difference on slow hardware like
>> iPod or Android phones.
>>
>> Ciao
>> -- 
>> Frank
>>
>> On Mon, Nov 22, 2010 at 04:49:49PM -0500, Hans-Christoph Steiner  
>> wrote:
>>> I finally got off my duff and put together this library I've been
>>> thinking about for years.  After making my own nqpoly5, nqpoly6,
>>> nqpoly7, runmany, voicepoly, etc.  I've tried to bundle all these
>>> techniques into a common library.  Since this library is all about
>>> managing many instances of a Pd patch, I'm calling it 'many'.
>>>
>>> http://puredata.info/community/projects/software/many
>>>
>>> Objects in the 'many' lib are based on code from Steven Pickles'
>>> (aka pix) nqpoly4 and Frank Barknecht's polypoly.  Thanks to pix's
>>> nqpoly4 because that was the real groundbreaking work that proved
>>> that a useful and reliable instance-managing object could be
>>> programmed in Pd.  Frank then did the work to make it maintainable
>>> and hackable.
>>>
>>> .hc
>>>
>>>
>>> ----------------------------------------------------------------------------
>>>
>>> Computer science is no more related to the computer than astronomy
>>> is related to the telescope.      -Edsger Dykstra
>>>
>>>
>>>
>>> _______________________________________________
>>> Pd-announce mailing list
>>> Pd-announce at iem.at
>>> http://lists.puredata.info/listinfo/pd-announce
>>>
>>> _______________________________________________
>>> Pd-list at iem.at mailing list
>>> UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
>> <u_robinpoly-help.pd><u_robinpoly.pd><u_makepoly- 
>> help 
>> .pd><u_makepoly.pd>_______________________________________________
>> Pd-list at iem.at mailing list
>> UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
>
>
> ----------------------------------------------------------------------------
>
> “We must become the change we want to see. - Mahatma Gandhi
>



----------------------------------------------------------------------------

I spent 33 years and four months in active military service and during  
that period I spent most of my time as a high class muscle man for Big  
Business, for Wall Street and the bankers.      - General Smedley Butler





More information about the Pd-list mailing list