[PD] how to make a proportional canon

Frank Barknecht fbar at footils.org
Tue Jul 10 23:02:49 CEST 2007

Libero Mureddu hat gesagt: // Libero Mureddu wrote:

> Hi, here is a working example of the proportional canon patch.  Now
> I have the following question: if I want to make this patch an
> abstraction, and use more instances of it, how to avoid duplications
> of the same "send", coll, etc?
> I read the subpatch tutorial, but the mechanism is not really clear.

I don't know which tutorial you mean, but: subpatches are something
completely different from abstractions, so a subpatch tutorial won't
help you. 

Subpatches are objects -- [pd] or [page] -- while abstractions are
files: Abstractions have to be saved into their own file, then you can
call them by their filename minus the .pd ending in another patch,
also multiple times. When abstraction are used this way in another
file, people often call various occurences of the same abstraction
different "instances" of an abstraction.

In each instance of an abstraction and actually in every seperate
patch file that you have opened, the special variable "$0" gets a
unique value. (Note that "$0" can only be used in object names, not in
message boxes.)

So to avoid duplicate names for s/r, you can use names with "$0" in
your send/receive pairs: 
 [s $0-local]

 [r $0-local]

This in practice is (almost) as local as a direct connection.

You can use the same approach for [table $0-local-array] or [catch~
$0-left].  For last year's versions of Pd (i.e. prior to 0.40) you
have to start your name with $0 for this to work, while current 0.4x
versions of Pd also allow $0 inside a name like [r pd-$0-name].

To get back to subpatches for a moment: $0 is only unique in whole
patch *files* and in abstraction instances. If you use $0 in two
subpatches, that live in the same file, they will have the *same*
value for $0.  You cannot create a sender that is local only in a
subpatch with $0.

I don't know how [coll] deals with $0, I never use that object. 

 Frank Barknecht                 _ ______footils.org_ __goto10.org__

More information about the Pd-list mailing list