[PD] Pd-Dom for abstraction chaining

Enrique Erne enrique at netpd.org
Fri Mar 12 17:10:53 CET 2010


> GridFlow 0.9.7 has [#many], which is an abstraction that makes a GOP
> with many IEMGUI together. It doesn't support abstractions yet, which
> requires some extra hacks that I'm adding soon. But I'm using several
> externals for doing all that, because doing it without externals is too
> limited to my taste.


This sounds very promising. I can imagine that without externals it is 
way to limited. Especially deleting/changing existing stuff.

The focus of Pd-Dom is very different though, it does dynamically 
"chain" abstractions that send and receive audio. It handles also 
loadbang to the freshly created instances. This should all be error free 
and within 0 latency (using subpatches).

Pd-Dom itself has actually nothing to do with GUI.

An example usage could be dynamically chaining of:
[tone-generator] -> [filter] -> [envelope] -> [effect]
or an FM orgy.

All you need at the moment is an [pdom.r~] and [pdom.s~] inside your 
abstraction (this abs name subject to change). Each abstraction instance 
gets a $1 parameter and can be loaded (multiple times) in parallel. So 
you could do:

[mega-synth] -> [delay] -> [mega-synth] -> [delay] -> [delay]

Whether the abstraction adds to the incoming signal or modifies it, has 
to be decided by the abstraction author. IMO a compressor/limiter should 
change the incoming signal (*~), whereas a synth should only add signal 
(+~).

Pd-Dom can also mixin abstractions that don't do dsp, and wont waste any 
cpu on additional send and receives. just use pd-dom.r (without the ~)

One of the examples does dynamically create a GUI for testing purpose, 
but I think the examples should not have any dependencies on externals.
Naturally if one would write an example using gridflow, I would like to 
add it. Just fork it on git and send me a pull request! :)

At the moment Pd-Dom has 3 methods (messages) "add", "delete" and "set", 
that allow you to add an abstraction to the sound-chain or delete/set an 
existing one. There is some additional methods like vis that lets you 
open a specific instance of one instantiated abstraction.

Pd-Dom for now is build with unofficial dyn-patching methods and works 
with Pd-Vanilla. In the future I'd like to build it, additionally, on 
top of dyn~. This with exactly same API so it works on both or fallback 
to pd-vanilla.

eni





More information about the Pd-list mailing list