[PD] Pd and jack (again)

Orm Finnendahl finnendahl at folkwang-hochschule.de
Wed Jan 29 18:59:36 CET 2003


Hi Mathieu,

Am Dienstag, den 28. Januar 2003 um 14:54:21 Uhr (-0500) schrieb Mathieu Bouchard:
> One major feature missing from PD/jMax is special objectboxes that have
> subpatchers as arguments. This would give PD/jMax more of the flexibility
> that other dataflow environments such as LabView has.
>
>
> jMax already has subpatchers; you double-click on it and a separate window
> opens; however the subpatcher is stored in the same file as the patcher.
> PD could get this feature.

Sorry if I'm missing something, but could it be that you don't know of
the "pd" object, which is the same as the "patcher object" in Max/MSP?
It does everything you mention and is stored in the same file as the
main patch.

> (the advantage of jMax stops here.)
> 
> Then it would be good for abstractions to be embeddable in the same file
> as a main patcher. The difference between a subpatcher and an abstraction
> is that an abstraction may have several instances of itself inside the
> same patcher. The advantage of embedding abstractions is that it makes it
> more convenient (or less inconvenient) to build heavily structured
> patch-systems; you can put what would be 42 different .pd files inside
> only one, no need to give it a directory of its own, no use for zipping it
> to distribute it.

I don't see the difference between what you describe and what an
abstraction is in pd (it is basically one file in the same directory
as the main patch and the main patch stores references to the
abstractions instead of the abstraction code to minimize file size).

> Then it would be good to allow visually-embedded subpatchers. Then allow
> non-text inside objectboxes (so that I can put matrix literals inside
> object boxes in a nice form; see game_of_life.pd to get an idea of how
> ugly matrix-literals may get). Then allow processing-objects inside
> objectboxes; this implies subpatchers (incl. the visually-embedded ones)
> are allowed inside objectboxes.

Did you check the "graph on parent" feature?

> >From there it would be nice to have an object that can vectorize GUI
> objects so that I can get a matrix of checkboxes or a vector of sliders.
> 
> I actually often wish I had some kind of vector-of-sliders in jMax that
> would send out lists of integers. I have a use for that, as I often
> copypaste sliders and align them side-to-side and pack their outputs into
> vectors.

I attach a patch which dynamically allocates a matrix of
checkboxes. Just click on the different lists to get different
row/column settings. The checkboxes send to and receive from distinct
locations (check the properties dialog for values) and the patch
includes the graph on parent feature to be somewhat clearer. You can
do the same with any gui object (or basically any object of pd),
including dynamical allocation of patch chord connections when needed.
And the create-checkboxes subpatcher could be saved as an abstraction
for reusability (e.g. specifying rows and columns as arguments). You
could also add all sorts of bells and whistles like covering titles
and unneeded object boxes with canvases, dynamically color the
checkboxes/sliders etc.

Does that serve your needs or am I completely off topic?

--
Orm
-------------- next part --------------
#N canvas 489 236 498 264 10;
#N canvas 0 0 290 249 checkboxes 0;
#X coords 0 0 1 1 280 250 1;
#X restore 3 4 pd checkboxes;
#N canvas 537 -16 450 513 create-checkboxes 0;
#X obj 183 23 inlet;
#X obj 215 66 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X msg 215 86 \; pd-checkboxes clear;
#X obj 139 86 unpack 0 0;
#X obj 185 46 t a b;
#X obj 188 247 f;
#X obj 259 247 sel;
#X obj 229 247 + 1;
#X msg 188 225 0;
#X obj 187 274 t f f;
#X obj 111 171 f;
#X obj 179 172 sel;
#X obj 111 128 t b f;
#X obj 144 172 + 1;
#X msg 111 149 0;
#X obj 110 198 t f f;
#X obj 196 194 t f b;
#X obj 89 246 pack 0 0;
#X obj 89 271 t a a;
#X obj 57 386 pack 0 0 0;
#X obj 192 363 expr $f1 * 10 + $f2;
#X obj 89 334 expr $f1 * 15 + 30;
#X obj 56 361 expr $f1 * 15 + 30;
#X msg 10 424 \; pd-checkboxes obj \$1 \$2 tgl 15 0 \$3-tgl-out \$3-tgl-in
empty 0 -6 192 8 -262144 -1 -1 0 1;
#X msg 58 305 \$1;
#X msg 89 304 \$2;
#X msg 119 303 \$1;
#X connect 0 0 4 0;
#X connect 1 0 2 0;
#X connect 3 0 12 0;
#X connect 3 1 6 1;
#X connect 4 0 3 0;
#X connect 4 1 1 0;
#X connect 5 0 9 0;
#X connect 6 1 5 0;
#X connect 7 0 6 0;
#X connect 8 0 5 0;
#X connect 9 0 7 0;
#X connect 9 1 17 0;
#X connect 10 0 15 0;
#X connect 11 1 16 0;
#X connect 12 0 14 0;
#X connect 12 1 11 1;
#X connect 13 0 10 0;
#X connect 14 0 10 0;
#X connect 15 0 11 0;
#X connect 15 1 17 1;
#X connect 16 0 13 0;
#X connect 16 1 8 0;
#X connect 17 0 18 0;
#X connect 18 0 24 0;
#X connect 18 1 25 0;
#X connect 18 1 26 0;
#X connect 19 0 23 0;
#X connect 20 0 19 2;
#X connect 21 0 19 1;
#X connect 22 0 19 0;
#X connect 24 0 22 0;
#X connect 25 0 21 0;
#X connect 25 0 20 0;
#X connect 26 0 20 1;
#X restore 294 73 pd create-checkboxes;
#X msg 294 45 4 5;
#X msg 362 45 13 5;
#X msg 325 45 6 14;
#X connect 2 0 1 0;
#X connect 3 0 1 0;
#X connect 4 0 1 0;


More information about the Pd-list mailing list