[PD] 200 voices of timbre-space navigation
Hans-Christoph Steiner
hans at at.or.at
Wed Dec 1 03:21:18 CET 2010
On Wed, 2010-11-24 at 12:00 +0100, 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 .] :)
>
> Ciao
So I figured out how to add the [declare -path .] part as part of the
dynamic patching. It was easy enough, but that means it still needs
ggee/getdir. So basically, in instances.pd and instances~.pd, I made an
automatic version of what you describe above. For bundle.pd, it also
does the taht, but still gives the instance# and instance_count as the
1st and 2nd args.
Arg, but now there seems to be a [declare -path] bug with absolute paths
on GNU/Linux. That part was working on Mac OS X...
.hc
More information about the Pd-list
mailing list