aboutsummaryrefslogtreecommitdiff
path: root/pd/doc/7.stuff/data-structures
diff options
context:
space:
mode:
Diffstat (limited to 'pd/doc/7.stuff/data-structures')
-rw-r--r--pd/doc/7.stuff/data-structures/1.scalars.pd15
-rw-r--r--pd/doc/7.stuff/data-structures/2.getting.data.pd18
-rw-r--r--pd/doc/7.stuff/data-structures/3.setting.data.pd70
-rw-r--r--pd/doc/7.stuff/data-structures/4.append.pd8
-rw-r--r--pd/doc/7.stuff/data-structures/5.array.pd32
-rw-r--r--pd/doc/7.stuff/data-structures/6.file.pd39
-rw-r--r--pd/doc/7.stuff/data-structures/7.sequencer.pd103
-rw-r--r--pd/doc/7.stuff/data-structures/voice.pd178
8 files changed, 254 insertions, 209 deletions
diff --git a/pd/doc/7.stuff/data-structures/1.scalars.pd b/pd/doc/7.stuff/data-structures/1.scalars.pd
index c2c465bf..ec5794cb 100644
--- a/pd/doc/7.stuff/data-structures/1.scalars.pd
+++ b/pd/doc/7.stuff/data-structures/1.scalars.pd
@@ -1,20 +1,23 @@
+#N struct template1 float x float y float z float q;
#N canvas 363 11 579 461 12;
#N canvas 13 22 297 180 data 1;
+#X scalar template1 50 100 30 9 \;;
+#X scalar template1 150 100 -20 900 \;;
#X restore 60 347 pd data;
#N canvas 10 274 550 324 template1 1;
#X obj 60 46 filledpolygon 244 q 5 0 0 20 z 40 0;
-#X obj 60 21 template float x float y float z float q;
-#X text 3 67 This subpatch acts as a template which describes the data
-structure. The "template" specifies four floating point values named
-x \, y \, z \, and q. The "filledpolygon" is a drawing instruction.
-Templates should have only one template object but may have any number
-of drawing instructions.;
#X text 4 164 The filledpolygon's arguments are interior color \, border
color \, border width \, and then the points of the polygon. Arguments
which are symbols ("q" and "z" in this case) mean to take the values
from the data structure. Other values are constant. The position of
the object is automatically controlled by fields named "x" and "y".
;
+#X obj 60 21 struct template1 float x float y float z float q;
+#X text 3 67 This subpatch acts as a template which describes the data
+structure. The "struct" specifies four floating point values named
+x \, y \, z \, and q. The "filledpolygon" is a drawing instruction.
+Templates should have only one template object but may have any number
+of drawing instructions.;
#X restore 60 371 pd template1;
#N canvas 0 0 440 292 stuff 0;
#X obj 235 185 pointer;
diff --git a/pd/doc/7.stuff/data-structures/2.getting.data.pd b/pd/doc/7.stuff/data-structures/2.getting.data.pd
index bebd7371..123b869f 100644
--- a/pd/doc/7.stuff/data-structures/2.getting.data.pd
+++ b/pd/doc/7.stuff/data-structures/2.getting.data.pd
@@ -1,3 +1,4 @@
+#N struct template2 float x float y float z float q;
#N canvas 363 11 630 603 12;
#X text 311 559 updated for Pd version 0.32.;
#N canvas 42 312 598 266 stuff 0;
@@ -25,18 +26,21 @@
#X msg 27 271 next;
#X text 75 301 <- object that outputs pointers to scalars;
#N canvas 13 22 345 271 data2 1;
+#X scalar template2 53 202 30 9 \;;
+#X scalar template2 203 152 -20 900 \;;
+#X scalar template2 103 152 -50 30 \;;
#X restore 506 265 pd data2;
-#N canvas 15 278 427 138 template2 0;
-#X obj 60 46 filledpolygon 244 q 5 0 0 20 z 40 0;
-#X obj 60 21 template float x float y float z float q;
+#N canvas 15 278 554 155 template2 0;
+#X obj 15 46 filledpolygon 244 q 5 0 0 20 z 40 0;
#X text 13 79 The template for the two scalars \, as in the last patch
;
+#X obj 15 21 struct template2 float x float y float z float q;
#X restore 506 288 pd template2;
#X obj 15 355 get template2 x y z q;
-#X floatatom 15 384 5 0 0;
-#X floatatom 76 384 5 0 0;
-#X floatatom 137 384 5 0 0;
-#X floatatom 199 385 5 0 0;
+#X floatatom 15 384 5 0 0 0 - - -;
+#X floatatom 76 384 5 0 0 0 - - -;
+#X floatatom 137 384 5 0 0 0 - - -;
+#X floatatom 199 385 5 0 0 0 - - -;
#X msg 15 246 traverse pd-data2;
#X obj 59 330 print;
#X text 100 330 <- this gets a bang when we reach the end;
diff --git a/pd/doc/7.stuff/data-structures/3.setting.data.pd b/pd/doc/7.stuff/data-structures/3.setting.data.pd
index d951a0a8..1f300ca3 100644
--- a/pd/doc/7.stuff/data-structures/3.setting.data.pd
+++ b/pd/doc/7.stuff/data-structures/3.setting.data.pd
@@ -1,23 +1,49 @@
-#N canvas 401 39 490 472 12;
-#X floatatom 60 371 0 0 0;
-#X floatatom 60 323 0 0 0;
-#X floatatom 60 275 0 0 0;
-#X floatatom 60 227 0 0 0;
-#X floatatom 324 322 0 0 0;
-#X floatatom 283 322 0 0 0;
-#X floatatom 240 322 0 0 0;
+#N struct template3 float x float y float w float h float q;
+#N canvas 401 39 621 469 12;
+#X floatatom 60 371 0 0 0 0 - - -;
+#X floatatom 60 323 0 0 0 0 - - -;
+#X floatatom 60 275 0 0 0 0 - - -;
+#X floatatom 60 227 0 0 0 0 - - -;
+#X floatatom 324 322 0 0 0 0 - - -;
+#X floatatom 283 322 0 0 0 0 - - -;
+#X floatatom 240 322 0 0 0 0 - - -;
#X obj 197 274 pointer;
#X msg 205 249 next;
-#X floatatom 197 322 0 0 0;
+#X floatatom 197 322 0 0 0 0 - - -;
#N canvas 19 29 363 341 data3 1;
+#X scalar template3 18 25 43 18 741 \;;
+#X scalar template3 111 109 75 25 72 \;;
+#X scalar template3 111 32 4 15 163 \;;
+#X scalar template3 59 1 13 34 563 \;;
+#X scalar template3 148 26 37 20 566 \;;
+#X scalar template3 173 221 76 48 763 \;;
+#X scalar template3 250 127 18 36 543 \;;
+#X scalar template3 124 210 78 21 107 \;;
+#X scalar template3 264 183 32 32 178 \;;
+#X scalar template3 26 28 56 60 132 \;;
+#X scalar template3 2 202 66 2 808 \;;
+#X scalar template3 246 33 74 51 642 \;;
+#X scalar template3 214 226 8 43 180 \;;
+#X scalar template3 57 145 51 58 939 \;;
+#X scalar template3 216 102 36 43 505 \;;
+#X scalar template3 166 86 68 9 614 \;;
+#X scalar template3 144 191 56 28 886 \;;
+#X scalar template3 228 2 62 1 758 \;;
+#X scalar template3 168 169 48 22 644 \;;
+#X scalar template3 223 248 73 50 727 \;;
#X restore 269 425 pd data3;
-#N canvas 100 436 466 223 template3 0;
+#N canvas 100 436 466 223 template3 1;
#X obj 25 68 filledpolygon q 0 1 0 0 w 0 w h 0 h;
#X obj 26 163 drawnumber q 0 0 0;
-#X obj 24 19 template float x float y float w float h float q;
#X text 22 39 five numeric ("float") fields;
-#X text 25 88 drawing a rectangle \, interior color q \, border black and one unit thick \, through the points (0 \, 0) \, (w \, 0) \, (w \, h) \, and (0 \, h). Note that the three points containing variables become hot spots for mouse dragging.;
-#X text 26 184 Draw the value of q as an Araboc numeral \, at (0 \, 0) \, in black.;
+#X text 25 88 drawing a rectangle \, interior color q \, border black
+and one unit thick \, through the points (0 \, 0) \, (w \, 0) \, (w
+\, h) \, and (0 \, h). Note that the three points containing variables
+become hot spots for mouse dragging.;
+#X text 26 184 Draw the value of q as an Araboc numeral \, at (0 \,
+0) \, in black.;
+#X obj 24 19 struct template3 float x float y float w float h float
+q;
#X restore 269 446 pd template3;
#N canvas 313 223 587 367 stuff 0;
#X obj 352 180 pointer;
@@ -73,17 +99,27 @@
#X restore 269 404 pd stuff;
#X msg 269 379 remake;
#X obj 197 298 get template3 x y w h q;
-#X floatatom 356 322 0 0 0;
+#X floatatom 356 322 0 0 0 0 - - -;
#X obj 60 251 set template3 x;
#X obj 60 299 set template3 y;
#X obj 60 347 set template3 w;
#X obj 60 394 set template3 h;
-#X floatatom 60 418 0 0 0;
+#X floatatom 60 418 0 0 0 0 - - -;
#X obj 60 441 set template3 q;
#X msg 197 226 traverse pd-data3;
-#X text 46 5 The "set" object allows you to change numeric values. In this example \, the template specifies five fields describing the (x \, y) location \, width \, height \, and color. A new feature is that the color is also getting printed out under the rectangles. This is done using the "drawnumber" object in the template.;
+#X text 46 5 The "set" object allows you to change numeric values.
+In this example \, the template specifies five fields describing the
+(x \, y) location \, width \, height \, and color. A new feature is
+that the color is also getting printed out under the rectangles. This
+is done using the "drawnumber" object in the template.;
#X text 323 378 <- click to randomize;
-#X text 46 87 Getting parameter values is as inthe previous patch \; however \, as you traverse the list with "next" messages the new pointers are also sent to the five "set" objects. These have as arguments the template name and the name of the field they will set. You can drag on the five number boxes (after selecting an object with "traverse" and "next" messages) to change its location \, shape \, and color.;
+#X text 45 99 Getting parameter values is as in the previous patch
+\; however \, as you traverse the list with "next" messages the new
+pointers are also sent to the five "set" objects. These have as arguments
+the template name and the name of the field they will set. You can
+drag on the five number boxes (after selecting an object with "traverse"
+and "next" messages) to change its location \, shape \, and color.
+;
#X connect 0 0 19 0;
#X connect 1 0 18 0;
#X connect 2 0 17 0;
diff --git a/pd/doc/7.stuff/data-structures/4.append.pd b/pd/doc/7.stuff/data-structures/4.append.pd
index 2c1991d9..b5c2492b 100644
--- a/pd/doc/7.stuff/data-structures/4.append.pd
+++ b/pd/doc/7.stuff/data-structures/4.append.pd
@@ -11,13 +11,13 @@ and to output its value ("bang") to the "append" object. This object
is then given numeric values to create three items.;
#X obj 11 336 append template4 x y z q;
#X msg 421 269 \; pd-data4 clear;
-#N canvas 0 0 318 188 data4 1;
+#N canvas 0 0 315 341 data4 1;
#X restore 430 219 pd data4;
-#N canvas 15 278 427 138 template4 0;
-#X obj 60 46 filledpolygon 244 q 5 0 0 20 z 40 0;
-#X obj 60 21 template float x float y float z float q;
+#N canvas 15 278 519 148 template4 0;
+#X obj 17 44 filledpolygon 244 q 5 0 0 20 z 40 0;
#X text 13 79 The template for the two scalars \, as in the last patch
;
+#X obj 17 19 struct template4 float x float y float z float q;
#X restore 428 243 pd template4;
#X msg 421 309 traverse pd-data4 \, bang;
#X text 57 165 The outlet of "append" is a pointer to the newly created
diff --git a/pd/doc/7.stuff/data-structures/5.array.pd b/pd/doc/7.stuff/data-structures/5.array.pd
index 9c1996a7..234d039d 100644
--- a/pd/doc/7.stuff/data-structures/5.array.pd
+++ b/pd/doc/7.stuff/data-structures/5.array.pd
@@ -1,20 +1,26 @@
+#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;
+#X floatatom 232 183 0 0 0 0 - - -;
#X msg 235 300 bang;
-#X floatatom 15 200 0 0 0;
-#X floatatom 17 350 0 0 0;
-#X floatatom 235 369 0 0 0;
-#X floatatom 451 276 0 0 0;
+#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 50 150 30 9 \; 0 \; 0 \; 0 \; 0 \; 0 \; 3 \; 0
+\; 0 \; 0 \; 7 \; -30 \; 0 \; 0 \; 0 \; 0 \; 0 \; 0 \; 0 \; 0 \; 0
+\; 0 \; 0 \; 0 \; 0 \; 0 \; 0 \; 0 \; 0 \; 0 \; 0 \; 0 \; 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 5 272 431 226 template5 0;
+#N canvas 5 272 646 260 template5 1;
#X obj 8 91 filledpolygon 244 q 3 0 0 20 z 40 0;
-#X obj 6 8 template float x float y float z float q array bazoo template5-element
-;
#X obj 8 113 plot bazoo 700 3 30 10 4;
#X text 6 44 this declares an array named "bazoo" whose elements are
described by "template5-element." Array declarations take three arguments
@@ -24,13 +30,15 @@ while "float" declarations take only two.;
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 restore 508 337 pd template5;
-#N canvas 65 248 442 101 template5-element 0;
-#X obj 35 11 template float y;
+#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;
@@ -45,8 +53,8 @@ can't plot the array..;
#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;
-#X floatatom 14 332 0 0 0;
+#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;
diff --git a/pd/doc/7.stuff/data-structures/6.file.pd b/pd/doc/7.stuff/data-structures/6.file.pd
index 1196d1a1..30c902dc 100644
--- a/pd/doc/7.stuff/data-structures/6.file.pd
+++ b/pd/doc/7.stuff/data-structures/6.file.pd
@@ -1,42 +1,43 @@
#N canvas 405 27 291 318 12;
#N canvas 0 0 377 383 data 1;
#X restore 40 153 pd data;
-#N canvas 50 470 523 157 template-toplevel 0;
-#X obj 120 112 plot bazoo 700 3 10 20 20;
-#X obj 120 48 template float x float y float z float q array bazoo template-element;
-#X obj 120 86 drawpolygon q 4 0 0 20 z z -5 10 20;
+#N canvas 50 470 557 157 template-toplevel 0;
+#X obj 21 94 plot bazoo 700 3 10 20 20;
+#X obj 21 68 drawpolygon q 4 0 0 20 z z -5 10 20;
+#X obj 21 30 struct template-toplevel float x float y float z float
+q array bazoo template-element;
#X restore 40 174 pd template-toplevel;
#N canvas 199 231 600 239 template-element 0;
-#X obj 59 48 template float x float y float w;
-#X obj 80 89 drawpolygon 10 2 5 0 0 -5 -5 0 0 5 5 0;
+#X obj 58 83 drawpolygon 10 2 5 0 0 -5 -5 0 0 5 5 0;
+#X obj 59 48 struct template-element float x float y float w;
#X restore 40 197 pd template-element;
#X msg 45 16 \; pd-data clear;
#N canvas 125 240 709 410 traversal 0;
-#X floatatom 212 353 0 0 0;
+#X floatatom 212 353 0 0 0 0 - - -;
#X obj 212 376 set template-toplevel q;
-#X floatatom 212 307 0 0 0;
-#X floatatom 210 255 0 0 0;
-#X floatatom 96 62 0 0 0;
-#X floatatom 97 114 0 0 0;
-#X floatatom 23 144 0 0 0;
-#X floatatom 210 209 0 0 0;
-#X floatatom 617 194 0 0 0;
-#X floatatom 550 192 0 0 0;
-#X floatatom 486 191 0 0 0;
+#X floatatom 212 307 0 0 0 0 - - -;
+#X floatatom 210 255 0 0 0 0 - - -;
+#X floatatom 96 62 0 0 0 0 - - -;
+#X floatatom 97 114 0 0 0 0 - - -;
+#X floatatom 23 144 0 0 0 0 - - -;
+#X floatatom 210 209 0 0 0 0 - - -;
+#X floatatom 617 194 0 0 0 0 - - -;
+#X floatatom 550 192 0 0 0 0 - - -;
+#X floatatom 486 191 0 0 0 0 - - -;
#X obj 419 116 pointer;
#X obj 419 168 get template-toplevel x y z q;
#X msg 450 90 next;
-#X floatatom 419 191 0 0 0;
+#X floatatom 419 191 0 0 0 0 - - -;
#X obj 23 169 set template-element y;
#X obj 97 137 element template-toplevel bazoo;
#X obj 96 85 setsize template-toplevel bazoo;
#X obj 210 232 set template-toplevel x;
#X obj 210 278 set template-toplevel y;
#X obj 212 330 set template-toplevel z;
-#X floatatom 22 200 0 0 0;
+#X floatatom 22 200 0 0 0 0 - - -;
#X obj 22 225 set template-element x;
#X msg 419 67 traverse pd-data \, next;
-#X floatatom 26 258 0 0 0;
+#X floatatom 26 258 0 0 0 0 - - -;
#X obj 26 283 set template-element w;
#X connect 0 0 1 0;
#X connect 2 0 20 0;
diff --git a/pd/doc/7.stuff/data-structures/7.sequencer.pd b/pd/doc/7.stuff/data-structures/7.sequencer.pd
index 6b815191..f270b48e 100644
--- a/pd/doc/7.stuff/data-structures/7.sequencer.pd
+++ b/pd/doc/7.stuff/data-structures/7.sequencer.pd
@@ -6,9 +6,9 @@ template-pitch array amp template-amp;
#N canvas 565 104 524 166 template-toplevel 0;
#X obj 25 86 plot pitch voiceno 3 10 0;
#X obj 25 113 plot amp 0 3 10 0;
-#X obj 27 60 filledpolygon 9 9 0 0 -10 0 10 5 10 5 -10;
#X obj 25 21 struct template-toplevel float x float y float voiceno
array pitch template-pitch array amp template-amp;
+#X obj 27 61 filledpolygon 9 9 0 0 -2 0 2 5 2 5 -2;
#X restore 64 197 pd template-toplevel;
#N canvas 0 0 419 102 template-amp 0;
#X obj 15 41 struct template-amp float x float y float w;
@@ -16,7 +16,7 @@ array pitch template-pitch array amp template-amp;
#N canvas 42 221 452 87 template-pitch 0;
#X obj 21 29 struct template-pitch float x float y float w;
#X restore 66 242 pd template-pitch;
-#N canvas 282 38 522 569 synthesis 0;
+#N canvas 323 50 551 562 synthesis 0;
#X msg 125 220 next;
#X msg 108 172 traverse pd-data \, next;
#X obj 108 250 pointer template-toplevel;
@@ -32,14 +32,8 @@ array pitch template-pitch array amp template-amp;
#X obj 108 354 route 0 9 90 900 99 909 990;
#X obj 55 372 voice;
#X obj 55 536 outlet~;
-#X obj 55 395 voice;
-#X obj 55 418 voice;
-#X obj 55 441 voice;
#X msg 298 58 \; reset-stop stop \; time-of-last-evt 0 \; pd-data sort
;
-#X obj 55 465 voice;
-#X obj 55 488 voice;
-#X obj 55 511 voice;
#X obj 372 351 s delay-multiplier;
#X obj 375 276 t b f;
#X msg 372 303 1000;
@@ -47,6 +41,12 @@ array pitch template-pitch array amp template-amp;
#X obj 375 250 r tempo;
#X obj 108 90 t b b b;
#X msg 130 136 \; pd-data sort;
+#X obj 55 395 voice;
+#X obj 55 418 voice;
+#X obj 55 441 voice;
+#X obj 55 465 voice;
+#X obj 55 488 voice;
+#X obj 55 511 voice;
#X connect 0 0 2 0;
#X connect 1 0 2 0;
#X connect 2 0 3 0;
@@ -55,35 +55,35 @@ array pitch template-pitch array amp template-amp;
#X connect 4 0 5 0;
#X connect 5 0 12 0;
#X connect 6 0 7 0;
-#X connect 7 0 27 0;
+#X connect 7 0 21 0;
#X connect 7 1 8 0;
-#X connect 9 0 18 0;
+#X connect 9 0 15 0;
#X connect 11 0 0 0;
#X connect 12 0 13 1;
-#X connect 12 1 15 1;
-#X connect 12 2 16 1;
-#X connect 12 3 17 1;
-#X connect 12 4 19 1;
-#X connect 12 5 20 1;
-#X connect 12 6 21 1;
-#X connect 13 0 15 0;
-#X connect 15 0 16 0;
-#X connect 16 0 17 0;
-#X connect 17 0 19 0;
-#X connect 19 0 20 0;
-#X connect 20 0 21 0;
-#X connect 21 0 14 0;
+#X connect 12 1 23 1;
+#X connect 12 2 24 1;
+#X connect 12 3 25 1;
+#X connect 12 4 26 1;
+#X connect 12 5 27 1;
+#X connect 12 6 28 1;
+#X connect 13 0 23 0;
+#X connect 17 0 18 0;
+#X connect 17 1 19 1;
+#X connect 18 0 19 0;
+#X connect 19 0 16 0;
+#X connect 20 0 17 0;
+#X connect 21 0 1 0;
+#X connect 21 1 22 0;
+#X connect 21 2 10 0;
#X connect 23 0 24 0;
-#X connect 23 1 25 1;
#X connect 24 0 25 0;
-#X connect 25 0 22 0;
-#X connect 26 0 23 0;
-#X connect 27 0 1 0;
-#X connect 27 1 28 0;
-#X connect 27 2 10 0;
+#X connect 25 0 26 0;
+#X connect 26 0 27 0;
+#X connect 27 0 28 0;
+#X connect 28 0 14 0;
#X restore 64 323 pd synthesis;
-#X floatatom 278 276 0 0 0;
-#X floatatom 92 358 0 0 0;
+#X floatatom 278 276 0 0 0 0 - - -;
+#X floatatom 92 358 0 0 0 0 - - -;
#N canvas 159 26 495 270 output 0;
#X obj 345 163 t b;
#X obj 345 112 f;
@@ -138,25 +138,26 @@ array pitch template-pitch array amp template-amp;
#X restore 64 380 pd output;
#X msg 122 358 MUTE;
#X msg 64 296 start;
-#X msg 111 296 stop;
-#N canvas 22 39 392 386 data 0;
-#X scalar template-toplevel 2 246 900 \; 0 0 50 \; 10 0 50 \; \; 0
-0 0 \; 10 0 10 \; 11 0 0 \; \;;
-#X scalar template-toplevel 13 220 990 \; 0 0 50 \; 10 0 50 \; \; 0
-0 10 \; 10 0 10 \; 11 0 0 \; \;;
-#X scalar template-toplevel 34 73 90 \; 0 250 50 \; 100 50 0 \; 100
-50 50 \; 230 200 0 \; 230 50 10 \; 240 300 1 \; 240 100 50 \; 250 250
-1 \; 250 150 50 \; 260 250 1 \; 285 250 1 \; \; 0 0 2 \; 100 0 5 \;
-200 0 6 \; 225 0 2 \; 230 0 5 \; 260 0 10 \; 261 0 5 \; 265 0 0 \;
-266 0 6 \; 270 0 0 \; 271 0 8 \; 275 0 0 \; 276 0 10 \; 280 0 0 \;
-281 0 12 \; 285 0 0 \; \;;
-#X scalar template-toplevel 67 282 900 \; 0 20 1 \; 60 20 1 \; \; 0
-0 0 \; 30 0 14 \; 60 0 0 \; \;;
-#X scalar template-toplevel 141 322 900 \; 0 0 50 \; 70 -70 50 \; \;
-0 0 0 \; 10 0 10 \; 20 0 0 \; 30 0 0 \; 40 0 10 \; 50 0 0 \; 60 0 10
-\; 70 0 0 \; \;;
-#X scalar template-toplevel 326 192 909 \; 0 0 50 \; 50 0 50 \; \;
-0 0 15 \; 10 0 10 \; 50 0 0 \; \;;
+#X msg 115 296 stop;
+#N canvas 22 39 471 498 data 1;
+#X scalar template-toplevel 3 86 900 \; 0 0 12 \; 10 0 12 \; \; 0 0
+0 \; 10 0 2.5 \; 11 0 0 \; \;;
+#X scalar template-toplevel 14 80 990 \; 0 0 12 \; 10 0 12 \; \; 0
+0 2.5 \; 10 0 2.5 \; 11 0 0 \; \;;
+#X scalar template-toplevel 38 43.25 90 \; 0 65 12 \; 100 10 0 \; 100
+10 12 \; 230 50 0 \; 230 10 3 \; 240 60 0 \; 240 25 10 \; 250 60 0
+\; 250 37 10 \; 260 65 0.5 \; 285 65 0.5 \; \; 1 0 2 \; 103 0 1 \;
+195 0 2 \; 220 0 0.75 \; 225 0 1.25 \; 248 0 2.5 \; 251 0 2.25 \; 255
+0 0 \; 256 0 1.5 \; 260 0 0 \; 261 0 2 \; 265 0 0 \; 266 0 2.5 \; 270
+0 0 \; 271 0 3 \; 275 0 0 \; \;;
+#X scalar template-toplevel 64 80 900 \; 0 5 0.25 \; 60 5 0.25 \; \;
+0 0 0 \; 28 -0.25 3.5 \; 58 -0.25 0 \; \;;
+#X scalar template-toplevel 142 105 900 \; 0 0 12 \; 70 -20 12 \; \;
+0 0 0 \; 10 0 2.5 \; 20 0 0 \; 30 0 0 \; 40 0 2.5 \; 50 0 0 \; 60 0
+2.5 \; 70 0 0 \; \;;
+#X scalar template-toplevel 319 63.5 909 \; 0 0 12 \; 50 0 12 \; \;
+0 0 4 \; 10 0 2.5 \; 50 0 0 \; \;;
+#X coords 0 124.5 1 124.25 0 0 0;
#X restore 64 176 pd data;
#N canvas 82 467 332 145 stuff 0;
#X msg 1 101 \; pd-data write xx.txt;
@@ -180,7 +181,7 @@ over the life of the event.;
can set the tempo lower if that helps you follow the "score" the first
couple of times.;
#X text 311 276 <--- tempo;
-#X text 256 416 Updated for Pd version 0.32;
+#X text 256 416 Updated for Pd version 0.36;
#X connect 3 0 6 0;
#X connect 4 0 14 0;
#X connect 5 0 6 1;
diff --git a/pd/doc/7.stuff/data-structures/voice.pd b/pd/doc/7.stuff/data-structures/voice.pd
index 2d124db7..20f2856d 100644
--- a/pd/doc/7.stuff/data-structures/voice.pd
+++ b/pd/doc/7.stuff/data-structures/voice.pd
@@ -2,7 +2,6 @@
#X obj 180 96 inlet;
#X obj 169 288 pack;
#X obj 169 395 line~;
-#X obj 169 238 sqrt;
#X obj 169 262 sqrt;
#X obj 169 480 *~;
#X obj 169 419 *~;
@@ -10,118 +9,111 @@
#X obj 92 478 inlet~;
#X obj 92 526 outlet~;
#X obj 92 502 +~;
-#X obj 436 411 line~;
-#X obj 436 435 *~;
-#X obj 436 459 *~;
-#X obj 436 283 mtof;
-#X obj 394 187 +;
-#X obj 436 307 sqrt;
-#X obj 436 331 sqrt;
-#X obj 436 387 pack;
-#X obj 169 214 / 6;
+#X obj 434 411 line~;
+#X obj 434 435 *~;
+#X obj 434 459 *~;
+#X obj 434 283 mtof;
+#X obj 405 187 +;
+#X obj 434 307 sqrt;
+#X obj 434 331 sqrt;
+#X obj 434 387 pack;
#X obj 189 343 r reset;
#X msg 189 367 0 20;
#X obj 180 120 data-start template-toplevel;
#X obj 6 150 data-array template-toplevel amp template-amp;
#X obj 433 148 data-array template-toplevel pitch template-pitch;
#X obj 308 437 noise~;
-#X obj 477 259 +;
-#X obj 477 282 mtof;
-#X obj 477 306 sqrt;
-#X obj 477 330 sqrt;
-#X obj 477 411 line~;
-#X obj 477 435 *~;
-#X obj 477 459 *~;
-#X obj 477 387 pack;
-#X obj 394 411 line~;
-#X obj 394 435 *~;
-#X obj 394 459 *~;
-#X obj 394 387 pack;
-#X obj 394 284 mtof;
-#X obj 394 308 sqrt;
-#X obj 394 332 sqrt;
-#X obj 394 262 -;
+#X obj 485 259 +;
+#X obj 485 282 mtof;
+#X obj 485 306 sqrt;
+#X obj 485 330 sqrt;
+#X obj 485 411 line~;
+#X obj 485 435 *~;
+#X obj 485 459 *~;
+#X obj 485 387 pack;
+#X obj 384 411 line~;
+#X obj 384 435 *~;
+#X obj 384 459 *~;
+#X obj 384 387 pack;
+#X obj 384 284 mtof;
+#X obj 384 308 sqrt;
+#X obj 384 332 sqrt;
+#X obj 384 262 -;
#X obj 240 520 vcf~ 10;
#X obj 315 520 vcf~ 10;
#X obj 390 516 vcf~ 10;
#X text 13 7 This is an abstraction used in the sequencer example.
Here we take care of the audio synthesis \, according to timed controls
from the the "data-start" and "data-array" subpatches.;
-#X text 505 458 calculate time-varying center frequencies;
+#X text 521 459 calculate time-varying center frequencies;
#X text 470 512 ... for three VCFs acting on a noise source.;
-#X text 92 394 Amplitude;
-#X text 93 410 envelope;
-#X text 117 508 summing bus;
+#X text 85 394 Amplitude;
+#X text 86 410 envelope;
+#X text 94 549 summing bus;
#X text 346 62 Pitch is in eighth-tones (because 4 pixels per half
tone looks reasonable on the screen.) Hence the * 0.25 objects below.
;
-#X obj 394 209 * 0.25;
-#X obj 493 233 * 0.25;
-#X obj 394 230 + 24;
-#X connect 0 0 22 0;
+#X obj 169 235 / 2;
+#X connect 0 0 20 0;
#X connect 1 0 2 0;
-#X connect 2 0 6 0;
-#X connect 2 0 6 1;
-#X connect 3 0 4 0;
-#X connect 4 0 1 0;
-#X connect 5 0 10 1;
-#X connect 6 0 7 0;
-#X connect 6 0 7 1;
-#X connect 7 0 5 0;
-#X connect 8 0 10 0;
-#X connect 10 0 9 0;
+#X connect 2 0 5 0;
+#X connect 2 0 5 1;
+#X connect 3 0 1 0;
+#X connect 4 0 9 1;
+#X connect 5 0 6 0;
+#X connect 5 0 6 1;
+#X connect 6 0 4 0;
+#X connect 7 0 9 0;
+#X connect 9 0 8 0;
+#X connect 10 0 11 0;
+#X connect 10 0 11 1;
#X connect 11 0 12 0;
#X connect 11 0 12 1;
-#X connect 12 0 13 0;
-#X connect 12 0 13 1;
-#X connect 13 0 43 1;
-#X connect 14 0 16 0;
-#X connect 15 0 52 0;
+#X connect 12 0 41 1;
+#X connect 13 0 15 0;
+#X connect 14 0 39 0;
+#X connect 14 0 13 0;
+#X connect 14 0 24 0;
+#X connect 15 0 16 0;
#X connect 16 0 17 0;
-#X connect 17 0 18 0;
-#X connect 18 0 11 0;
-#X connect 19 0 3 0;
+#X connect 17 0 10 0;
+#X connect 18 0 19 0;
+#X connect 19 0 2 0;
#X connect 20 0 21 0;
-#X connect 21 0 2 0;
-#X connect 22 0 23 0;
-#X connect 22 0 24 0;
-#X connect 22 1 15 1;
-#X connect 23 1 19 0;
-#X connect 23 2 1 1;
-#X connect 24 0 15 0;
-#X connect 24 1 53 0;
-#X connect 24 2 18 1;
-#X connect 24 2 37 1;
-#X connect 24 2 33 1;
-#X connect 25 0 42 0;
-#X connect 25 0 43 0;
-#X connect 25 0 44 0;
+#X connect 20 0 22 0;
+#X connect 20 1 14 1;
+#X connect 21 1 50 0;
+#X connect 21 2 1 1;
+#X connect 22 0 14 0;
+#X connect 22 1 39 1;
+#X connect 22 1 24 1;
+#X connect 22 2 17 1;
+#X connect 22 2 35 1;
+#X connect 22 2 31 1;
+#X connect 23 0 40 0;
+#X connect 23 0 41 0;
+#X connect 23 0 42 0;
+#X connect 24 0 25 0;
+#X connect 25 0 26 0;
#X connect 26 0 27 0;
-#X connect 27 0 28 0;
+#X connect 27 0 31 0;
#X connect 28 0 29 0;
-#X connect 29 0 33 0;
-#X connect 30 0 31 0;
-#X connect 30 0 31 1;
-#X connect 31 0 32 0;
-#X connect 31 0 32 1;
-#X connect 32 0 44 1;
-#X connect 33 0 30 0;
-#X connect 34 0 35 0;
-#X connect 34 0 35 1;
-#X connect 35 0 36 0;
-#X connect 35 0 36 1;
-#X connect 36 0 42 1;
-#X connect 37 0 34 0;
-#X connect 38 0 39 0;
-#X connect 39 0 40 0;
-#X connect 40 0 37 0;
-#X connect 41 0 38 0;
-#X connect 42 0 5 1;
-#X connect 43 0 5 1;
-#X connect 44 0 5 1;
-#X connect 52 0 54 0;
-#X connect 53 0 26 1;
-#X connect 53 0 41 1;
-#X connect 54 0 41 0;
-#X connect 54 0 26 0;
-#X connect 54 0 14 0;
+#X connect 28 0 29 1;
+#X connect 29 0 30 0;
+#X connect 29 0 30 1;
+#X connect 30 0 42 1;
+#X connect 31 0 28 0;
+#X connect 32 0 33 0;
+#X connect 32 0 33 1;
+#X connect 33 0 34 0;
+#X connect 33 0 34 1;
+#X connect 34 0 40 1;
+#X connect 35 0 32 0;
+#X connect 36 0 37 0;
+#X connect 37 0 38 0;
+#X connect 38 0 35 0;
+#X connect 39 0 36 0;
+#X connect 40 0 4 1;
+#X connect 41 0 4 1;
+#X connect 42 0 4 1;
+#X connect 50 0 3 0;