[PD] $0 and Data Structure Templates

Georg Werner georg at fricklr.de
Mon Dec 1 16:10:43 CET 2008


Hi,

i'm working on an abstraction with data structures inside (franks 
tutorial was very helpful
http://puredata.info/community/projects/convention04/lectures/tk-barknecht/tut.tgz/view?searchterm=data%20structures%20tut
) and i use $1 in the name of the template (like this: struct 
$1-template float y array numbers $1-template-num), this works and i 
have a workaround for getting both - a non changing part in the data 
structure which is quite unique for each instance of the abstracion ( ;) 
i just have to take care not to give two abstractions the same creation 
argument).
g.

ps.: in the tutorial by Gregorio Garcia Karman is also a good starting 
point ( 
http://puredata.info/Members/ggkarman/Tutoriales/datastruct_en_02/view )


Frank Barknecht schrieb:
 > Hallo,
 > Mike McGonagle hat gesagt: // Mike McGonagle wrote:
 >
 >> I think this should be allowed, hell, even the use of other $
 >> arguments. It would be nice to be able to allow abstractions to create
 >> their own private data structures, or at least ones that could be
 >> named based on a creation argument.
 >
 > All this *is* allowed. But Luke's problem is more general: If you use
 > $0, its value is only valid in a running patch. This not only affects
 > data structures, but everything, i.e. also qlist, textfile and so on.
 >
 > If you write the value of $0 into textfile, you get something like
 > 1023, which probably is not the same value $0 has when you reload the
 > file later in a different context.
 >
 > It all boils down to the fact, that Pd only has global scoping and
 > that using $0 is just a limited workaround, but not adding a real
 > local scope.
 >
 > The only thing that could be considered local scope in Pd are direct
 > patch cord connections: They are as local as it gets.
 > So what I generally do if I use $0-structs is to not save the data
 > structure instances with "write pd-x" but traverse and parse them down
 > into [textfile] and use that for storing and reloading. I.e. with
 >  [struct $0-a float x float y]
 >
 > and a data subpatch [pd x], I'd use traverse pd-x, and write each
 > x,y-pair into [textfile]. Then to reload, I clear pd-x, and dump the
 > textfile's contents to an [append $0-a x y].
 >
 > This acctually has the advantage, that I can prepare the textfile in a
 > text editor or so.
 >
 > Ciao





More information about the Pd-list mailing list