[PD-dev] the future of [declare] and canvas_savedeclarationsto()
Frank Barknecht
fbar at footils.org
Mon May 19 19:05:41 CEST 2008
Hallo,
Miller Puckette hat gesagt: // Miller Puckette wrote:
> I use 'declare' all the time.. don't think it's semifunctional at all.
> I think the questions about how declares should act inside abstractions
> are hard to resolve; in my own usage (and in the way I suggest others might
> want to use declare) it's always in the main patch, as a way to show the
> patch what libraries, etc, it needs.
In Pd as I see it there is no inherent distinction between a main patch
and an abstraction. Even a patch designed as "main patch" can become an
abstraction quickly, for example if I make a toplevel performance patch
that loads other "main patches" as abstractions. If [declare] only works
in the new main patch, I will have to manually collect all dependencies
from the sub-abstractions again, which is tedious, duplicate work, if
they all include appropriate [declare]s already.
An open question is how to deal with conflicts, i.e. what to do when the
toplevel patch declares "-path /to/zexy/" and an abstration used in that
patch declares "-path /to/cyclone" and both try to use [urn] which acts
differently in zexy and cyclone.
As many things in Pd are global per default (value, send/receive,
arrays, ...) it may make sense to add something like a "-localpath"
option to [declare], so that abstraction authors could add their local
settings to a canvas, while still accepting toplevel declarations:
"toplevel patch":
[declare -path /to/zexy]
[urn] <= zexy's urn
[abstraction1]
[abstraction2]
"abstration1":
[declare -localpath /to/cyclone]
[urn] <= cyclone's urn
[abstraction1a]
"abstration1a inside abs. 1":
no "declare"
[urn] <= zexy's urn, as abs. 1 only uses -localpath
"abstration2":
[declare -path /to/cyclone]
[urn] <= zexy's urn, if main patch declares "zexy", cyclone's urn
otherwise
[abstraction2a]
"abstration2a inside abs. 2":
no "declare"
[urn] <= as in abs. 2.
But actually I would feel more comfortable if all settings would be
local to a canvas. For example "abstraction2a" from above would act
differently depending on the toplevel patc.
All local would conflict with your usage so far, though. OTOH it seems
[import] tries to be just that (never used it, though): A modifier for
the local canvas only, so maybe we can use both?
Ciao
--
Frank Barknecht
More information about the Pd-dev
mailing list