[PD] print all abstractions and externals

João Pais jmmmpais at googlemail.com
Mon Jul 7 00:06:36 CEST 2008


I would like to reply with a couple of suggestions:

Have you thought about another technique? instead of making several  
[select]s with lots of variables (which will have to be checked now and  
then, as we don't know fow now which version of vanilla was your reference  
version), you could take on a more environment-dependent approach: pd  
scans the extra folder (including subfolders) for installed  
externals/abstractions and writes the names of the installed objects in a  
list (or [textfile] (or [msgfile]) ) - they're easy to find if you look  
for the endings .pd (abstractions), or .dll / .pd_linux / .darwin [actual  
non-windows extensions are wrong, I think].
That would create a personal database for each pd installation for each  
user (assuming that users add something to their extra folder or a user  
has several versions of pd installed). Then the patch->environment  
comparation process you already programmed would take place. Meaning, you  
could test quite easily if a patch you want to open has any elements your  
system doesn't have.

One option to look automatically for objects in abstractions could be:  
pre-scan the patch folder (+ subfolders, if any?), and see if they come up  
in the results. if so, just open those files automatically afterwards.

For what use did you thought the patch might be useful? I think it's quite  
useful if I want to make a "standalone" patch, which has to be packaged  
with the program with it - and for that vanilla+ is better as extended.  
But from my opinion, I don't know nowadays how many people are working  
with vanilla instead of with extended (except some hardcore users). I  
guess new users use extended, since both are now in parallel versions.

As it was replied, [5] isn't "wrong". for example, if [5] is triggered by  
another object (and not a message), it's more efficient to have  
[object]->[object] than [object]->[message(, as data types don't have to  
be converted. (as I read some years ago in this list)
But if you (rightfully) don't want floats to go in your list, you can  
filter them out, a [route float] with no connection from the first outlet  
does it. (I just tried it)

João Pais

PS: for GUI design, I always say "GOP is your friend" - specially now,  
when you can even hide the creation name/arguments

> I've made a patch that might be useful for others. In the attached
> patch you can open a pd-file and the main window prints all the
> abstractions or externals that you need to make the patch work. It
> doesn't detect abstractions within abstractions though and it also
> prints objects like [5] or [$1], I didn't find a solution for this
> (small) problem yet. (I'd think it is bad pratice to use [5] in sted
> of [5(  or am I wrong?)
> I wanted to make a patch that copied all the necessary abstractions
> and the file itself to a new folder but I ended up with this simpler
> solution...
> hans r

Friedenstr. 58
10249 Berlin
Tel +49 30 42020091
Mob +49 162 6843570
jmmmpais at googlemail.com
skype: jmmmpjmmmp
IBM Thinkpad R51, XP, Ubuntu GG
Pd-Ext-0.39-2-t5, Pd Van 0.40-t2

More information about the Pd-list mailing list