aboutsummaryrefslogtreecommitdiff
path: root/pd/doc
diff options
context:
space:
mode:
Diffstat (limited to 'pd/doc')
-rw-r--r--pd/doc/1.manual/x2.htm2
-rw-r--r--pd/doc/3.audio.examples/I07.phase.vocoder.pd56
-rw-r--r--pd/doc/4.data.structures/14.sinedecomposer.pd250
-rw-r--r--pd/doc/4.data.structures/15.partialtracer.pd839
-rw-r--r--pd/doc/5.reference/help-intro.pd3
-rw-r--r--pd/doc/5.reference/my_canvas-help.pd75
6 files changed, 84 insertions, 1141 deletions
diff --git a/pd/doc/1.manual/x2.htm b/pd/doc/1.manual/x2.htm
index dd33b149..9879078e 100644
--- a/pd/doc/1.manual/x2.htm
+++ b/pd/doc/1.manual/x2.htm
@@ -25,7 +25,7 @@ are described in the next chapter. To learn digital audio processing basics
such as how to generate time-varying sounds that don't click or fold over, try
the on-line book,
<A HREF="http://www.crca.ucsd.edu/~msp/techniques.htm"
-<I> Theory and Techniques of Electronic Music </I>.
+<I> Theory and Techniques of Electronic Music </I></A>.
<H3> <A name=s1> 2.1 overview </A> </H3>
diff --git a/pd/doc/3.audio.examples/I07.phase.vocoder.pd b/pd/doc/3.audio.examples/I07.phase.vocoder.pd
index d0d913b3..5baceef6 100644
--- a/pd/doc/3.audio.examples/I07.phase.vocoder.pd
+++ b/pd/doc/3.audio.examples/I07.phase.vocoder.pd
@@ -1,8 +1,8 @@
-#N canvas 425 33 744 599 12;
+#N canvas 164 25 744 599 12;
#X floatatom 494 315 5 0 0 0 - transpo-set -;
#X floatatom 167 383 3 0 0 0 - speed-set -;
#X floatatom 55 385 7 0 0 0 - location-set -;
-#N canvas 90 42 821 693 fft-analysis 0;
+#N canvas 90 42 821 693 fft-analysis 1;
#X obj 51 477 *~;
#X obj 18 477 *~;
#X obj 18 499 -~;
@@ -37,9 +37,9 @@
bang;
#X msg 426 619 set \$1 4;
#X obj 97 425 q8_rsqrt~;
-#N canvas 139 105 1006 799 read-windows 0;
+#N canvas 139 105 1006 799 read-windows 1;
#X obj 18 693 *~;
-#X obj 340 448 r window-size;
+#X obj 364 448 r window-size;
#X obj 156 300 f;
#X obj 102 91 r window-size;
#X obj 102 139 /;
@@ -60,14 +60,14 @@ bang;
#X text 188 394 reading location (samples);
#X obj 51 597 / 4;
#X obj 288 245 * 0.01;
-#X floatatom 340 498 7 0 0 0 - - -;
-#X obj 340 474 *;
-#X obj 499 365 r transpo;
-#X obj 499 387 * 0.01;
-#X obj 501 408 + 69;
-#X obj 502 429 mtof;
-#X obj 502 451 / 440;
-#X obj 375 474 t b f;
+#X floatatom 364 498 7 0 0 0 - - -;
+#X obj 364 474 *;
+#X obj 502 347 r transpo;
+#X obj 502 369 * 0.01;
+#X obj 504 390 + 69;
+#X obj 505 411 mtof;
+#X obj 505 433 / 440;
+#X obj 399 474 t b f;
#X obj 19 719 outlet~;
#X obj 195 720 outlet~;
#X obj 218 664 tabreceive~ \$0-hann;
@@ -77,7 +77,7 @@ bang;
#X obj 768 508 r speed;
#X msg 768 532 set \$1;
#X obj 768 557 s speed-set;
-#X text 411 498 stretched window size (samples);
+#X text 432 498 stretched window size (samples);
#X obj 877 507 r transpo;
#X msg 877 533 set \$1;
#X obj 877 558 s transpo-set;
@@ -123,8 +123,8 @@ by "location". If "speed" is nonzero \, "location" automatically precesses.
#X obj 845 684 r auto;
#X obj 730 685 r no-detune;
#X msg 730 707 \; detune 0;
-#X text 326 275 loop to precess the location according;
-#X text 325 291 to the "speed" parameter.;
+#X text 321 280 loop to precess the location according;
+#X text 320 296 to the "speed" parameter.;
#X text 611 31 if location changes \, update number box;
#X text 610 50 in main window via "location-set" \, but;
#X text 613 69 taking care to limit frequency of updates.;
@@ -136,6 +136,14 @@ by "location". If "speed" is nonzero \, "location" automatically precesses.
#X text 496 527 "rewind" control takes us;
#X text 499 545 to a location depending on;
#X text 499 564 stretched window size.;
+#X obj 593 457 t b f;
+#X obj 617 395 samplerate~;
+#X obj 593 348 r \$0-insamprate;
+#X obj 593 418 /;
+#X obj 505 455 * 1;
+#X text 494 312 desired transposition and sample;
+#X text 494 329 rate correction for soundfile;
+#X obj 593 370 t f b;
#X connect 0 0 30 0;
#X connect 1 0 23 0;
#X connect 2 0 11 0;
@@ -171,7 +179,7 @@ by "location". If "speed" is nonzero \, "location" automatically precesses.
#X connect 25 0 26 0;
#X connect 26 0 27 0;
#X connect 27 0 28 0;
-#X connect 28 0 29 0;
+#X connect 28 0 99 0;
#X connect 29 0 23 0;
#X connect 29 1 23 1;
#X connect 32 0 5 1;
@@ -216,6 +224,14 @@ by "location". If "speed" is nonzero \, "location" automatically precesses.
#X connect 77 0 75 0;
#X connect 79 0 78 0;
#X connect 80 0 81 0;
+#X connect 95 0 99 0;
+#X connect 95 1 99 1;
+#X connect 96 0 98 1;
+#X connect 97 0 102 0;
+#X connect 98 0 95 0;
+#X connect 99 0 29 0;
+#X connect 102 0 98 0;
+#X connect 102 1 96 0;
#X restore 109 133 pd read-windows;
#X obj 137 543 tabsend~ prev-imag;
#X obj 136 567 tabsend~ prev-real;
@@ -363,8 +379,8 @@ shifts the signal to the left or right depending on its argument.)
#X obj 56 517 output~;
#N canvas 0 110 565 454 hann-window 0;
#N canvas 0 0 450 300 (subpatch) 0;
-#X array \$0-hann 2048 float 0;
-#X coords 0 1 2047 0 300 100 1;
+#X array \$0-hann 1024 float 0;
+#X coords 0 1 1023 0 300 100 1;
#X restore 82 311 graph;
#X obj 378 165 osc~;
#X obj 378 190 *~ -0.5;
@@ -413,8 +429,8 @@ and window-msec (analysis window size in seconds and msec).;
#X restore 440 528 pd hann-window;
#N canvas 388 86 694 447 insample 0;
#N canvas 0 0 450 300 (subpatch) 0;
-#X array \$0-sample 62079 float 0;
-#X coords 0 1 62078 -1 400 150 1;
+#X array \$0-sample 155948 float 0;
+#X coords 0 1 155947 -1 400 150 1;
#X restore 281 135 graph;
#X obj 28 133 r read-sample;
#X obj 28 184 unpack s f;
diff --git a/pd/doc/4.data.structures/14.sinedecomposer.pd b/pd/doc/4.data.structures/14.sinedecomposer.pd
deleted file mode 100644
index 1d240ce7..00000000
--- a/pd/doc/4.data.structures/14.sinedecomposer.pd
+++ /dev/null
@@ -1,250 +0,0 @@
-#N struct peak-template float x float y float amp float ampreal float
-ampimag;
-#N canvas 303 216 854 536 12;
-#X msg 501 258 bang;
-#X obj 30 360 pack 0 100;
-#X obj 30 384 line~;
-#X obj 30 336 dbtorms;
-#N canvas 95 102 724 400 fft 0;
-#X obj 64 67 inlet~;
-#X obj 134 107 print~;
-#X msg 137 71 bang;
-#X obj 64 104 rfft~;
-#N canvas 0 0 450 300 graph3 0;
-#X array array3 4096 float 0;
-#X coords 0 100 4096 -100 400 150 1;
-#X restore 254 14 graph;
-#N canvas 0 0 450 300 graph4 0;
-#X array array4 4096 float 0;
-#X coords 0 100 4096 -100 400 150 1;
-#X restore 256 165 graph;
-#X obj 9 185 tabsend~ array3;
-#X obj 50 158 tabsend~ array4;
-#X msg 37 246 \; array3 resize 4096 \; array4 resize 4096;
-#X obj 62 38 block~ 4096 1;
-#X connect 0 0 1 0;
-#X connect 0 0 3 0;
-#X connect 2 0 1 0;
-#X connect 3 0 6 0;
-#X connect 3 1 7 0;
-#X restore 135 412 pd fft;
-#X obj 30 408 *~;
-#X obj 476 231 adc~;
-#N canvas 204 36 521 368 analysis 0;
-#X obj 206 37 inlet;
-#X msg 207 68 bang;
-#X obj 275 52 r snapshot;
-#X msg 220 169 4096 array3 array4 50;
-#X obj 127 252 print;
-#X obj 206 103 t b b b;
-#X obj 122 140 s done-analysis;
-#X obj 248 133 s start-analysis;
-#X obj 220 219 s found-peak;
-#X obj 154 194 r loud;
-#X obj 128 226 spigot;
-#X obj 220 193 pique;
-#X connect 0 0 1 0;
-#X connect 1 0 5 0;
-#X connect 2 0 1 0;
-#X connect 3 0 11 0;
-#X connect 5 0 6 0;
-#X connect 5 1 3 0;
-#X connect 5 2 7 0;
-#X connect 9 0 10 1;
-#X connect 10 0 4 0;
-#X connect 11 0 8 0;
-#X connect 11 0 10 0;
-#X restore 613 295 pd analysis;
-#X obj 30 313 r loop-amp;
-#X msg 613 271 snapshot;
-#X text 23 167 click here first;
-#X text 613 247 analysis;
-#N canvas 36 255 884 389 peak-saver 0;
-#X floatatom 710 310 0 0 0 0 - - -;
-#X floatatom 633 309 0 0 0 0 - - -;
-#X floatatom 560 305 0 0 0 0 - - -;
-#X floatatom 484 303 0 0 0 0 - - -;
-#X obj 406 251 pointer;
-#X obj 354 150 pointer;
-#X msg 374 60 bang;
-#X obj 142 243 rmstodb;
-#X obj 10 244 * 0.1;
-#X obj 141 268 * -3;
-#X floatatom 416 300 0 0 0 0 - - -;
-#X obj 353 36 r start-analysis;
-#X obj 354 89 t b b;
-#X msg 29 89 50 60 70;
-#X obj 28 120 append peak-template x y amp;
-#X msg 426 225 next;
-#X obj 402 276 get peak-template x y amp ampreal ampimag;
-#X obj 9 293 append peak-template x y amp ampreal ampimag;
-#X obj 116 167 r found-peak;
-#X obj 117 196 unpack 0 0 0 0 0;
-#X msg 76 244 330;
-#X msg 400 87 \; pd-peak-list clear;
-#X msg 354 125 traverse pd-peak-list \, bang;
-#X msg 408 201 traverse pd-peak-list \, next;
-#X connect 4 0 16 0;
-#X connect 5 0 14 3;
-#X connect 5 0 17 5;
-#X connect 6 0 12 0;
-#X connect 7 0 9 0;
-#X connect 8 0 17 0;
-#X connect 9 0 17 2;
-#X connect 11 0 12 0;
-#X connect 12 0 22 0;
-#X connect 12 1 21 0;
-#X connect 13 0 14 0;
-#X connect 15 0 4 0;
-#X connect 16 0 10 0;
-#X connect 16 1 3 0;
-#X connect 16 2 2 0;
-#X connect 16 3 1 0;
-#X connect 16 4 0 0;
-#X connect 18 0 19 0;
-#X connect 19 1 8 0;
-#X connect 19 2 20 0;
-#X connect 19 2 7 0;
-#X connect 19 3 17 3;
-#X connect 19 4 17 4;
-#X connect 20 0 17 1;
-#X connect 22 0 5 0;
-#X connect 23 0 4 0;
-#X restore 339 378 pd peak-saver;
-#N canvas 231 169 656 237 peak-template 0;
-#X obj 45 90 filledpolygon 3 3 3 0 0 0 amp 0 0;
-#X obj 37 16 struct peak-template float x float y float amp float ampreal
-float ampimag;
-#X restore 339 402 pd peak-template;
-#N canvas 0 0 600 382 peak-list 1;
-#X scalar peak-template 6.52298 330 -195.561 0.0125191 -0.0131689 \;
-;
-#X scalar peak-template 13.0656 330 -262.841 0.222392 0.0909196 \;
-;
-#X scalar peak-template 26.2816 330 -188.229 0.0133818 0.00299871 \;
-;
-#X scalar peak-template 34.1579 330 -182.784 -0.0111106 0.000616574
-\;;
-#X scalar peak-template 39.2398 330 -192.587 0.00649353 -0.0148522
-\;;
-#X scalar peak-template 54.2567 330 -169.462 -0.00637704 0.00196744
-\;;
-#X scalar peak-template 64.6374 330 -153.343 -0.00231745 -0.00274854
-\;;
-#X scalar peak-template 70.731 330 -228.984 -0.0391646 -0.0525299 \;
-;
-#X scalar peak-template 83.4018 330 -157.354 0.00213705 0.00360794
-\;;
-#X scalar peak-template 89.0428 330 -164.547 0.00509053 0.00215158
-\;;
-#X scalar peak-template 96.8527 330 -127.029 0.00018868 -0.00129597
-\;;
-#X scalar peak-template 108.145 330 -206.524 -0.0244265 0.0130057 \;
-;
-#X scalar peak-template 119.672 330 -139.871 0.000310867 0.00212115
-\;;
-#X scalar peak-template 129.195 330 -154.988 0.00101519 -0.00369247
-\;;
-#X scalar peak-template 148.144 330 -131.59 -0.000488336 0.00148172
-\;;
-#X scalar peak-template 156.394 330 -157.846 0.00107442 -0.00413614
-\;;
-#X scalar peak-template 168.637 330 -126.924 0.0001938 -0.00128991
-\;;
-#X scalar peak-template 189.884 330 -119.499 0.000252664 -0.000947853
-\;;
-#X scalar peak-template 211.047 330 -130.949 0.000525129 0.0014288
-\;;
-#X restore 339 426 pd peak-list;
-#X msg 38 192 \; pd dsp 1;
-#X obj 720 296 s loud;
-#X text 539 189 live sample;
-#X text 719 234 print out;
-#X text 720 249 peak list;
-#X text 168 7 SPECTRAL SNAPSHOTS.;
-#X text 15 18 This patch reads a soundfile or records a live sound.
-When you click on "snapshot" the peak-list window shows a list of the
-sinusoidal peaks that were found at that instant in the sound. You
-can also ask for the peak lists to be printed out.;
-#N canvas 132 255 634 331 insample 0;
-#N canvas 0 0 450 300 graph1 0;
-#X array sample 155948 float 0;
-#X coords 0 1 155947 -1 400 150 1;
-#X restore 199 18 graph;
-#X obj 19 70 r read-sample;
-#X obj 19 95 unpack s f;
-#X obj 53 121 s insamprate;
-#X obj 19 171 soundfiler;
-#X msg 19 147 read -resize \$1 sample;
-#X obj 19 201 s insamplength;
-#X msg 357 197 \; sample resize 220500 \; insamplength 220500;
-#X connect 1 0 2 0;
-#X connect 2 0 5 0;
-#X connect 2 1 3 0;
-#X connect 4 0 6 0;
-#X connect 5 0 4 0;
-#X restore 336 350 pd insample;
-#N canvas 186 103 405 461 test-signal 0;
-#X obj 135 296 tabread4~ sample;
-#X obj 135 271 line~;
-#X obj 95 146 f;
-#X obj 254 46 r insamprate;
-#X obj 135 415 outlet~;
-#X obj 146 33 r insamplength;
-#X msg 134 247 0 \, \$1 \$2;
-#X obj 134 221 pack 0 0;
-#X obj 209 190 /;
-#X obj 299 99 * 0.001;
-#X obj 135 388 hip~ 5;
-#X obj 33 5 loadbang;
-#X text 242 13 sample playback;
-#X msg 33 25 1;
-#X obj 33 69 metro 1000;
-#X floatatom 33 48 0 0 0 0 - - -;
-#X obj 255 75 t b b f;
-#X obj 161 84 t b f;
-#X connect 0 0 10 0;
-#X connect 1 0 0 0;
-#X connect 2 0 7 0;
-#X connect 3 0 16 0;
-#X connect 5 0 17 0;
-#X connect 6 0 1 0;
-#X connect 7 0 6 0;
-#X connect 8 0 7 1;
-#X connect 8 0 14 1;
-#X connect 9 0 8 1;
-#X connect 10 0 4 0;
-#X connect 11 0 13 0;
-#X connect 13 0 15 0;
-#X connect 14 0 2 0;
-#X connect 15 0 14 0;
-#X connect 16 0 13 0;
-#X connect 16 1 8 0;
-#X connect 16 2 9 0;
-#X connect 17 0 13 0;
-#X connect 17 1 8 0;
-#X connect 17 1 2 1;
-#X restore 135 389 pd test-signal;
-#X text 136 317 amplitude;
-#X text 212 174 read a sample;
-#X msg 136 193 \; read-sample ../sound/bell.aiff 44100;
-#X text 12 97 The active ingredient is "pique" in the "analysis" subwindow
-\, which is in the "extras" directory in the Pd release.;
-#X msg 136 230 \; read-sample ../sound/voice.wav 32000;
-#X obj 458 295 tabwrite~ sample;
-#X obj 720 274 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
-1;
-#X msg 136 268 \; read-sample ../sound/voice2.wav;
-#X obj 29 435 output~;
-#X connect 0 0 29 0;
-#X connect 1 0 2 0;
-#X connect 2 0 5 0;
-#X connect 3 0 1 0;
-#X connect 5 0 32 0;
-#X connect 5 0 32 1;
-#X connect 6 0 29 0;
-#X connect 8 0 3 0;
-#X connect 9 0 7 0;
-#X connect 23 0 4 0;
-#X connect 23 0 5 1;
-#X connect 30 0 16 0;
diff --git a/pd/doc/4.data.structures/15.partialtracer.pd b/pd/doc/4.data.structures/15.partialtracer.pd
deleted file mode 100644
index 5fb1323f..00000000
--- a/pd/doc/4.data.structures/15.partialtracer.pd
+++ /dev/null
@@ -1,839 +0,0 @@
-#N struct peak-template float x float y float amp float ampreal float
-ampimag float used;
-#N struct trace-template float x float y float voiceno array bazoo
-point-template;
-#N struct point-template float y float amp;
-#N canvas 163 180 926 633 12;
-#X floatatom 777 72 0 0 0 0 - - -;
-#N canvas 516 98 663 557 boo 0;
-#X obj 103 108 outlet;
-#X msg 101 80 set \$1;
-#X obj 103 57 r osc-amp;
-#X connect 1 0 0 0;
-#X connect 2 0 1 0;
-#X restore 777 52 pd;
-#X obj 781 99 s osc-amp;
-#X obj 121 513 pack 0 100;
-#X obj 122 533 line~;
-#X obj 121 493 dbtorms;
-#X obj 122 573 *~;
-#X floatatom 811 225 0 0 0 0 - - -;
-#X msg 668 269 0;
-#X floatatom 737 225 0 0 0 0 - - -;
-#X floatatom 838 290 0 0 0 0 - - -;
-#X floatatom 647 71 0 0 0 0 - - -;
-#N canvas 516 98 663 555 boo 0;
-#X obj 103 108 outlet;
-#X msg 101 80 set \$1;
-#X obj 103 57 r grain-amp;
-#X connect 1 0 0 0;
-#X connect 2 0 1 0;
-#X restore 647 51 pd;
-#N canvas 201 90 556 354 analysis 0;
-#X obj 286 45 r snapshot;
-#X obj 81 283 print;
-#X obj 138 154 t b b b;
-#X obj 26 189 s done-analysis;
-#X obj 272 149 s start-analysis;
-#X obj 209 261 s found-peak;
-#X obj 139 263 r loud;
-#X obj 82 262 spigot;
-#X msg 179 101 1;
-#X obj 40 99 r fft-done;
-#X obj 40 129 spigot;
-#X msg 143 101 0;
-#X obj 289 84 del 0.01;
-#X msg 287 66 bang;
-#X text 238 103 Wait for the next FFT to come by before doing the peak
-search.;
-#X obj 443 176 r errthresh;
-#X msg 446 219 errthresh \$1;
-#X floatatom 443 199 0 0 0 0 - - -;
-#X obj 276 173 r window-size;
-#X obj 220 190 f;
-#X msg 211 211 \$1 fft-real fft-imag 10;
-#X obj 211 231 pique;
-#X connect 0 0 13 0;
-#X connect 2 0 3 0;
-#X connect 2 1 19 0;
-#X connect 2 2 4 0;
-#X connect 2 2 11 0;
-#X connect 6 0 7 1;
-#X connect 7 0 1 0;
-#X connect 8 0 10 1;
-#X connect 9 0 10 0;
-#X connect 10 0 2 0;
-#X connect 11 0 10 1;
-#X connect 12 0 8 0;
-#X connect 13 0 12 0;
-#X connect 15 0 17 0;
-#X connect 16 0 21 0;
-#X connect 17 0 16 0;
-#X connect 18 0 19 1;
-#X connect 19 0 20 0;
-#X connect 20 0 21 0;
-#X connect 21 0 5 0;
-#X connect 21 0 7 0;
-#X restore 351 411 pd analysis;
-#N canvas 168 244 589 236 peak-template 0;
-#X obj 81 52 filledpolygon 3 3 3 0 0 0 amp 0 0;
-#X obj 74 10 struct peak-template float x float y float amp float ampreal
-float ampimag float used;
-#X restore 351 516 pd peak-template;
-#N canvas 0 0 600 386 peak-list 0;
-#X scalar peak-template 14.6015 330 -247.288 0.111508 -0.0711486 0
-\;;
-#X scalar peak-template 27.1653 330 -217.279 0.0258328 0.0328795 0
-\;;
-#X scalar peak-template 38.6569 330 -224.35 -0.0509761 0.0202439 0
-\;;
-#X scalar peak-template 59.9432 330 -204.752 0.0256193 0.00348008 0
-\;;
-#X scalar peak-template 70.7537 330 -220.483 -0.0080783 0.0465889 0
-\;;
-#X scalar peak-template 82.8075 330 -172.145 -0.007237 -0.00153184
-0 \;;
-#X scalar peak-template 94.3779 330 -170.655 0.00668927 -0.00201552
-0 \;;
-#X scalar peak-template 109.018 330 -196.083 0.015492 -0.0101804 0
-\;;
-#X scalar peak-template 118.207 330 -151.073 -0.00325508 -0.000512459
-0 \;;
-#X scalar peak-template 131.204 330 -166.747 -0.00591408 0.00108779
-0 \;;
-#X restore 351 454 pd peak-list;
-#N canvas 20 23 472 426 trace-list 1;
-#X scalar trace-template 0 0 10 \; -199.613 82.4286 \; \;;
-#X scalar trace-template 0 0 9 \; -242.604 72.4257 \; \;;
-#X scalar trace-template 0 0 8 \; -267.035 74.7826 \; \;;
-#X scalar trace-template 0 0 7 \; -297.412 68.2501 \; \;;
-#X scalar trace-template 0 0 6 \; -308.895 73.4936 \; \;;
-#X scalar trace-template 0 0 5 \; -319.788 57.3809 \; \;;
-#X scalar trace-template 0 0 4 \; -328.845 56.8844 \; \;;
-#X scalar trace-template 0 0 3 \; -338.831 65.3604 \; \;;
-#X scalar trace-template 0 0 2 \; -344.435 50.3571 \; \;;
-#X scalar trace-template 0 0 1 \; -351.66 55.5817 \; \;;
-#X restore 351 494 pd trace-list;
-#N canvas 56 84 527 179 trace-template 0;
-#X obj 121 72 plot bazoo 0 1 0 500 5;
-#X text 121 93 This template describes a pitch/amplitude trace. The
-array "bazoo" holds the actual points. In this template \, y is always
-0 and x is the starting location in pixels. There are 5 pixels per
-point.;
-#X obj 125 36 struct trace-template float x float y float voiceno array
-bazoo point-template;
-#X restore 351 537 pd trace-template;
-#N canvas 96 258 494 158 point-template 0;
-#X text 127 56 This template describes a single point on a pitch trace
-(cf. trace-template w describes the trace itself.);
-#X text 127 89 "y" is the field that is shown on the graph \; it's
-- 4 * pitch. You also get an "amp" field in dB \, which you can't see
-as a plot (yet).;
-#X obj 212 14 struct point-template float y float amp;
-#X restore 351 557 pd point-template;
-#X msg 746 506 bang;
-#X obj 8 425 pack 0 100;
-#X obj 8 449 line~;
-#X obj 8 405 dbtorms;
-#X floatatom 545 70 0 0 0 0 - - -;
-#N canvas 194 37 730 722 output 0;
-#X obj 295 76 t b f;
-#X obj 286 100 +;
-#X obj 515 207 f;
-#X obj 532 165 f;
-#X obj 359 210 f;
-#X obj 83 179 t b;
-#X obj 82 127 f;
-#X obj 71 58 inlet;
-#X text 78 37 mute;
-#X obj 83 201 f;
-#X msg 235 153 0;
-#X msg 74 84 bang;
-#X obj 83 155 moses 1;
-#X obj 231 69 t b f;
-#X obj 222 93 +;
-#X obj 181 27 r loop-amp;
-#X obj 395 26 r osc-amp;
-#X obj 83 236 s loop-amp;
-#X obj 359 235 s osc-amp;
-#X obj 591 125 print;
-#X obj 186 148 f;
-#X obj 374 168 f;
-#X obj 225 120 t b b;
-#X obj 552 23 r grain-amp;
-#X obj 516 232 s grain-amp;
-#X connect 0 0 1 0;
-#X connect 0 1 1 1;
-#X connect 1 0 6 1;
-#X connect 2 0 24 0;
-#X connect 3 0 2 1;
-#X connect 4 0 18 0;
-#X connect 5 0 9 0;
-#X connect 5 0 4 0;
-#X connect 5 0 2 0;
-#X connect 6 0 12 0;
-#X connect 7 0 11 0;
-#X connect 9 0 17 0;
-#X connect 10 0 17 0;
-#X connect 10 0 18 0;
-#X connect 10 0 24 0;
-#X connect 11 0 6 0;
-#X connect 12 0 5 0;
-#X connect 12 1 22 0;
-#X connect 13 0 14 0;
-#X connect 13 1 14 1;
-#X connect 14 0 1 0;
-#X connect 15 0 14 0;
-#X connect 15 0 20 1;
-#X connect 16 0 13 0;
-#X connect 16 0 21 1;
-#X connect 20 0 9 1;
-#X connect 21 0 4 1;
-#X connect 22 0 10 0;
-#X connect 22 1 20 0;
-#X connect 22 1 21 0;
-#X connect 22 1 3 0;
-#X connect 23 0 3 1;
-#X connect 23 0 0 0;
-#X restore 820 69 pd output;
-#N canvas 516 98 663 559 /SUBPATCH/ 0;
-#X obj 103 108 outlet;
-#X msg 101 80 set \$1;
-#X obj 103 57 r loop-amp;
-#X connect 1 0 0 0;
-#X connect 2 0 1 0;
-#X restore 545 50 pd;
-#N canvas 209 96 518 375 fft 0;
-#X floatatom 305 194 0 0 0 0 - - -;
-#X obj 454 160 r sample-rate;
-#X obj 454 180 t b f;
-#X obj 304 169 r window-size;
-#X obj 264 38 r sample-rate;
-#X obj 238 16 r window-size;
-#X obj 264 58 t b f;
-#X obj 238 83 /;
-#X obj 170 103 bang~;
-#X obj 169 175 line~;
-#X obj 238 104 * 1000;
-#X text 298 104 window size (msec);
-#X obj 168 281 rfft~;
-#X obj 170 337 tabsend~ fft-real;
-#X obj 207 307 tabsend~ fft-imag;
-#X obj 429 140 r location;
-#X obj 429 205 *;
-#X obj 429 228 * 0.001;
-#X text 498 228 location (samples);
-#X obj 169 129 f;
-#X msg 169 152 0 \, 1 \$1;
-#X obj 113 201 *~;
-#X obj 113 224 -~;
-#X obj 81 301 *~;
-#X obj 81 324 outlet~;
-#X floatatom 429 252 0 0 0 0 - - -;
-#X obj 53 127 s fft-done;
-#X obj 66 31 block~ 2048 1;
-#X obj 168 255 tabread4~ sample;
-#X obj 169 211 *~ 0;
-#X obj 168 232 +~ 0;
-#X connect 1 0 2 0;
-#X connect 2 0 16 0;
-#X connect 2 1 16 1;
-#X connect 3 0 0 0;
-#X connect 3 0 29 1;
-#X connect 4 0 6 0;
-#X connect 5 0 7 0;
-#X connect 6 0 7 0;
-#X connect 6 1 7 1;
-#X connect 7 0 10 0;
-#X connect 8 0 19 0;
-#X connect 8 0 26 0;
-#X connect 9 0 21 0;
-#X connect 9 0 21 1;
-#X connect 9 0 22 1;
-#X connect 9 0 29 0;
-#X connect 10 0 19 1;
-#X connect 12 0 13 0;
-#X connect 12 1 14 0;
-#X connect 15 0 16 0;
-#X connect 16 0 17 0;
-#X connect 17 0 25 0;
-#X connect 17 0 30 1;
-#X connect 19 0 20 0;
-#X connect 20 0 9 0;
-#X connect 21 0 22 0;
-#X connect 22 0 23 0;
-#X connect 23 0 24 0;
-#X connect 28 0 12 0;
-#X connect 28 0 23 1;
-#X connect 29 0 30 0;
-#X connect 30 0 28 0;
-#X restore 22 470 pd fft;
-#X obj 8 493 *~;
-#X obj 9 544 hip~ 5;
-#X obj 9 571 dac~;
-#X obj 754 529 adc~;
-#X obj 545 91 s loop-amp;
-#X msg 820 48 mute;
-#X text 18 97 click here first;
-#X text 741 489 live sample;
-#X text 677 25 AMPLITUDES;
-#N canvas 5 1 864 622 make-trace 0;
-#X obj 186 220 * -0.33333;
-#X obj 91 216 * 10;
-#X obj 118 136 pointer;
-#X msg 118 115 next;
-#X obj 118 97 until;
-#X obj 387 134 pointer;
-#X msg 389 108 next;
-#X obj 200 330 unpack;
-#X obj 255 332 s amp;
-#X obj 283 378 s frequency;
-#X obj 300 361 s pitch;
-#X obj 251 375 f 0;
-#X obj 200 348 t b b b b f;
-#X obj 781 133 pointer;
-#X obj 744 602 setsize trace-template bazoo;
-#X obj 744 514 random 200;
-#X obj 744 532 + 100;
-#X obj 857 526 pointer;
-#X obj 218 532 pointer;
-#X floatatom 356 524 0 0 0 0 - - -;
-#X floatatom 296 550 0 0 0 0 - - -;
-#X msg 205 509 bang;
-#X floatatom 108 461 0 0 0 0 - - -;
-#X floatatom 40 509 0 0 0 0 - - -;
-#X floatatom 153 590 0 0 0 0 - - -;
-#X floatatom 516 556 0 0 0 0 - - -;
-#X floatatom 356 489 0 0 0 0 - - -;
-#X floatatom 667 511 0 0 0 0 - - -;
-#X obj 481 464 pointer;
-#X msg 508 447 next;
-#X floatatom 532 512 0 0 0 0 - - -;
-#X obj 516 539 getsize trace-template bazoo;
-#X obj 127 563 get point-template y;
-#X obj 40 533 set point-template y;
-#X obj 101 486 element trace-template bazoo;
-#X obj 296 580 setsize trace-template bazoo;
-#X obj 356 507 set trace-template x;
-#X obj 356 542 set trace-template y;
-#X msg 744 497 bang;
-#X obj 744 549 append trace-template x;
-#X obj 519 489 get trace-template x y;
-#X obj 744 567 t b p;
-#X msg 744 584 5;
-#X obj 816 93 s clear-traces;
-#X obj 783 155 s last-in-list;
-#X msg 780 43 bang;
-#X obj 780 60 t b b;
-#X obj 745 156 f 0;
-#X obj 744 176 s nframe;
-#X obj 445 337 r nframe;
-#X obj 429 356 f;
-#X obj 429 373 + 1;
-#X obj 429 391 s nframe;
-#X obj 429 296 r done-frame;
-#X obj 437 315 s done-adding-traces;
-#X obj 19 309 r component;
-#X obj 19 326 unpack;
-#X obj 73 331 s amp;
-#X obj 104 370 s frequency;
-#X obj 120 354 s pitch;
-#X obj 70 388 s added-to-trace;
-#X obj 70 370 f 0;
-#X obj 62 408 s add-to-trace;
-#X obj 19 344 t b b b b f;
-#X obj 780 25 r clear-all;
-#X obj 200 311 r component2;
-#X obj 251 393 s started-new-trace;
-#X obj 240 414 s start-new-trace;
-#X obj 355 41 r done-analysis;
-#X obj 355 62 t b b b b;
-#X obj 292 176 r added-to-trace;
-#X obj 389 89 until;
-#X obj 456 172 get peak-template x amp;
-#X obj 552 195 * -0.33333;
-#X obj 456 190 * 10;
-#X obj 456 210 pack;
-#X obj 456 226 s component;
-#X obj 120 337 ftom;
-#X obj 387 155 t b p p;
-#X obj 256 196 set peak-template used;
-#X obj 259 176 f;
-#X obj 302 344 ftom;
-#X msg 175 31 \; done-frame bang;
-#X obj 21 178 get peak-template used x amp;
-#X obj 35 236 pack 0 0 0;
-#X obj 35 255 route 0;
-#X obj 35 272 s component2;
-#X obj 549 260 print x1;
-#X obj 226 276 print x2;
-#X obj 727 255 add-trace 1;
-#X obj 728 274 add-trace 2;
-#X obj 728 291 add-trace 3;
-#X obj 727 309 add-trace 4;
-#X obj 728 328 add-trace 5;
-#X obj 728 345 add-trace 6;
-#X obj 728 363 add-trace 7;
-#X obj 729 381 add-trace 8;
-#X obj 729 399 add-trace 9;
-#X obj 729 417 add-trace 10;
-#X msg 484 111 traverse pd-peak-list;
-#X msg 781 115 traverse pd-trace-list \, bang;
-#X msg 833 59 \; pd-trace-list clear;
-#X msg 481 430 traverse pd-trace-list \, next;
-#X msg 857 509 traverse pd-trace-list \, bang;
-#X connect 0 0 84 2;
-#X connect 1 0 84 1;
-#X connect 2 0 83 0;
-#X connect 2 1 4 1;
-#X connect 3 0 2 0;
-#X connect 4 0 3 0;
-#X connect 5 0 78 0;
-#X connect 5 1 71 1;
-#X connect 6 0 5 0;
-#X connect 7 0 12 0;
-#X connect 7 1 8 0;
-#X connect 11 0 66 0;
-#X connect 12 2 67 0;
-#X connect 12 3 11 0;
-#X connect 12 4 81 0;
-#X connect 12 4 9 0;
-#X connect 13 0 44 0;
-#X connect 15 0 16 0;
-#X connect 16 0 39 0;
-#X connect 17 0 39 1;
-#X connect 18 0 32 0;
-#X connect 19 0 37 0;
-#X connect 20 0 35 0;
-#X connect 21 0 18 0;
-#X connect 22 0 34 0;
-#X connect 23 0 33 0;
-#X connect 26 0 36 0;
-#X connect 28 0 35 1;
-#X connect 28 0 36 1;
-#X connect 28 0 37 1;
-#X connect 28 0 34 1;
-#X connect 28 0 40 0;
-#X connect 28 0 31 0;
-#X connect 29 0 28 0;
-#X connect 31 0 25 0;
-#X connect 32 0 24 0;
-#X connect 34 0 18 0;
-#X connect 34 0 33 1;
-#X connect 38 0 15 0;
-#X connect 39 0 41 0;
-#X connect 40 0 30 0;
-#X connect 40 1 27 0;
-#X connect 41 0 42 0;
-#X connect 41 1 14 1;
-#X connect 42 0 14 0;
-#X connect 45 0 46 0;
-#X connect 46 0 100 0;
-#X connect 46 0 47 0;
-#X connect 46 1 101 0;
-#X connect 46 1 43 0;
-#X connect 47 0 48 0;
-#X connect 49 0 50 1;
-#X connect 50 0 51 0;
-#X connect 51 0 52 0;
-#X connect 53 0 50 0;
-#X connect 53 0 54 0;
-#X connect 55 0 56 0;
-#X connect 56 0 63 0;
-#X connect 56 1 57 0;
-#X connect 61 0 60 0;
-#X connect 63 2 62 0;
-#X connect 63 3 61 0;
-#X connect 63 4 77 0;
-#X connect 63 4 58 0;
-#X connect 64 0 45 0;
-#X connect 65 0 7 0;
-#X connect 68 0 69 0;
-#X connect 69 0 82 0;
-#X connect 69 1 4 0;
-#X connect 69 2 71 0;
-#X connect 69 3 99 0;
-#X connect 70 0 80 1;
-#X connect 71 0 6 0;
-#X connect 72 0 74 0;
-#X connect 72 1 73 0;
-#X connect 73 0 75 1;
-#X connect 74 0 75 0;
-#X connect 75 0 76 0;
-#X connect 77 0 59 0;
-#X connect 78 0 80 0;
-#X connect 78 1 79 1;
-#X connect 78 2 72 0;
-#X connect 80 0 79 0;
-#X connect 81 0 10 0;
-#X connect 83 0 84 0;
-#X connect 83 1 1 0;
-#X connect 83 2 0 0;
-#X connect 84 0 85 0;
-#X connect 85 0 86 0;
-#X connect 99 0 5 0;
-#X connect 99 0 2 0;
-#X connect 100 0 13 0;
-#X connect 102 0 28 0;
-#X connect 103 0 17 0;
-#X restore 351 474 pd make-trace;
-#X floatatom 5 289 0 0 0 0 - - -;
-#N canvas 0 0 955 721 arrays 0;
-#X msg 39 202 \; fft-real resize 4096 \; fft-imag resize 4096;
-#N canvas 0 0 450 300 graph1 0;
-#X array fft-real 4096 float 0;
-#X coords 0 1 4096 -1 400 300 1;
-#X restore 432 41 graph;
-#N canvas 0 0 450 300 graph2 0;
-#X array fft-imag 4096 float 0;
-#X coords 0 1 4096 -1 400 300 1;
-#X restore 419 265 graph;
-#X restore 571 515 pd arrays;
-#X obj 5 309 s location;
-#X obj 123 412 r loop-amp;
-#X obj 737 288 f;
-#X obj 5 248 r location;
-#X msg 5 268 set \$1;
-#X obj 777 288 +;
-#X obj 737 309 moses 900;
-#X msg 695 329 0;
-#X msg 694 247 1;
-#X msg 736 335 \; location \$1 \; snapshot bang;
-#X msg 655 170 bang \; location 0 \; clear-all bang;
-#X floatatom 655 305 0 0 0 0 - - -;
-#X obj 655 225 t b b;
-#X obj 838 270 r incr;
-#X obj 8 385 r grain-amp;
-#X obj 121 473 r osc-amp;
-#X obj 143 553 catch~ osc-sum;
-#N canvas 102 67 751 619 osc-bank 0;
-#X obj 311 433 osc-voice;
-#X obj 290 451 osc-voice;
-#X obj 269 471 osc-voice;
-#X obj 248 490 osc-voice;
-#X obj 227 510 osc-voice;
-#X obj 207 528 osc-voice;
-#X obj 186 547 osc-voice;
-#X obj 165 566 osc-voice;
-#X obj 144 586 osc-voice;
-#X obj 123 410 route 1 2 3 4 5 6 7 8 9 10;
-#X msg 377 269 0;
-#X obj 728 489 pointer;
-#X floatatom 848 417 0 0 0 0 - - -;
-#X obj 623 351 pointer;
-#X msg 549 491 next;
-#X floatatom 623 419 0 0 0 0 - - -;
-#X obj 231 111 pointer;
-#X floatatom 368 104 0 0 0 0 - - -;
-#X floatatom 309 129 0 0 0 0 - - -;
-#X msg 218 88 bang;
-#X floatatom 120 40 0 0 0 0 - - -;
-#X floatatom 53 88 0 0 0 0 - - -;
-#X floatatom 165 169 0 0 0 0 - - -;
-#X floatatom 546 137 0 0 0 0 - - -;
-#X floatatom 368 69 0 0 0 0 - - -;
-#X floatatom 680 90 0 0 0 0 - - -;
-#X obj 552 43 pointer;
-#X msg 581 27 next;
-#X floatatom 545 92 0 0 0 0 - - -;
-#X obj 546 120 getsize trace-template bazoo;
-#X obj 140 142 get point-template y;
-#X obj 53 113 set point-template y;
-#X obj 113 66 element trace-template bazoo;
-#X obj 309 159 setsize trace-template bazoo;
-#X obj 368 86 set trace-template x;
-#X obj 368 121 set trace-template y;
-#X obj 532 68 get trace-template x y;
-#X floatatom 524 312 0 0 0 0 - - -;
-#X msg 524 288 1;
-#X msg 564 288 0;
-#X obj 623 451 <;
-#X obj 623 398 get trace-template x voiceno;
-#X obj 623 374 t p p;
-#X obj 393 337 until;
-#X obj 620 233 r start-resynth;
-#X obj 625 255 t b b;
-#X obj 504 353 f;
-#X obj 504 372 sel 0 1;
-#X obj 668 436 r synth-index;
-#X obj 621 555 pack f p;
-#X obj 623 470 sel 0 1;
-#X obj 305 230 r step-resynth;
-#X obj 378 288 f;
-#X obj 378 308 s synth-index;
-#X obj 636 523 f;
-#X obj 419 289 + 5;
-#X obj 621 490 t b b b;
-#X obj 305 252 t b b b;
-#X obj 281 301 s osc-tick;
-#X obj 123 604 osc-voice;
-#X msg 552 10 traverse pd-trace-list \, next;
-#X msg 621 288 traverse pd-trace-list \, next;
-#X connect 9 0 59 0;
-#X connect 9 1 8 0;
-#X connect 9 2 7 0;
-#X connect 9 3 6 0;
-#X connect 9 4 5 0;
-#X connect 9 5 4 0;
-#X connect 9 6 3 0;
-#X connect 9 7 2 0;
-#X connect 9 8 1 0;
-#X connect 9 9 0 0;
-#X connect 10 0 52 0;
-#X connect 11 0 49 1;
-#X connect 13 0 42 0;
-#X connect 13 1 39 0;
-#X connect 13 1 43 1;
-#X connect 14 0 13 0;
-#X connect 15 0 40 0;
-#X connect 16 0 30 0;
-#X connect 17 0 35 0;
-#X connect 18 0 33 0;
-#X connect 19 0 16 0;
-#X connect 20 0 32 0;
-#X connect 21 0 31 0;
-#X connect 24 0 34 0;
-#X connect 26 0 33 1;
-#X connect 26 0 34 1;
-#X connect 26 0 35 1;
-#X connect 26 0 32 1;
-#X connect 26 0 36 0;
-#X connect 26 0 29 0;
-#X connect 27 0 26 0;
-#X connect 29 0 23 0;
-#X connect 30 0 22 0;
-#X connect 32 0 16 0;
-#X connect 32 0 31 1;
-#X connect 36 0 28 0;
-#X connect 36 1 25 0;
-#X connect 37 0 46 1;
-#X connect 38 0 37 0;
-#X connect 39 0 37 0;
-#X connect 40 0 50 0;
-#X connect 41 0 15 0;
-#X connect 41 1 54 1;
-#X connect 42 0 41 0;
-#X connect 42 1 11 1;
-#X connect 43 0 46 0;
-#X connect 44 0 45 0;
-#X connect 45 0 61 0;
-#X connect 45 1 38 0;
-#X connect 45 1 10 0;
-#X connect 46 0 47 0;
-#X connect 47 0 43 1;
-#X connect 47 1 15 0;
-#X connect 48 0 40 1;
-#X connect 49 0 9 0;
-#X connect 50 0 43 1;
-#X connect 50 1 56 0;
-#X connect 51 0 57 0;
-#X connect 52 0 53 0;
-#X connect 52 0 55 0;
-#X connect 54 0 49 0;
-#X connect 55 0 52 1;
-#X connect 56 0 14 0;
-#X connect 56 1 54 0;
-#X connect 56 2 11 0;
-#X connect 57 0 58 0;
-#X connect 57 1 43 0;
-#X connect 57 2 52 0;
-#X connect 60 0 26 0;
-#X connect 61 0 13 0;
-#X restore 571 494 pd osc-bank;
-#X obj 646 95 s grain-amp;
-#N canvas 31 70 662 326 save-list 0;
-#X floatatom 759 255 0 0 0 0 - - -;
-#X floatatom 677 254 0 0 0 0 - - -;
-#X floatatom 599 251 0 0 0 0 - - -;
-#X floatatom 517 250 0 0 0 0 - - -;
-#X obj 435 206 pointer;
-#X obj 307 121 pointer;
-#X msg 328 47 bang;
-#X obj 152 200 rmstodb;
-#X obj 10 201 * 0.1;
-#X obj 151 220 * -3;
-#X floatatom 445 247 0 0 0 0 - - -;
-#X obj 304 27 r start-analysis;
-#X obj 305 71 t b b;
-#X msg 456 185 next;
-#X obj 430 227 get peak-template x y amp ampreal ampimag;
-#X obj 9 241 append peak-template x y amp ampreal ampimag;
-#X obj 125 138 r found-peak;
-#X obj 126 161 unpack 0 0 0 0 0;
-#X msg 81 201 330;
-#X msg 356 69 \; pd-peak-list clear;
-#X msg 305 100 traverse pd-peak-list \, bang;
-#X msg 437 166 traverse pd-peak-list \, next;
-#X connect 4 0 14 0;
-#X connect 5 0 15 5;
-#X connect 6 0 12 0;
-#X connect 7 0 9 0;
-#X connect 8 0 15 0;
-#X connect 9 0 15 2;
-#X connect 11 0 12 0;
-#X connect 12 0 20 0;
-#X connect 12 1 19 0;
-#X connect 13 0 4 0;
-#X connect 14 0 10 0;
-#X connect 14 1 3 0;
-#X connect 14 2 2 0;
-#X connect 14 3 1 0;
-#X connect 14 4 0 0;
-#X connect 16 0 17 0;
-#X connect 17 1 8 0;
-#X connect 17 2 18 0;
-#X connect 17 2 7 0;
-#X connect 17 3 15 3;
-#X connect 17 4 15 4;
-#X connect 18 0 15 1;
-#X connect 20 0 5 0;
-#X connect 21 0 4 0;
-#X restore 351 431 pd save-list;
-#X msg 9 114 \; pd dsp 1 \; window-size 2048 \; sample-rate 44100 \;
-f-threshold 40 \; incr 10 \; clear-all bang;
-#X obj 737 245 metro 150;
-#X floatatom 315 309 0 0 0 0 - - -;
-#X floatatom 377 309 0 0 0 0 - - -;
-#X msg 139 349 \; start-resynth bang;
-#X msg 315 350 \; step-resynth bang;
-#X obj 315 329 metro 100;
-#X msg 478 350 \; osc-stop bang;
-#X text 790 113 resynth;
-#X text 642 112 analyzed grains;
-#X text 554 112 original;
-#X text 653 151 ... and here third to analyze;
-#N canvas 0 0 276 216 test 0;
-#X floatatom 56 120 0 0 0 0 - - -;
-#X obj 56 141 s loud;
-#X msg 49 84 \; clear-all bang;
-#X msg 51 52 \; snapshot bang;
-#X connect 0 0 1 0;
-#X restore 569 538 pd test;
-#X text 317 140 read a sample;
-#X msg 214 163 \; read-sample ../sound/bell.aiff 44100;
-#N canvas 190 43 405 461 test-signal 0;
-#X obj 174 293 tabread4~ sample;
-#X obj 174 268 line~;
-#X obj 123 146 f;
-#X obj 330 46 r insamprate;
-#X obj 177 350 *~;
-#X obj 213 351 dbtorms;
-#X obj 213 328 inlet;
-#X obj 175 415 outlet~;
-#X obj 190 33 r insamplength;
-#X msg 174 247 0 \, \$1 \$2;
-#X obj 174 221 pack 0 0;
-#X obj 272 190 /;
-#X obj 389 99 * 0.001;
-#X obj 175 388 hip~ 5;
-#X obj 43 5 loadbang;
-#X text 315 13 sample playback;
-#X msg 43 25 1;
-#X obj 43 69 metro 1000;
-#X floatatom 43 48 0 0 0 0 - - -;
-#X obj 331 75 t b b f;
-#X obj 209 84 t b f;
-#X connect 0 0 4 0;
-#X connect 1 0 0 0;
-#X connect 2 0 10 0;
-#X connect 3 0 19 0;
-#X connect 4 0 13 0;
-#X connect 5 0 4 1;
-#X connect 6 0 5 0;
-#X connect 8 0 20 0;
-#X connect 9 0 1 0;
-#X connect 10 0 9 0;
-#X connect 11 0 10 1;
-#X connect 11 0 17 1;
-#X connect 12 0 11 1;
-#X connect 13 0 7 0;
-#X connect 14 0 16 0;
-#X connect 16 0 18 0;
-#X connect 17 0 2 0;
-#X connect 18 0 17 0;
-#X connect 19 0 16 0;
-#X connect 19 1 11 0;
-#X connect 19 2 12 0;
-#X connect 20 0 16 0;
-#X connect 20 1 11 0;
-#X connect 20 1 2 1;
-#X restore 125 436 pd test-signal;
-#N canvas 132 255 634 331 insample 0;
-#N canvas 0 0 450 300 graph1 0;
-#X array sample 155948 float 0;
-#X coords 0 1 155947 -1 400 150 1;
-#X restore 259 18 graph;
-#X obj 25 70 r read-sample;
-#X obj 25 95 unpack s f;
-#X obj 69 121 s insamprate;
-#X obj 25 171 soundfiler;
-#X msg 25 147 read -resize \$1 sample;
-#X obj 25 201 s insamplength;
-#X msg 464 197 \; sample resize 220500 \; insamplength 220500;
-#X connect 1 0 2 0;
-#X connect 2 0 5 0;
-#X connect 2 1 3 0;
-#X connect 4 0 6 0;
-#X connect 5 0 4 0;
-#X restore 569 559 pd insample;
-#X obj 744 553 tabwrite~ sample;
-#X text 152 0 SINUSOID TRACKING;
-#X text 129 259 to resynthesize \, "start" once and "step" ad lib.
-To stop \, stop stepping and hit osc-stop. Note resynth ampliture control
-above.;
-#X text 4 17 This patch tries to reconstruct sinusoidal "tracks" from
-a sampled sound using pique~ and the data structure facilities. It
-turns out to be quite hard \, not least because pique~ 0.1 puts out
-all sorts of spurious peaks.;
-#X msg 213 200 \; read-sample ../sound/voice.wav 44100;
-#X obj 847 194 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X connect 0 0 2 0;
-#X connect 1 0 0 0;
-#X connect 3 0 4 0;
-#X connect 4 0 6 0;
-#X connect 5 0 3 0;
-#X connect 6 0 28 0;
-#X connect 7 0 60 1;
-#X connect 8 0 41 1;
-#X connect 9 0 60 0;
-#X connect 10 0 44 1;
-#X connect 11 0 57 0;
-#X connect 12 0 11 0;
-#X connect 19 0 76 0;
-#X connect 20 0 21 0;
-#X connect 21 0 27 0;
-#X connect 22 0 20 0;
-#X connect 23 0 31 0;
-#X connect 25 0 23 0;
-#X connect 26 0 27 1;
-#X connect 27 0 28 0;
-#X connect 28 0 29 0;
-#X connect 28 0 29 1;
-#X connect 30 0 76 0;
-#X connect 32 0 24 0;
-#X connect 37 0 39 0;
-#X connect 40 0 74 0;
-#X connect 41 0 44 0;
-#X connect 41 0 45 0;
-#X connect 41 0 50 0;
-#X connect 42 0 43 0;
-#X connect 43 0 37 0;
-#X connect 44 0 41 1;
-#X connect 45 0 48 0;
-#X connect 45 1 46 0;
-#X connect 46 0 9 0;
-#X connect 47 0 9 0;
-#X connect 49 0 51 0;
-#X connect 51 0 47 0;
-#X connect 51 1 8 0;
-#X connect 52 0 10 0;
-#X connect 53 0 22 0;
-#X connect 54 0 5 0;
-#X connect 55 0 6 1;
-#X connect 60 0 41 0;
-#X connect 61 0 65 0;
-#X connect 62 0 65 1;
-#X connect 65 0 64 0;
-#X connect 74 0 28 0;
-#X connect 81 0 41 0;
diff --git a/pd/doc/5.reference/help-intro.pd b/pd/doc/5.reference/help-intro.pd
index 23952ba8..10ae3502 100644
--- a/pd/doc/5.reference/help-intro.pd
+++ b/pd/doc/5.reference/help-intro.pd
@@ -243,8 +243,7 @@ to a note-on;
#X obj 18 3558 rzero~;
#X text 118 3558 - raw real-valued one-zero filter;
#X obj 18 3588 rzero_rev~;
-#X obj 113 3588 rzero~;
-#X text 166 3588 - time-reversed;
+#X text 121 3588 - time-reversed;
#X obj 18 3618 cpole~;
#X obj 77 3618 czero~;
#X text 214 3618 - corresponding complex-valued filters;
diff --git a/pd/doc/5.reference/my_canvas-help.pd b/pd/doc/5.reference/my_canvas-help.pd
index decda628..65f9976f 100644
--- a/pd/doc/5.reference/my_canvas-help.pd
+++ b/pd/doc/5.reference/my_canvas-help.pd
@@ -1,25 +1,25 @@
-#N canvas 482 81 568 339 10;
-#X obj 1 1 cnv 15 300 60 foo10_snd foo10_rcv my_canvas=cnv 63 37 192
+#N canvas 0 22 500 292 10;
+#X obj 1 1 cnv 15 300 60 foo10_snd foo10_rcv my_canvas=cnv 63 37 0
17 -257472 -355 0;
#X text 4 232 (c) musil@iem.kug.ac.at;
#X text 46 245 IEM KUG;
#N canvas 219 100 699 530 edit 0;
#X obj 39 226 f;
#X msg 17 205 bang;
-#X floatatom 55 204 3 63 88;
-#X floatatom 90 226 3 0 37;
+#X floatatom 55 204 3 63 88 0 - - -;
+#X floatatom 90 226 3 0 37 0 - - -;
#X obj 39 249 pack 0 0;
#X text 117 226 y-label;
#X text 83 204 x-label;
#X obj 297 281 f;
#X msg 275 260 bang;
-#X floatatom 313 259 3 -10 10;
-#X floatatom 348 281 3 -10 10;
+#X floatatom 313 259 3 -10 10 0 - - -;
+#X floatatom 348 281 3 -10 10 0 - - -;
#X obj 297 304 pack 0 0;
#X obj 309 396 f;
#X msg 287 375 bang;
-#X floatatom 325 374 3 20 60;
-#X floatatom 360 396 3 150 200;
+#X floatatom 325 374 3 20 60 0 - - -;
+#X floatatom 360 396 3 150 200 0 - - -;
#X obj 309 419 pack 0 0;
#X text 341 259 x-delta;
#X text 375 281 y-delta;
@@ -27,12 +27,12 @@
#X text 387 396 y-position;
#X obj 59 341 f;
#X msg 37 320 bang;
-#X floatatom 75 319 3 0 2;
-#X floatatom 110 341 3 4 36;
+#X floatatom 75 319 3 0 2 0 - - -;
+#X floatatom 110 341 3 4 36 0 - - -;
#X obj 59 364 pack 0 0;
#X text 103 319 font;
#X text 139 341 height;
-#X floatatom 275 183 3 2 20;
+#X floatatom 275 183 3 2 20 0 - - -;
#X msg 52 137 \; foo10_rcv color \$1 \$2;
#X msg 39 274 \; foo10_rcv label_pos \$1 \$2;
#X msg 59 390 \; foo10_rcv label_font \$1 \$2;
@@ -42,8 +42,8 @@
#X msg 297 329 \; foo10_rcv delta \$1 \$2;
#X obj 505 234 f;
#X msg 483 213 bang;
-#X floatatom 521 212 5 100 1000;
-#X floatatom 556 234 4 50 500;
+#X floatatom 521 212 5 100 1000 0 - - -;
+#X floatatom 556 234 4 50 500 0 - - -;
#X obj 505 257 pack 0 0;
#X text 566 212 width;
#X text 594 236 height;
@@ -57,14 +57,14 @@
#X msg 509 372 \; foo10_rcv get_pos;
#X obj 510 407 r foo10_snd;
#X obj 510 428 unpack 0 0;
-#X floatatom 510 453 4 0 0;
-#X floatatom 575 452 4 0 0;
+#X floatatom 510 453 4 0 0 0 - - -;
+#X floatatom 575 452 4 0 0 0 - - -;
#X text 490 452 x=;
#X text 557 452 y=;
#X obj 52 79 f;
#X msg 29 31 bang;
-#X floatatom 68 29 3 0 29;
-#X floatatom 103 47 3 0 29;
+#X floatatom 68 29 3 0 29 0 - - -;
+#X floatatom 103 47 3 0 29 0 - - -;
#X text 96 29 background;
#X text 131 48 label-color;
#X msg 290 25 back;
@@ -137,9 +137,9 @@
#X connect 30 1 23 0;
#X connect 30 2 28 0;
#X restore 290 86 pd RGB_____________;
-#X floatatom 332 55 3 0 255;
-#X floatatom 375 55 3 0 255;
-#X floatatom 418 56 3 0 255;
+#X floatatom 332 55 3 0 255 0 - - -;
+#X floatatom 375 55 3 0 255 0 - - -;
+#X floatatom 418 56 3 0 255 0 - - -;
#X text 39 3 preset-colors;
#X text 301 0 RGB-colors;
#X text 332 37 red;
@@ -188,22 +188,22 @@
#X connect 68 0 66 2;
#X connect 69 0 66 3;
#X connect 75 0 29 0;
-#X restore 305 20 pd edit;
-#X floatatom 110 193 4 0 0;
-#X floatatom 147 193 4 0 0;
+#X restore 315 20 pd edit;
+#X floatatom 110 193 4 0 0 0 - - -;
+#X floatatom 147 193 4 0 0 0 - - -;
#X text 121 209 x;
#X text 158 209 y;
#X obj 7 161 metro 100;
#X obj 33 141 tgl 15 1 empty empty empty 20 8 0 10 -262144 -1 -1 1
1;
#X obj 110 145 r from_K1;
-#X floatatom 188 194 4 0 0;
-#X floatatom 225 194 4 0 0;
+#X floatatom 188 194 4 0 0 0 - - -;
+#X floatatom 225 194 4 0 0 0 - - -;
#X text 198 210 x;
#X text 236 210 y;
#X obj 188 146 r from_K2;
#X msg 7 185 \; to_K get_pos;
-#N canvas 0 296 395 395 room 1;
+#N canvas 0 296 395 395 room 0;
#X obj 1 1 cnv 1 400 400 empty empty type...ctrl+e 150 140 2 17 -33289
-24198 0;
#X obj 15 16 cnv 1 1 360 empty empty move_K1_and_K2 115 160 2 17 -166441
@@ -214,9 +214,9 @@
0;
#X obj 17 375 cnv 1 358 1 empty empty empty 20 12 2 20 -99865 -66577
0;
-#X obj 23 22 cnv 25 25 25 from_K1 to_K K1 1 13 194 14 -261681 -123526
+#X obj 23 22 cnv 25 25 25 from_K1 to_K K1 1 13 2 14 -261681 -123526
0;
-#X obj 342 342 cnv 25 25 25 from_K2 to_K K2 1 13 194 14 -225280 -1109
+#X obj 342 342 cnv 25 25 25 from_K2 to_K K2 1 13 2 14 -225280 -1109
0;
#X restore 307 147 pd room;
#X obj 110 169 unpack;
@@ -229,9 +229,26 @@
#X text 5 64 click the properties-dialog on the top-left corner;
#X obj 361 195 r foo10_rcv;
#X obj 403 215 s ggg;
-#X text 172 257 updated for Pd version 0.35;
#X text 21 257 graz \, austria 2002;
#X obj 187 236 x_all_guis aaa bbb ccc ddd eee fff ggg hhh iii;
+#X text 313 46 For cnv's creation arguments:;
+#N canvas 881 440 467 369 canvas-creation-arguments 0;
+#X msg 7 12 canvas: cnv selectableSize xSize ySize sendName recieveName
+Label labelXOff labelYOff Font# fontSize bgColor lblColor 0;
+#X text 9 169 For example \, a canvas called thusly:;
+#X obj 9 248 cnv 15 200 100 myCanvas myCanvasR Canvas_Demo 20 12 2
+14 -62784 -195568 0;
+#X text 9 226 will result in this:;
+#X text 8 59 Canvas can be called with 13 creation arguments. These
+are not "optional" - all parameters must be filled or the canvas will
+not instantiate correctly.;
+#X text 10 114 The function of the final "0" is unknown to me (it is
+found in the textual entry for a canvas object in a .pd file) but can
+be safely left off without ill effects.;
+#X msg 9 191 cnv 15 200 100 myCanvas myCanvasR Canvas_Demo 20 12 2
+14 18 20;
+#X restore 314 63 pd canvas-creation-arguments;
+#X text 172 257 updated for Pd version 0.35;
#X connect 8 0 16 0;
#X connect 9 0 8 0;
#X connect 10 0 18 0;