[PD-dev] abstractions

Mathieu Bouchard matju at artengine.ca
Tue Jul 8 00:29:15 CEST 2008


On Mon, 7 Jul 2008, mescalinum at gmail.com wrote:

> btw such "range" is very feasible with only pd language and dynamic patching.

It can't be used in practice. Try putting it in a patch, save the patch, 
reload the patch. All connections from the outlets of this [range] will 
fail. This is because it uses [loadbang] instead of [initbang], and 
because [initbang] does not exist. This proves one of my points.

Then this patch can't be edited with plain pd because this changes the 
object numbering, which is not written anywhere in a patch, and changing 
the object numbering breaks the dynamic patching. This is the sort of 
problem that was solved with the introduction of assembly language as a 
replacement to machine language... and frankly I'd rather program in C 
than in either of those. This proves another one of my points. But on top 
of that, you can't edit that abstraction and resave it while pd is not 
running in -noloadbang mode.

Thanks for providing the example that illustrates the two main problems 
that I see with what is about the best that one can do with normal pd 
(even with externals).

The third issue is that your version lacks the dynamic inlets, but that's 
a detail, and I know you can do it, and it's not worth fixing it until 
your abstraction can be used in practice.

The workaround for the lack of [initbang] is to set an arbitrary limit on 
number of dynamic inlets/outlets, have them created in advance, and delete 
the extraneous inlets/outlets at [loadbang] time so that the object looks 
nice. Sort of underwhelming, but it would work for most purposes.

  _ _ __ ___ _____ ________ _____________ _____________________ ...
| Mathieu Bouchard - tél:+1.514.383.3801, Montréal, Québec


More information about the Pd-dev mailing list