[PD] 200 voices of timbre-space navigation

Hans-Christoph Steiner hans at at.or.at
Wed Nov 24 19:06:02 CET 2010


On Nov 24, 2010, at 6:00 AM, Frank Barknecht wrote:

> On Tue, Nov 23, 2010 at 01:23:44PM -0500, Hans-Christoph Steiner  
> wrote:
>>
>> On Nov 23, 2010, at 12:32 PM, Frank Barknecht wrote:
>>
>>> I didn't look in detail at how [getdir] is used, but for the rj poly
>>> objects we just require that the things you want to create  
>>> dynamically are
>>> in  your search path, just like for [polypoly]. I think, that's  
>>> probably a
>>> reasonable assumption.
>>
>> That's a dangerous assumption on anything but a small, tightly
>> controlled system.  That takes us back to the bad old days when if  
>> you
>> used an external library, chances are your patch would not run on  
>> anyone
>> else's machine.
>
> If you create a poly-thing.pd file with e.g. [bundle 5 thing] in it,  
> then the
> way you are currently using [getdir] it seems it will only find a  
> thing.pd to
> load if it is in the same directory as poly-thing.pd. Creating for  
> instance a
> [bundle 5 creb/blosc~] will not work, because creb/blosc~.pd_linux  
> probably is
> somewhere else.
>
> Now inside rj, we can poly-ize any object that you could manually  
> create in
> your patch as a single separate object. This makes it very easy to  
> patch
> something monophonic first, then later make it polyphonic by just  
> changing your
> [s_rhodey] to [u_makepoly 8 1 s_rhodey]. This is *extremely* useful.
>
> OTOH the only case, where objects cannot be created, is the case  
> that you solve
> with getdir: abstractions that are right next to the surrounding  
> patch (like
> poly-thing.pd and thing.pd from above) cannot be created immediatly  
> because Pd
> extends its search path to the current directory only for the  
> toplevel patches,
> not for abstractions used inside.
>
> But to fix this is trivial and easy and portable: Just add [declare - 
> path .] :)


Ah, I see, I totally didn't think of that use case.  For me, this lib  
has always been in the context of using my own patches, so I was  
focused on solving the problems I've encountered there.  It is also  
totally useful to be able to use any object in these objects too.

I have two ideas on how to combine both approaches:

- test whether the file exists in the current project dir and use  
getdir, otherwise use the normal path

- use getdir to add the project path to the poly object via [declare - 
path $1]

Both are untested as of yet, but seem feasible.

.hc


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

If you are not part of the solution, you are part of the problem.





More information about the Pd-list mailing list