05.array.pd 4.19 KB
Newer Older
Miller Puckette's avatar
Miller Puckette committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120
#N struct template5 float x float y float z float q array bazoo template5-element
;
#N struct template5-element float y;
#N canvas 67 294 709 456 12;
#X obj 235 323 pointer;
#X floatatom 232 183 0 0 0 0 - - -;
#X msg 235 300 bang;
#X floatatom 15 200 0 0 0 0 - - -;
#X floatatom 17 350 0 0 0 0 - - -;
#X floatatom 235 369 0 0 0 0 - - -;
#X floatatom 451 276 0 0 0 0 - - -;
#X obj 451 229 pointer;
#X obj 318 163 pointer;
#X msg 449 194 bang;
#N canvas 0 0 384 196 data5 1;
#X scalar template5 60 109 30 9 \; 0 \; 0 \; 0 \; 0 \; 0 \; 3 \; 0
\; 0 \; 0 \; 7 \; -60 \; -66 \; -68 \; -70 \; -88 \; -100 \; -100 \;
14 \; 12 \; 8 \; 6 \; 2 \; -4 \; -26 \; -34 \; -58 \; -60 \; -66 \;
-66 \; -66 \; -66 \; 0 \; 0 \; 0 \; 0 \; 0 \; 0 \; 0 \; 0 \; 0 \; 0
\; 0 \; 0 \; 0 \; 0 \; 43 \; 0 \; 0 \; 0 \; 0 \; \;;
#X restore 508 314 pd data5;
#N canvas 470 534 646 260 template5 1;
#X obj 8 91 filledpolygon 244 q 3 0 0 20 z 40 0;
#X text 6 44 this declares an array named "bazoo" whose elements are
described by "template5-element." Array declarations take three arguments
while "float" declarations take only two.;
#X text 6 136 Here we ask to plot the array \, color 700 \, line width
3 \, starting location (30 \, 10) relative to the scalar \, points
spaced 4 apart.;
#X text 7 186 You can also do (x \, y) plots and/or make the line thickness
variable---see the help window for "plot".;
#X obj 6 8 struct template5 float x float y float z float q array bazoo
template5-element;
#X obj 8 113 plot bazoo 700 3 30 40 4;
#X restore 508 337 pd template5;
#N canvas 65 248 568 128 template5-element 0;
#X text 12 36 This says that array elements will have a single floating-point
number named "y". The variable name "y" is automatically assumed to
control screen height \; if you don't have at least that variable you
can't plot the array..;
#X obj 35 11 struct template5-element float y;
#X restore 508 360 pd template5-element;
#N canvas 515 84 589 429 stuff 0;
#X obj 354 163 pointer;
#X obj 136 102 t b b b;
#X msg 136 61 bang;
#X text 170 61 click here to re-initialize;
#X obj 134 163 append template5 x y z q;
#X msg 354 100 \; pd-data5 clear;
#X msg 354 140 traverse pd-data5 \, bang;
#X msg 283 280 50;
#X obj 284 307 setsize template5 bazoo;
#X obj 137 23 loadbang;
#X msg 134 140 50 150 30 9;
#X obj 134 191 t b b p;
#X floatatom 68 327 0 0 0 0 - - -;
#X floatatom 14 332 0 0 0 0 - - -;
#X obj 14 376 set template5-element y;
#X obj 68 350 element template5 bazoo;
#X obj 20 303 unpack;
#X msg 12 258 3 5 \, 7 9 \, -30 10 \, 43 45;
#X connect 0 0 4 4;
#X connect 1 0 10 0;
#X connect 1 1 6 0;
#X connect 1 2 5 0;
#X connect 2 0 1 0;
#X connect 4 0 11 0;
#X connect 6 0 0 0;
#X connect 7 0 8 0;
#X connect 9 0 2 0;
#X connect 10 0 4 0;
#X connect 11 0 17 0;
#X connect 11 1 7 0;
#X connect 11 2 8 1;
#X connect 11 2 15 1;
#X connect 12 0 15 0;
#X connect 13 0 14 0;
#X connect 15 0 14 1;
#X connect 16 0 13 0;
#X connect 16 1 12 0;
#X connect 17 0 16 0;
#X restore 508 383 pd stuff;
#X msg 318 140 traverse pd-data5 \, next;
#X obj 451 252 getsize template5 bazoo;
#X obj 232 229 setsize template5 bazoo;
#X obj 17 373 set template5-element y;
#X obj 235 346 get template5-element y;
#X obj 15 223 element template5 bazoo;
#X text 38 15 Scalars may contain arrays \, and moreover the elements
of an array can be of any scalar type (and can have sub-arrays recursively.)
The type of the element of an array is fixed in the template. In this
case \, "template5" contains the definition of the top-level scalar
and "template5-element" is the template of each array element (see
the template subpatch.);
#X text 328 121 click to get pointer;
#X text 449 173 get size;
#X text 221 158 set size;
#X text 16 133 select an individual;
#X text 16 153 element \, which is a;
#X text 14 169 scalar with template;
#X text 104 189 template5;
#X text 12 413 work as before \, but on;
#X text 12 433 array elements...;
#X text 433 424 Updated for Pd version 0.35;
#X text 17 395 normal "set" amd "get";
#X connect 0 0 18 0;
#X connect 1 0 16 0;
#X connect 2 0 0 0;
#X connect 3 0 19 0;
#X connect 4 0 17 0;
#X connect 7 0 15 0;
#X connect 8 0 16 1;
#X connect 8 0 19 1;
#X connect 8 0 7 0;
#X connect 9 0 7 0;
#X connect 14 0 8 0;
#X connect 15 0 6 0;
#X connect 18 0 5 0;
#X connect 19 0 0 0;
#X connect 19 0 17 1;