[PD] rj dirlib [was: Re: how to nqpoly?]

Hans-Christoph Steiner hans at at.or.at
Mon Nov 9 19:34:45 CET 2009


On Nov 9, 2009, at 1:27 PM, Hans-Christoph Steiner wrote:

>
> On Nov 9, 2009, at 11:52 AM, Frank Barknecht wrote:
>
>> Hallo,
>> João Pais hat gesagt: // João Pais wrote:
>>
>>>> Depening on what kind of polyphonic patch you want to do, there are
>>>> some newer
>>>> alteratives to nqpoly4.
>>>>
>>>> If you want to polyphonize a simple midi instrument that accepts
>>>> pitch/velocity
>>>> pairs with [makenote] syntax, I'd recommend u_makepoly from the rj
>>>> library.  To
>>>> polyphonize oneshot instruments like drums, use u_robinpoly or
>>>> u_robinpolymono.
>>>>
>>>> All three come with extensive help files.
>>>
>>> ah, I didn't say that. basically there are simple synth patches  
>>> (with
>>> audio, all output for a main [throw~]) that take in lists with
>>> parameters. the lists come from a "score" of data structures  
>>> arrays (for
>>> now up to 6 parameters/arrays), at a rate of 100 a second. so I  
>>> guess no
>>> midi or oneshot type events. anyway I'll look at your suggestions.
>>
>> I guess, you could use u_robinpoly then. The difference is in the  
>> voice
>> allocation algorithm: u_makepoly uses the one from [poly] that  
>> relies on
>> makenote-like lists as parameters.
>>
>> But u_robinpoly just has a counter that counts modulo the number of  
>> voices
>> (i.e.  round-.robin polyphony). Every list you sent to robinpoly  
>> will be sent
>> to the next free voice unaltered (well, it will become a list- 
>> message, but you
>> can also directly send pointers for example). There is no effort  
>> whatsoever to
>> free voices, and as soon as all voices are taken, the first one  
>> will be reused.
>>
>>> unrelated: since you mentioned the rj library, I think it might be
>>> interesting (at least for me) to pack that library in pd-extended.  
>>> does
>>> this makes sense/is practicable for you guys?
>>
>> The rj-library is a moving target and gets new objects almost every  
>> week.
>>
>> Of course it's free software, so it could go into pd-extended, but  
>> I tend to
>> think of "rj" as something I came to call "dirlib" (i.e. the  
>> opposite of
>> "libdir").
>>
>> Because it is (almost) fully pd-vanilla, you can use it in a novel  
>> (or very
>> old) way: as a drop-in library that you just copy to whatever  
>> project directory
>> you are currently working on. (With RjDj this would be a Scene.) So  
>> a "dirlib"
>> is a library living in project directories. Just add [declare -path  
>> rj] to your
>> main pd file and that's it: you have a small, but at the same time  
>> very
>> powerful and fully documented musician's library right at your  
>> fingertips.
>>
>> [list]-abs is another example of such a "dirlib" you can use by  
>> copy-installing
>> it and adding a declare-ation. But as rj contains a minimal list- 
>> abs subset
>> this is only necessary in special cases.


I forgot to add, that you can also use any libdir in this manner that  
you describe above, dropping it into your project folder.  The only  
difference that I can see in your dirlib format as it stands now is  
that a libdir has a mylibrary-meta.pd file in it, and can be loaded  
like any other lib using [import], [declare] or "pd -lib" as long as  
you have the libdir loader.

.hc


>>
>> The advantage of the dirlib approach is, that this project  
>> directory will
>> continue to run on every Pd vanilla installation without any  
>> dependencies
>> outside of your project directory (with two tiny exceptions).
>
> Unfortunately, that's not true.  New versions of Pd-vanilla can  
> break this 'dirlib' approach too.  With the intro of a new object to  
> Pd-vanilla, any old object or abstraction in your lib that shares  
> that name will be blocked.  This is what we saw with the  
> introduction of [pow~] to Pd-vanilla.  Many people were using  
> cyclone's [pow~] before.  Since Pd-vanilla's pow~ is built into the  
> pd binary, there is no way to use an abstraction called 'pow~.pd',  
> and it even overrides pow~.pd_linux.
>
> For more info, check out my PdCon3 paper:
> http://at.or.at/hans/Let's_Make_Libraries_-_PdCon3.pdf
>
> The only way to maintain compatibility that has been proven is to  
> use the same versions of everything.
>
> .hc
>
>> So even if a later version of rj changes substantially, your old  
>> project with
>> the copy of rj *inside* continues to work as it always did. (As  
>> long as Pd
>> doesn't change too much, of course.)
>>
>> Ciao
>> -- 
>> Frank
>>
>> _______________________________________________
>> Pd-list at iem.at mailing list
>> UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
>
>
>
>
>
>
>
> ----------------------------------------------------------------------------
>
> "It is convenient to imagine a power beyond us because that means we  
> don't have to examine our own lives.", from "The Idols of  
> Environmentalism", by Curtis White
>
>
>
>



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

"Making boring techno music is really easy with modern tools," he
says, "but with live coding, boring techno is much harder." - Chris  
McCormick








More information about the Pd-list mailing list