aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoão Pais <jmmmp@users.sourceforge.net>2010-07-09 08:32:33 +0000
committerJoão Pais <jmmmp@users.sourceforge.net>2010-07-09 08:32:33 +0000
commitefed3833da03cda6df11163e2ffccc52072ba099 (patch)
treea7b1d77621f87abe3222edabb7bee5d64d241cab
parentd89ca0fc9273e9d82f5be5bf175db38e2dbb53d8 (diff)
svn path=/trunk/abstractions/jmmmp/; revision=13700
-rw-r--r--array+.pd204
-rw-r--r--array-edit.pd1532
-rw-r--r--bezier-help.pd692
-rw-r--r--bezier.pd474
4 files changed, 2144 insertions, 758 deletions
diff --git a/array+.pd b/array+.pd
new file mode 100644
index 0000000..78c3b5d
--- /dev/null
+++ b/array+.pd
@@ -0,0 +1,204 @@
+#N struct 1015-graph float x float y float dist float resol float width
+float stres array 1015-boxes 1015-box;
+#N struct 1015-box float y float width;
+#N canvas 330 25 920 794 10;
+#N canvas 651 507 450 300 \$0-box 0;
+#X obj 40 83 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1
+;
+#X obj 22 26 struct \$0-box float y float width;
+#X obj 28 114 drawpolygon 0 2 0 0 width 0;
+#X connect 0 0 2 0;
+#X restore 753 114 pd \$0-box;
+#N canvas 600 79 615 150 \$0-graph 1;
+#X obj 19 21 struct \$0-graph float x float y float dist float resol
+float width float stres array \$0-boxes \$0-box;
+#X obj 30 100 plot -y y(0:4)(4:0)(1) \$0-boxes 0 0 0 0 dist;
+#X restore 753 134 pd \$0-graph;
+#X obj 20 203 pointer;
+#X obj 107 454 setsize \$0-graph \$0-boxes;
+#X obj 119 163 pointer;
+#X obj 119 123 \$0;
+#X obj 124 424 set \$0-graph dist;
+#X obj 124 404 expr 10/$f1;
+#X obj 133 534 element \$0-graph \$0-boxes;
+#X msg 139 96 clear;
+#X obj 20 183 append \$0-graph x;
+#X obj 40 554 set \$0-box width;
+#X obj 40 424 until;
+#X obj 40 444 f+;
+#X obj 40 404 t f b f;
+#X obj 79 484 expr 10/$f1;
+#X obj 40 504 f;
+#X obj 40 464 t b f;
+#X obj 20 163 0;
+#X obj 98 46 t b b b b;
+#X obj 464 144 element \$0-graph \$0-boxes;
+#X obj 464 164 get \$0-box y;
+#X msg 149 76 donecanvasdialog 1 -1 2 0 0 10 4 100 70 0 0;
+#X obj 511 536 element \$0-graph \$0-boxes;
+#X obj 442 466 until;
+#X obj 442 486 f+;
+#X obj 442 506 t b f;
+#X obj 442 556 set \$0-box y;
+#X obj 442 426 f;
+#X obj 442 526 0;
+#X obj 90 374 t f f f f;
+#X obj 442 446 t f b;
+#X obj 98 25 loadbang;
+#X obj 611 124 r \$0-pointer-aux;
+#X text 356 14 komisches workaround \, weil gop nicht richtig funktioniert
+;
+#X obj 175 28 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X obj 51 334 \$2;
+#N canvas 0 0 450 300 (subpatch) 0;
+#X array array1 100 float 3;
+#A 0 0.157144 0.17143 0.17143 0.17143 0.17143 0.17143 0.17143 0.17143
+0.17143 0.17143 0.17143 0.17143 0.17143 0.185715 0.228573 0.242859
+0.261907 0.280954 0.300002 0.328574 0.34286 0.361907 0.380955 0.400003
+0.414289 0.44286 0.457146 0.471432 0.485718 0.500004 0.528575 0.542861
+0.571433 0.585719 0.600004 0.61429 0.657148 0.671433 0.685719 0.685719
+0.685719 0.700005 0.700005 0.700005 0.692862 0.685719 0.671433 0.66429
+0.657148 0.628576 0.600004 0.571433 0.542861 0.521432 0.500004 0.485718
+0.471432 0.44286 0.433336 0.423812 0.414289 0.407146 0.400003 0.39286
+0.385717 0.378574 0.371431 0.364288 0.357145 0.353574 0.350002 0.346431
+0.34286 0.34286 0.342859 0.338098 0.333336 0.328574 0.321431 0.314288
+0.300002 0.300002 0.27143 0.228573 0.17143 0.157144 0.128572 0.100001
+0.0857147 0.0428572 0.0285714 -0.0428577 -0.100001 0.0857148 0.0833339
+0.0809529 0.0785719 0.076191 0.07381 0.071429;
+#X coords 0 1 99 -1 200 140 1;
+#X restore 707 269 graph;
+#X msg 730 418 \; array1 0 1 1 1 1 -1 -1 -1;
+#X obj 51 354 moses 1;
+#N canvas 35 70 367 459 \$0-array 0;
+#X scalar 1015-graph 0 0 0.5 0 0 2 \; 2.05714 0.5 \; 3.8 0.5 \; 3.7
+0.5 \; 3.3 0.5 \; 2.9 0.5 \; 2.7 0.5 \; 2.5 0.5 \; 2.3 0.5 \; 1.8 0.5
+\; 0.9 0.5 \; 0.1 0.5 \; 0 0.5 \; 0 0.5 \; 0.4 0.5 \; 1.7 0.5 \; 1.9
+0.5 \; 2.2 0.5 \; 1 0.5 \; 4 0.5 \; 3 0.5 \; \;;
+#X coords 0 0 10 4 100 70 1;
+#X restore 753 30 pd \$0-array;
+#X obj 149 116 s pd-\$0-array;
+#X msg 120 143 traverse pd-\$1-array \, bang;
+#X obj 20 223 s \$0-pointer-array;
+#X obj 565 506 r \$0-pointer-array;
+#X obj 187 504 r \$0-pointer-array;
+#X obj 312 246 inlet;
+#X text 449 124 [inlet];
+#X floatatom 21 303 5 0 0 0 - - -;
+#N canvas 55 71 450 300 list-populate 0;
+#X obj 26 19 inlet;
+#X obj 168 93 r \$0-reset-aux;
+#X obj 158 73 r \$0-reset;
+#X obj 201 251 element \$0-graph \$0-boxes;
+#X obj 132 201 f+;
+#X obj 132 271 set \$0-box y;
+#X obj 158 118 f;
+#X obj 158 138 t f b;
+#X obj 255 221 r \$0-pointer-array;
+#X obj 26 39 list split 1;
+#X obj 26 99 drip;
+#X obj 26 79 list;
+#X obj 26 59 t b f;
+#X obj 41 139 t b f;
+#X connect 0 0 9 0;
+#X connect 1 0 6 0;
+#X connect 2 0 6 0;
+#X connect 3 0 5 1;
+#X connect 4 0 3 0;
+#X connect 6 0 7 0;
+#X connect 7 1 4 1;
+#X connect 8 0 3 1;
+#X connect 9 0 12 0;
+#X connect 9 1 11 1;
+#X connect 10 0 13 0;
+#X connect 11 0 10 0;
+#X connect 12 0 11 0;
+#X connect 12 1 4 1;
+#X connect 13 0 4 0;
+#X connect 13 1 5 0;
+#X restore 365 286 pd list-populate;
+#X msg 372 246 10 -1 1 -1 0.5 -0.5 0.5 -0.2 0.2 -0.2 0.1 -0.1 0;
+#X obj 78 96 t b b b;
+#X obj 127 675 moses 1;
+#X obj 262 695 r \$0-pointer-array;
+#X obj 127 655 \$3;
+#X text 610 632 \$1 - array name;
+#X text 609 651 \$2 - array size;
+#X text 608 669 \$3 - step resolution;
+#X msg 127 695 1;
+#X obj 157 715 set \$0-graph stres;
+#X floatatom 84 646 5 0 0 0 - - -;
+#X text 97 735 usar uma variavel para o step nao e possivel???;
+#X obj 418 306 f;
+#X obj 418 326 outlet;
+#X obj 312 266 route resize list arraysize const;
+#X obj 442 396 t b f;
+#X text 482 396 const;
+#X text 448 217 read / write / rename / bounds / labels / ticks / gop-size
+;
+#X connect 2 0 43 0;
+#X connect 4 0 10 1;
+#X connect 5 0 42 0;
+#X connect 7 0 6 0;
+#X connect 8 0 11 1;
+#X connect 9 0 41 0;
+#X connect 10 0 2 0;
+#X connect 12 0 13 0;
+#X connect 13 0 17 0;
+#X connect 14 0 12 0;
+#X connect 14 1 13 1;
+#X connect 14 2 15 0;
+#X connect 15 0 16 1;
+#X connect 16 0 11 0;
+#X connect 17 0 16 0;
+#X connect 17 1 8 0;
+#X connect 18 0 10 0;
+#X connect 19 0 51 0;
+#X connect 19 1 5 0;
+#X connect 19 2 9 0;
+#X connect 19 3 22 0;
+#X connect 20 0 21 0;
+#X connect 22 0 41 0;
+#X connect 23 0 27 1;
+#X connect 24 0 25 0;
+#X connect 25 0 26 0;
+#X connect 26 0 29 0;
+#X connect 26 1 23 0;
+#X connect 28 0 31 0;
+#X connect 29 0 27 0;
+#X connect 30 0 14 0;
+#X connect 30 1 3 0;
+#X connect 30 2 7 0;
+#X connect 30 3 28 1;
+#X connect 31 0 24 0;
+#X connect 31 1 25 1;
+#X connect 32 0 19 0;
+#X connect 33 0 20 1;
+#X connect 35 0 19 0;
+#X connect 36 0 39 0;
+#X connect 36 0 62 1;
+#X connect 39 1 30 0;
+#X connect 42 0 4 0;
+#X connect 44 0 23 1;
+#X connect 45 0 8 1;
+#X connect 45 0 3 1;
+#X connect 45 0 6 1;
+#X connect 46 0 64 0;
+#X connect 48 0 36 0;
+#X connect 50 0 64 0;
+#X connect 51 0 54 0;
+#X connect 51 1 36 0;
+#X connect 51 2 18 0;
+#X connect 52 0 58 0;
+#X connect 52 1 59 0;
+#X connect 53 0 59 1;
+#X connect 54 0 52 0;
+#X connect 58 0 59 0;
+#X connect 60 0 52 0;
+#X connect 62 0 63 0;
+#X connect 64 0 36 0;
+#X connect 64 1 49 0;
+#X connect 64 2 62 0;
+#X connect 64 3 65 0;
+#X connect 65 0 28 0;
+#X connect 65 1 29 0;
diff --git a/array-edit.pd b/array-edit.pd
index d31c728..1f1ca67 100644
--- a/array-edit.pd
+++ b/array-edit.pd
@@ -1,758 +1,774 @@
-#N canvas 68 28 402 755 10;
-#N canvas 73 134 639 485 inside 0;
-#X msg 287 128 const \$1;
-#X obj 15 159 r \$0-resize;
-#X msg 64 199 resize \$1;
-#X obj 15 68 arraysize;
-#X obj 15 28 r \$0-arr;
-#X msg 15 48 set \$1 \, bang;
-#X msg 15 98 set \$1;
-#X obj 89 97 s \$0-arrsize;
-#X obj 15 119 s \$0-resize-i;
-#X obj 287 108 r \$0-const;
-#X text 21 9 Resize;
-#X text 293 86 Constant;
-#X obj 531 104 tabread;
-#X obj 541 64 r \$0-arr;
-#X msg 541 84 set \$1;
-#X obj 531 34 r \$0-ind_i;
-#X obj 531 124 s \$0-ind_t-i;
-#X obj 531 214 s \$0-ind_i-i;
-#X msg 531 194 range 0 \$1;
-#X obj 531 154 r \$0-arrsize;
-#X obj 531 174 - 1;
-#X text 532 12 Index test;
-#X msg 436 59 rename \$1;
-#X text 445 18 Rename;
-#X obj 436 39 r \$0-rename;
-#X obj 446 129 s \$0-arr-i;
-#X msg 446 109 symbol \$1;
-#X obj 287 38 r \$0-norml;
-#X text 293 16 Normalize;
-#X msg 287 58 normalize \$1;
-#N canvas 335 713 293 221 x-ticks 0;
-#X obj 103 16 r \$0-arrsize;
-#X obj 143 86 /;
-#X obj 143 56 t b f;
-#X obj 115 126 pack f f f;
-#X obj 172 106 expr 100/$f1;
-#X obj 115 176 outlet;
-#X obj 143 36 r \$0-xtick-div;
-#X obj 172 86 r \$0-xtick-prop;
-#X obj 35 86 r \$0-xtick-send;
-#X msg 115 146 xticks \$1 \$2 \$3;
-#X connect 0 0 1 0;
-#X connect 1 0 3 1;
-#X connect 2 0 1 0;
-#X connect 2 1 1 1;
-#X connect 3 0 9 0;
-#X connect 4 0 3 2;
-#X connect 6 0 2 0;
-#X connect 7 0 4 0;
-#X connect 8 0 3 0;
-#X connect 9 0 5 0;
-#X coords 0 0 1 1 201 75 0;
-#X restore 199 197 pd x-ticks;
-#X text 150 197 X-ticks;
-#X text 150 217 X-label;
-#N canvas 274 695 314 213 bounds 0;
-#X msg 41 142 bounds \$1 \$2 \$3 \$4;
-#X obj 41 122 pack f f f f;
-#X obj 193 125 r \$0-arrsize;
-#X obj 34 62 f;
-#X obj 41 172 outlet;
-#X obj 49 42 r \$0-bound-x;
-#X obj 87 82 r \$0-bound-xx;
-#X obj 193 165 s \$0-bound-xx-i;
-#X obj 64 62 r \$0-bound-y;
-#X obj 110 102 r \$0-bound-yy;
-#X obj 34 22 r \$0-bound-send;
-#X obj 193 145 - 1;
-#X connect 0 0 4 0;
-#X connect 1 0 0 0;
-#X connect 2 0 11 0;
-#X connect 3 0 1 0;
-#X connect 5 0 3 1;
-#X connect 6 0 1 2;
-#X connect 8 0 1 1;
-#X connect 9 0 1 3;
-#X connect 10 0 3 0;
-#X connect 11 0 7 0;
-#X coords 0 0 1 1 116 75 0;
-#X restore 199 137 pd bounds;
-#X text 153 137 Bounds;
-#N canvas 0 0 304 224 send 0;
-#X obj 197 153 send13 foo;
-#X obj 207 103 r \$0-arr;
-#X msg 207 123 set \$1;
-#X obj 177 63 inlet;
-#X obj 64 183 s \$0-command;
-#X obj 64 133 drip;
-#X msg 124 153 set;
-#X obj 64 103 t a b;
-#X msg 64 153 add2 \$1;
-#X obj 124 123 loadbang;
-#X connect 1 0 2 0;
-#X connect 2 0 0 0;
-#X connect 3 0 0 0;
-#X connect 3 0 7 0;
-#X connect 5 0 8 0;
-#X connect 6 0 4 0;
-#X connect 7 0 5 0;
-#X connect 7 1 6 0;
-#X connect 8 0 4 0;
-#X connect 9 0 6 0;
-#X restore 279 297 pd send;
-#N canvas 595 204 275 570 x-label 0;
-#X obj 130 279 r \$0-arrsize;
-#X obj 96 499 prepent xlabel;
-#X obj 42 39 - 1.2;
-#X obj 96 479 prepent;
-#X obj 61 299 expr $f2/$f1;
-#X obj 56 399 serialize;
-#X obj 22 340 until;
-#X obj 73 369 +;
-#X obj 46 369 0;
-#X obj 61 329 t b f;
-#X obj 61 349 0;
-#X obj 42 249 t f f f;
-#X obj 61 279 - 1;
-#X obj 42 109 moses 2;
-#X obj 42 89 r \$0-xlabel-wv;
-#X obj 42 59 s \$0-xlabel-dist-i;
-#X obj 42 19 loadbang;
-#X obj 96 529 outlet;
-#X obj 42 229 f;
-#X obj 108 459 t b f;
-#X obj 91 129 t b f;
-#X obj 116 197 spigot 0;
-#X obj 141 167 1;
-#X obj 171 147 r \$0-arr;
-#X msg 171 167 0;
-#X obj 108 439 r \$0-xlabel-dist;
-#X connect 0 0 4 1;
-#X connect 1 0 17 0;
-#X connect 2 0 15 0;
-#X connect 3 0 1 0;
-#X connect 4 0 9 0;
-#X connect 5 0 3 0;
-#X connect 6 0 8 0;
-#X connect 7 0 8 1;
-#X connect 8 0 7 0;
-#X connect 8 0 5 0;
-#X connect 9 0 10 0;
-#X connect 9 1 7 1;
-#X connect 10 0 8 1;
-#X connect 11 0 6 0;
-#X connect 11 1 12 0;
-#X connect 11 2 5 1;
-#X connect 12 0 4 0;
-#X connect 13 1 20 0;
-#X connect 14 0 13 0;
-#X connect 16 0 2 0;
-#X connect 18 0 11 0;
-#X connect 19 0 21 0;
-#X connect 19 1 3 1;
-#X connect 20 0 22 0;
-#X connect 20 1 18 0;
-#X connect 21 0 18 0;
-#X connect 22 0 21 1;
-#X connect 23 0 24 0;
-#X connect 24 0 21 1;
-#X connect 25 0 19 0;
-#X coords 0 0 1 1 195 60 0;
-#X restore 199 217 pd x-label;
-#X text 150 177 Y-label;
-#X text 148 157 Y-ticks;
-#N canvas 906 167 297 695 y-label 0;
-#X obj 106 609 prepent;
-#X obj 66 529 serialize;
-#X obj 32 430 until;
-#X obj 83 459 +;
-#X obj 56 459 0;
-#X obj 71 419 t b f;
-#X obj 71 439 0;
-#X obj 52 269 t f f f;
-#X obj 71 369 - 1;
-#X obj 52 109 moses 2;
-#X obj 52 19 loadbang;
-#X obj 106 659 outlet;
-#X obj 52 59 s \$0-ylabel-dist-i;
-#X obj 52 89 r \$0-ylabel-wv;
-#X obj 118 569 r \$0-ylabel-dist;
-#X obj 106 629 prepent ylabel;
-#X obj 52 39 - 6;
-#X obj 140 339 t b f;
-#X obj 140 369 -;
-#X obj 100 299 r \$0-bound-y;
-#X obj 140 319 r \$0-bound-yy;
-#X obj 81 489 r \$0-bound-yy;
-#X obj 71 389 expr $f2/$f1;
-#X obj 66 509 +;
-#X obj 52 249 f;
-#X obj 118 589 t b f;
-#X obj 91 129 t b f;
-#X obj 136 207 spigot 0;
-#X obj 161 177 1;
-#X obj 191 157 r \$0-arr;
-#X msg 191 177 0;
-#X connect 0 0 15 0;
-#X connect 1 0 0 0;
-#X connect 2 0 4 0;
-#X connect 3 0 4 1;
-#X connect 4 0 3 0;
-#X connect 4 0 23 0;
-#X connect 5 0 6 0;
-#X connect 5 1 3 1;
-#X connect 6 0 4 1;
-#X connect 7 0 2 0;
-#X connect 7 1 8 0;
-#X connect 7 2 1 1;
-#X connect 8 0 22 0;
-#X connect 9 1 26 0;
-#X connect 10 0 16 0;
-#X connect 13 0 9 0;
-#X connect 14 0 25 0;
-#X connect 15 0 11 0;
-#X connect 16 0 12 0;
-#X connect 17 0 18 0;
-#X connect 17 1 18 1;
-#X connect 18 0 22 1;
-#X connect 19 0 18 0;
-#X connect 20 0 17 0;
-#X connect 21 0 23 1;
-#X connect 22 0 5 0;
-#X connect 23 0 1 0;
-#X connect 24 0 7 0;
-#X connect 25 0 27 0;
-#X connect 25 1 0 1;
-#X connect 26 0 28 0;
-#X connect 26 1 24 0;
-#X connect 27 0 24 0;
-#X connect 28 0 27 1;
-#X connect 29 0 30 0;
-#X connect 30 0 27 1;
-#X coords 0 0 1 1 195 60 0;
-#X restore 199 177 pd y-label;
-#N canvas 524 614 293 249 y-ticks 0;
-#X obj 133 126 /;
-#X obj 133 96 t b f;
-#X obj 105 166 pack f f f;
-#X obj 162 146 expr 100/$f1;
-#X obj 105 216 outlet;
-#X obj 25 126 r \$0-ytick-send;
-#X msg 105 186 yticks \$1 \$2 \$3;
-#X obj 162 126 r \$0-ytick-prop;
-#X obj 133 76 r \$0-ytick-div;
-#X obj 93 56 t b f;
-#X obj 93 86 -;
-#X obj 53 16 r \$0-bound-y;
-#X obj 93 36 r \$0-bound-yy;
-#X connect 0 0 2 1;
-#X connect 1 0 0 0;
-#X connect 1 1 0 1;
-#X connect 2 0 6 0;
-#X connect 3 0 2 2;
-#X connect 5 0 2 0;
-#X connect 6 0 4 0;
-#X connect 7 0 3 0;
-#X connect 8 0 1 0;
-#X connect 9 0 10 0;
-#X connect 9 1 10 1;
-#X connect 10 0 0 0;
-#X connect 11 0 10 0;
-#X connect 12 0 9 0;
-#X coords 0 0 1 1 201 75 0;
-#X restore 199 157 pd y-ticks;
-#X obj 14 338 r \$0-f-writ;
-#X msg 14 358 \; pd-function-writer vis 1;
-#X msg 14 298 \; pd-segment-draw vis 1;
-#X obj 14 278 r \$0-s-draw;
-#X obj 15 179 moses 1;
-#X obj 279 317 dsp01 1;
-#X text 18 434 adicionar toggle para com/sem wraparound.;
-#X obj 456 89 inlet;
-#X connect 0 0 35 0;
-#X connect 1 0 45 0;
-#X connect 2 0 35 0;
-#X connect 3 0 6 0;
-#X connect 3 0 7 0;
-#X connect 4 0 5 0;
-#X connect 5 0 3 0;
-#X connect 6 0 8 0;
-#X connect 9 0 0 0;
-#X connect 12 0 16 0;
-#X connect 13 0 14 0;
-#X connect 14 0 12 0;
-#X connect 15 0 12 0;
-#X connect 18 0 17 0;
-#X connect 19 0 20 0;
-#X connect 20 0 18 0;
-#X connect 22 0 35 0;
-#X connect 24 0 22 0;
-#X connect 24 0 26 0;
-#X connect 26 0 25 0;
-#X connect 27 0 29 0;
-#X connect 29 0 35 0;
-#X connect 30 0 35 0;
-#X connect 33 0 35 0;
-#X connect 36 0 35 0;
-#X connect 39 0 35 0;
-#X connect 40 0 35 0;
-#X connect 41 0 42 0;
-#X connect 44 0 43 0;
-#X connect 45 1 2 0;
-#X connect 45 1 7 0;
-#X connect 48 0 26 0;
-#X restore 32 695 pd inside;
-#X obj 290 310 cnv 15 100 100 empty empty empty 20 12 0 14 -191407
--66577 0;
-#X floatatom 307 367 5 0 0 0 - #0-bound-x-i #0-bound-x;
-#X floatatom 327 347 5 0 0 0 - #0-bound-y-i #0-bound-y;
-#X floatatom 347 367 5 0 0 0 - #0-bound-xx-i #0-bound-xx;
-#X floatatom 327 387 5 0 0 0 - #0-bound-yy-i #0-bound-yy;
-#X text 294 312 Graphic bounds;
-#X text 293 365 X;
-#X text 328 328 Y;
-#X obj 307 347 bng 13 250 50 0 \$0-bound-send \$0-bound-send-i empty
-17 7 0 10 -228856 -1 -1;
-#X obj 12 398 cnv 15 265 65 empty empty empty 20 12 0 14 -191407 -66577
-0;
-#X floatatom 17 418 5 2 100000 0 - #0-xlabel-wv-i #0-xlabel-wv;
-#X text 108 418 How many numbers in total;
-#X floatatom 17 438 6 0 0 0 - #0-xlabel-dist-i #0-xlabel-dist;
-#X text 108 438 Distance (as y value);
-#X obj 12 310 cnv 15 265 80 empty empty empty 20 12 0 14 -191407 -66577
-0;
-#X floatatom 18 329 5 0 0 0 - #0-xtick-div-i #0-xtick-div;
-#X floatatom 18 349 5 0 0 0 - #0-xtick-prop-i #0-xtick-prop;
-#X obj 25 369 bng 14 250 50 0 \$0-xtick-send \$0-xtick-send-i empty
-17 7 0 10 -228856 -1 -1;
-#X text 108 369 Send format;
-#X text 108 349 Proportion of big ticks (%);
-#X text 108 329 How many divisions in total;
-#X obj 11 186 cnv 15 135 25 empty empty empty 20 12 0 14 -191407 -66577
-0;
-#X floatatom 15 191 5 0 0 0 - #0-norml-i #0-norml;
-#X text 50 191 Normalize to x;
-#X obj 197 151 cnv 15 115 60 empty empty empty 20 12 0 14 -191407 -66577
-0;
-#X floatatom 202 189 10 0 0 0 - #0-ind_t-i #0-ind_t;
-#X text 199 150 Index test;
-#X text 268 169 Index;
-#X text 268 188 Value;
-#X obj 12 216 cnv 15 170 25 empty empty empty 20 12 0 14 -191407 -66577
-0;
-#X floatatom 16 221 5 0 0 0 - #0-const-i #0-const;
-#X text 51 221 Set a constant value;
-#X obj 11 156 cnv 15 145 25 empty empty empty 20 12 0 14 -191407 -66577
-0;
-#X floatatom 15 160 10 0 0 0 - #0-resize-i #0-resize;
-#X text 82 160 Size/Resize;
-#X obj 71 52 cnv 15 260 60 empty empty empty 20 12 0 14 -241339 -66577
-0;
-#X symbolatom 144 61 30 0 0 0 - #0-arr-i #0-arr;
-#X symbolatom 144 89 30 0 0 0 - #0-rename-i #0-rename;
-#X text 74 89 Rename it;
-#X text 74 61 Array name;
-#X obj 117 8 cnv 15 160 30 empty empty ARRAY-EDITOR 8 16 0 20 -191407
--33289 0;
-#X obj 12 255 cnv 15 60 20 empty empty Display 5 11 0 12 -191407 -33289
-0;
-#X obj 202 169 nbx 5 16 0 119 0 0 \$0-ind_i \$0-ind_i-i empty 0 -8
-0 10 -228856 -1 -1 0 256;
-#X obj 12 495 r \$0-command;
-#X msg 12 515;
-#X floatatom 68 329 5 0 0 0 - #0-ytick-div-i #0-ytick-div;
-#X floatatom 68 349 5 0 0 0 - #0-ytick-prop-i #0-ytick-prop;
-#X obj 75 369 bng 14 250 50 0 \$0-ytick-send \$0-ytick-send-i empty
-17 7 0 10 -228856 -1 -1;
-#X floatatom 67 418 5 2 100000 0 - #0-ylabel-wv-i #0-ylabel-wv;
-#X floatatom 67 438 6 0 0 0 - #0-ylabel-dist-i #0-ylabel-dist;
-#X text 23 310 X / Y Ticks;
-#X text 25 398 X / Y Label;
-#N canvas 505 36 496 590 function-writer 0;
-#X obj 27 231 tabwrite~ \$1;
-#X obj 27 122 bng 15 250 50 0 empty empty Calculate 21 8 0 12 -228856
--1 -1;
-#X text 15 51 1 - Edit your formula below;
-#X text 13 330 Some formula examples:;
-#X text 17 398 - descending line;
-#X obj 139 379 expr~ $v1;
-#X obj 139 399 expr~ 1-$v1;
-#X obj 139 439 expr~ pow($v1 \, .5);
-#X text 17 438 - logarithmic line;
-#X text 17 418 - exponential line;
-#X obj 139 419 expr~ pow($v1 \, 2);
-#X text 13 350 Lines;
-#X floatatom 279 150 5 0 0 0 - - -;
-#X text 14 8 The function writer writes a funcion in your array. It
-analyses the sample rate and arraysize \, so that the wave fits perfectly
-with the array. To create a new waveform:;
-#X text 131 103 Edit your formula here \, or copy-paste from the ones
-below. The number field is to connect with the gaussian formula \,
-or with any formulas that need extra argument(s).;
-#N canvas 0 0 450 372 calc 0;
-#X obj 187 38 inlet;
-#X obj 226 78 samplerate~;
-#X obj 127 278 r \$0-arr;
-#X obj 197 298 phasor~;
-#X obj 226 238 /;
-#X msg 127 298 set \$1;
-#X obj 206 258 0;
-#X obj 241 98 r \$0-arrsize;
-#X obj 187 58 t a b b;
-#X obj 187 338 outlet;
-#X obj 197 318 outlet~;
-#X obj 241 218 +;
-#X obj 256 118 r \$0-wrapar;
-#X obj 256 138 * -1;
-#X obj 241 188 f;
-#X obj 256 158 t b f;
-#X connect 0 0 8 0;
-#X connect 1 0 4 0;
-#X connect 2 0 5 0;
-#X connect 3 0 10 0;
-#X connect 4 0 3 0;
-#X connect 5 0 9 0;
-#X connect 6 0 3 1;
-#X connect 7 0 14 0;
-#X connect 8 0 9 0;
-#X connect 8 1 6 0;
-#X connect 8 2 1 0;
-#X connect 11 0 4 1;
-#X connect 12 0 13 0;
-#X connect 13 0 15 0;
-#X connect 14 0 11 0;
-#X connect 15 0 14 0;
-#X connect 15 1 11 1;
-#X restore 27 140 pd calc;
-#X text 70 543 If there's any function that you think should be here
-\, tell me about it at jmmmpais@googlemail.com;
-#N canvas 0 0 685 457 (subpatch) 0;
-#X array array2 120 float 0;
-#X coords 0 1 119 0 120 90 1;
-#X restore 311 354 graph;
-#X obj 286 292 s \$0-arr-i;
-#X text 50 254 To try out the waveforms below \, first choose this
-array as the array to be edited by clicking on:;
-#X msg 286 272 symbol array2;
-#X text 15 71 2 - Bang "Calculate";
-#X text 16 378 - ascending line;
-#N canvas 232 298 502 383 panning-curves 0;
-#X obj 380 12 switch~ 0;
-#X text 17 138 - simple (triangular);
-#X text 12 19 Panning curves;
-#X obj 149 139 expr~ 1-$v1;
-#X text 11 80 Some curves need the Wraparound option \, so that the
-final value is as close as possible.;
-#X obj 149 159 expr~ pow(1-$v1 \, .5);
-#X text 17 158 - square root;
-#X obj 149 179 expr~ cos($v1*0.5*3.14159);
-#X text 17 178 - sinus;
-#X obj 149 199 expr~ ((sqrt(2)/2) * (cos(($v1) * (4 * atan(1)) - (4
-* atan(1)/2)) - sin(($v1) * (4 * atan(1)) - (4 * atan(1)/2))))*0.5+0.5
-;
-#X text 16 198 - "equal power";
-#X text 11 40 These curves are for the left side. To get the right
-side value \, just read the table at the mirror point: [arraysize]-[index]-1.
-;
-#X text 17 328 Formulas taken from Csound Ezine/Jamie Bullock \, Georg
-Holzmann.;
-#X obj 149 265 expr~ (cos($v1)-sin($v1))*(sqrt(2)/2);
-#X obj 149 245 expr~ ($v1*3.14159/2)-3.14159/4;
-#X text 16 245 - tangent law;
-#X connect 14 0 13 0;
-#X restore 23 478 pd panning-curves;
-#N canvas 148 141 450 259 trigonometry/windowing 0;
-#X text 17 48 - sine wave;
-#X obj 139 49 expr~ sin($v1*3.14159*2);
-#X obj 139 89 expr~ 0.5*(1-cos($v1*3.14159*2));
-#X text 17 68 - cosine window;
-#X obj 139 69 expr~ sin($v1*3.14159);
-#X obj 139 109 expr~ 0.53836-0.46164*cos($v1*3.14159*2);
-#X text 17 108 - hamming window;
-#X text 17 88 - hanning window;
-#X text 17 128 - connes window;
-#X obj 139 129 expr~ pow(1-pow($v1*2-1 \, 2) \, 2);
-#X obj 139 149 expr~ 1-abs($v1*2-1);
-#X text 17 148 - welch window;
-#X text 17 168 - gaussian window;
-#X obj 137 170 expr~ pow(2 \, pow((($v1*2-1)/$f2) \, 2)*-1);
-#X text 17 208 - lanczos window;
-#X obj 139 209 expr~ sin(($v1*2-1)*3.14159)/(($v1*2-1)*3.14159);
-#X text 12 19 Trigonometry/Windowing formulas;
-#X obj 380 12 switch~ 0;
-#X text 134 188 (0 < $f2 < 1);
-#X restore 23 508 pd trigonometry/windowing;
-#X obj 67 181 expr~ pow(2 \, pow((($v1*2-1)/$f2) \, 2)*-1);
-#X connect 1 0 15 0;
-#X connect 12 0 25 1;
-#X connect 15 0 0 0;
-#X connect 15 1 25 0;
-#X connect 20 0 18 0;
-#X connect 25 0 0 0;
-#X restore 32 639 pd function-writer;
-#X obj 12 128 cnv 15 60 20 empty empty Basic 5 11 0 12 -191407 -33289
-0;
-#X text 12 277 Attention: to edit the Y fields \, you must first define
-the Y values in Graphic Bounds.;
-#N canvas 266 36 411 747 segment-draw 0;
-#X msg 75 356 0 0 \, -1.5 15 \, 1 50 \, 0.75 75 \, 0 100;
-#X text 11 528 relative index: 0%-100%;
-#N canvas 545 59 692 802 segment-function-draw 0;
-#X obj 173 33 inlet;
-#X obj 92 133 r \$0-arrsize;
-#X obj 77 153 *;
-#X obj 77 113 * 0.01;
-#X obj 344 21 inlet;
-#X text 168 9 relativ;
-#X text 389 16 absolut;
-#X obj 77 173 i;
-#X obj 219 573 samplerate~;
-#X obj 69 682 r \$0-arr;
-#X obj 219 593 /;
-#X msg 69 702 set \$1;
-#X obj 189 644 0;
-#X obj 143 293 -;
-#X obj 158 273 f;
-#X obj 143 243 t f f b;
-#X msg 130 583 start \$1;
-#X obj 170 553 t f b b;
-#X obj 77 193 t f f;
-#X obj 27 283 moses;
-#X obj 54 263 r \$0-arrsize;
-#X obj 104 213 moses 1;
-#X obj 152 682 phasor~;
-#X obj 130 772 tabwrite~ \$1;
-#X obj 295 627 del;
-#X obj 295 607 * 1.01;
-#N canvas 77 335 450 302 blocksize 0;
-#X obj 174 211 outlet;
-#X obj 164 31 inlet;
-#X obj 164 51 samplerate~;
-#X obj 174 171 /;
-#X obj 174 191 * 1000;
-#X obj 179 121 iem_blocksize~;
-#X obj 164 141 f;
-#X obj 164 71 t b f;
-#X obj 179 101 sig~;
-#X connect 1 0 2 0;
-#X connect 2 0 7 0;
-#X connect 3 0 4 0;
-#X connect 4 0 0 0;
-#X connect 5 0 6 1;
-#X connect 6 0 3 0;
-#X connect 7 0 6 0;
-#X connect 7 1 3 1;
-#X connect 8 0 5 0;
-#X restore 295 587 pd blocksize;
-#X obj 219 613 t b f;
-#X obj 179 83 swap;
-#X obj 151 742 +~;
-#X text 327 629 each segment is written after a delay of 1 block. maybe
-not the best way \, but the only one using ~ ?;
-#X obj 152 722 *~;
-#X obj 170 493 textfile;
-#X obj 310 155 f;
-#X obj 275 238 route list;
-#X obj 275 208 list prepend;
-#X obj 344 188 spigot 0;
-#X msg 374 168 0;
-#X msg 404 168 1;
-#X obj 275 125 t f b f b;
-#X obj 275 258 unpack;
-#X obj 304 318 -;
-#X obj 294 298 f;
-#X obj 275 278 t f b f;
-#X obj 170 443 prepent add;
-#X msg 104 473 clear;
-#X msg 205 467 rewind \, bang;
-#X obj 143 373 swap;
-#X obj 143 353 pack;
-#X obj 205 139 t b b b;
-#X obj 143 403 pack f f f f f;
-#X obj 170 523 unpack f f f f f;
-#X obj 173 53 zexy/unpack f f f;
-#X obj 254 413 0;
-#X obj 143 423 t b a;
-#X obj 152 702 expr~ pow($v1 \, exp($f2*5*log(2)));
-#X text 280 523 dauer \, anfangspunkt \, anfangswert \, skalierung
-\, exp-curve;
-#X obj 350 71 swap;
-#X obj 344 41 zexy/unpack f f f;
-#X msg 323 471 print;
-#X connect 0 0 52 0;
-#X connect 1 0 2 1;
-#X connect 2 0 7 0;
-#X connect 3 0 2 0;
-#X connect 4 0 58 0;
-#X connect 7 0 18 0;
-#X connect 8 0 10 0;
-#X connect 9 0 11 0;
-#X connect 10 0 27 0;
-#X connect 11 0 23 0;
-#X connect 12 0 22 1;
-#X connect 13 0 48 0;
-#X connect 14 0 13 1;
-#X connect 15 0 13 0;
-#X connect 15 1 14 1;
-#X connect 15 2 14 0;
-#X connect 16 0 23 0;
-#X connect 17 0 16 0;
-#X connect 17 1 12 0;
-#X connect 17 2 8 0;
-#X connect 18 0 19 0;
-#X connect 18 1 21 0;
-#X connect 19 0 48 1;
-#X connect 19 1 49 0;
-#X connect 20 0 19 1;
-#X connect 21 0 14 1;
-#X connect 21 0 45 0;
-#X connect 21 1 15 0;
-#X connect 22 0 55 0;
-#X connect 24 0 32 0;
-#X connect 25 0 24 0;
-#X connect 26 0 25 0;
-#X connect 27 0 26 0;
-#X connect 27 1 22 0;
-#X connect 28 0 3 0;
-#X connect 28 1 39 0;
-#X connect 29 0 23 0;
-#X connect 31 0 29 0;
-#X connect 32 0 51 0;
-#X connect 33 0 36 0;
-#X connect 34 0 40 0;
-#X connect 35 0 34 0;
-#X connect 36 0 35 1;
-#X connect 37 0 36 1;
-#X connect 38 0 36 1;
-#X connect 39 0 35 0;
-#X connect 39 1 38 0;
-#X connect 39 2 33 1;
-#X connect 39 3 33 0;
-#X connect 40 0 43 0;
-#X connect 40 1 42 1;
-#X connect 41 0 50 3;
-#X connect 42 0 41 0;
-#X connect 43 0 50 2;
-#X connect 43 1 42 0;
-#X connect 43 2 41 1;
-#X connect 44 0 32 0;
-#X connect 45 0 32 0;
-#X connect 46 0 32 0;
-#X connect 47 0 50 0;
-#X connect 47 1 50 1;
-#X connect 48 0 47 0;
-#X connect 49 0 46 0;
-#X connect 49 1 35 1;
-#X connect 49 2 37 0;
-#X connect 50 0 54 0;
-#X connect 51 0 17 0;
-#X connect 51 1 10 1;
-#X connect 51 2 29 1;
-#X connect 51 3 31 1;
-#X connect 51 4 55 1;
-#X connect 52 0 28 0;
-#X connect 52 1 28 1;
-#X connect 52 2 50 4;
-#X connect 53 0 50 4;
-#X connect 54 0 53 0;
-#X connect 54 1 44 0;
-#X connect 55 0 31 0;
-#X connect 57 0 18 0;
-#X connect 57 1 39 0;
-#X connect 58 0 57 0;
-#X connect 58 1 57 1;
-#X connect 58 2 50 4;
-#X connect 59 0 32 0;
-#X restore 45 509 pd segment-function-draw;
-#X msg 55 316 0 0 \, 1 50 \, 0 100;
-#X text 20 196 Attention: You must always define an array completely
-\, from the first to last indexes (be it in relative or absolute indexes).
-;
-#X text 181 529 absolute index: 0-arraysize;
-#X text 27 692 Note: Each segment is written after a 1-block delay.
-If you're thinking about using this tool for live audio \, make sure
-you don't get side effects due to this technique.;
-#X text 21 87 - index Value;
-#X text 21 107 - duration - in percentage of total duration (left inlet)
-or in absolute indexes (right inlet);
-#X text 20 56 Segment draw: Define each breakpoint with 2 or 3 indexes.
-Each breakpoint is separated by commas:;
-#N canvas 0 0 668 457 (subpatch) 0;
-#X array array1 120 float 0;
-#X coords 0 1 119 -1 120 90 1;
-#X restore 145 581 graph;
-#X obj 256 282 s \$0-arr-i;
-#X msg 256 262 symbol array1;
-#X obj 147 21 cnv 15 95 20 empty empty Segment-draw 5 11 0 12 -191407
--33289 0;
-#X text 21 138 - curve steppness [-1 to 1]: 0 or missing for a straight
-line. 0 to 1 for exponential curve \, -1 to 0 for logarithmic curve.
-;
-#X text 164 315 normal wave;
-#X msg 64 336 0 0 \, 1 50 0.15 \, 0 100 -0.15;
-#X text 236 335 same wave \, but curved;
-#X text 20 244 To try out the waveforms below \, first choose this
-array as the array to be edited by clicking on:;
-#X text 83 376 more complex example;
-#X msg 164 433 0 0 \, 1 60 \, 0 120;
-#X msg 174 453 0 0 \, 1 60 0.15 \, 0 120 -0.15;
-#X msg 185 473 0 0 \, -1.5 18 \, 1 60 \, 0.75 90 \, 0 120;
-#X text 93 413 Same examples as above \, with absolute coordinates
-;
-#X connect 0 0 2 0;
-#X connect 3 0 2 0;
-#X connect 12 0 11 0;
-#X connect 16 0 2 0;
-#X connect 20 0 2 1;
-#X connect 21 0 2 1;
-#X connect 22 0 2 1;
-#X restore 32 596 pd segment-draw;
-#X obj 12 640 bng 15 250 50 0 \$0-f-writ \$0-f-writ-i empty 17 7 0
-10 -228856 -1 -1;
-#X obj 12 597 bng 15 250 50 0 \$0-s-draw \$0-s-draw-i empty 17 7 0
-10 -228856 -1 -1;
-#X text 32 576 Draw a wave shape through break points;
-#X text 32 619 Define a wave shape through its function;
-#X obj 12 549 cnv 15 100 20 empty empty Ploting.tools 5 11 0 12 -191407
--33289 0;
-#X text 94 685 (where everything works);
-#X text 12 474 You can copy the commands and paste them in your patch:
-;
-#X obj 32 675 inlet;
-#N canvas 0 0 426 446 license 0;
-#X text 8 47 All rights reserved.;
-#X text 8 227 The names of its contributors may not be used to endorse
-or promote products derived from this software without specific prior
-written permission.;
-#X text 8 87 Redistribution and use in source and binary forms \, with
-or without modification \, are permitted provided that the following
-conditions are met:;
-#X text 8 127 Redistributions of source code must retain the above
-copyright notice \, this list of conditions and the following disclaimer.
-;
-#X text 8 297 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES \, INCLUDING
-\, BUT NOT LIMITED TO \, THE IMPLIED WARRANTIES OF MERCHANTABILITY
-AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
-THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT \, INDIRECT
-\, INCIDENTAL \, SPECIAL \, EXEMPLARY \, OR CONSEQUENTIAL DAMAGES (INCLUDING
-\, BUT NOT LIMITED TO \, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES
-;
-#X text 8 167 Redistributions in binary form must reproduce the above
-copyright notice \, this list of conditions and the following disclaimer
-in the documentation and/or other materials provided with the distribution.
-;
-#X text 8 27 jmmmpais@googlemail.com;
-#X text 8 7 Copyright 2006 \, João Pais;
-#X restore 32 724 pd license;
-#X text 99 724 (C) 2009 João Pais - jmmmpais@googlemail.com;
-#X obj 197 216 cnv 15 187 25 empty empty empty 20 12 0 14 -191407 -66577
-0;
-#X obj 202 221 tgl 15 0 \$0-wrapar \$0-wrapar-i empty 17 7 0 10 -228856
--1 -1 0 1;
-#X text 221 220 Wraparound (last index ~0);
-#X connect 44 0 45 0;
-#X connect 64 0 0 0;
+#N canvas 68 28 402 755 10;
+#N canvas 202 330 639 485 inside 0;
+#X msg 287 128 const \$1;
+#X obj 15 159 r \$0-resize;
+#X msg 64 199 resize \$1;
+#X obj 15 68 arraysize;
+#X obj 15 28 r \$0-arr;
+#X msg 15 48 set \$1 \, bang;
+#X msg 15 98 set \$1;
+#X obj 89 97 s \$0-arrsize;
+#X obj 15 119 s \$0-resize-i;
+#X obj 287 108 r \$0-const;
+#X text 21 9 Resize;
+#X text 293 86 Constant;
+#X obj 531 104 tabread;
+#X obj 541 64 r \$0-arr;
+#X msg 541 84 set \$1;
+#X obj 531 34 r \$0-ind_i;
+#X obj 531 124 s \$0-ind_t-i;
+#X obj 531 214 s \$0-ind_i-i;
+#X msg 531 194 range 0 \$1;
+#X obj 531 154 r \$0-arrsize;
+#X obj 531 174 - 1;
+#X text 532 12 Index test;
+#X msg 436 59 rename \$1;
+#X text 445 18 Rename;
+#X obj 436 39 r \$0-rename;
+#X obj 446 179 s \$0-arr-i;
+#X msg 446 159 symbol \$1;
+#X obj 287 38 r \$0-norml;
+#X text 293 16 Normalize;
+#X msg 287 58 normalize \$1;
+#N canvas 335 713 293 221 x-ticks 0;
+#X obj 103 16 r \$0-arrsize;
+#X obj 143 86 /;
+#X obj 143 56 t b f;
+#X obj 115 126 pack f f f;
+#X obj 172 106 expr 100/$f1;
+#X obj 115 176 outlet;
+#X obj 143 36 r \$0-xtick-div;
+#X obj 172 86 r \$0-xtick-prop;
+#X obj 35 86 r \$0-xtick-send;
+#X msg 115 146 xticks \$1 \$2 \$3;
+#X connect 0 0 1 0;
+#X connect 1 0 3 1;
+#X connect 2 0 1 0;
+#X connect 2 1 1 1;
+#X connect 3 0 9 0;
+#X connect 4 0 3 2;
+#X connect 6 0 2 0;
+#X connect 7 0 4 0;
+#X connect 8 0 3 0;
+#X connect 9 0 5 0;
+#X coords 0 0 1 1 201 75 0;
+#X restore 199 197 pd x-ticks;
+#X text 150 197 X-ticks;
+#X text 150 217 X-label;
+#N canvas 274 695 314 213 bounds 0;
+#X msg 41 142 bounds \$1 \$2 \$3 \$4;
+#X obj 41 122 pack f f f f;
+#X obj 193 125 r \$0-arrsize;
+#X obj 34 62 f;
+#X obj 41 172 outlet;
+#X obj 49 42 r \$0-bound-x;
+#X obj 87 82 r \$0-bound-xx;
+#X obj 193 165 s \$0-bound-xx-i;
+#X obj 64 62 r \$0-bound-y;
+#X obj 110 102 r \$0-bound-yy;
+#X obj 34 22 r \$0-bound-send;
+#X obj 193 145 - 1;
+#X connect 0 0 4 0;
+#X connect 1 0 0 0;
+#X connect 2 0 11 0;
+#X connect 3 0 1 0;
+#X connect 5 0 3 1;
+#X connect 6 0 1 2;
+#X connect 8 0 1 1;
+#X connect 9 0 1 3;
+#X connect 10 0 3 0;
+#X connect 11 0 7 0;
+#X coords 0 0 1 1 116 75 0;
+#X restore 199 137 pd bounds;
+#X text 153 137 Bounds;
+#N canvas 0 0 304 224 send 0;
+#X obj 197 153 send13 foo;
+#X obj 207 103 r \$0-arr;
+#X msg 207 123 set \$1;
+#X obj 177 63 inlet;
+#X obj 64 183 s \$0-command;
+#X obj 64 133 drip;
+#X msg 124 153 set;
+#X obj 64 103 t a b;
+#X msg 64 153 add2 \$1;
+#X obj 124 123 loadbang;
+#X connect 1 0 2 0;
+#X connect 2 0 0 0;
+#X connect 3 0 0 0;
+#X connect 3 0 7 0;
+#X connect 5 0 8 0;
+#X connect 6 0 4 0;
+#X connect 7 0 5 0;
+#X connect 7 1 6 0;
+#X connect 8 0 4 0;
+#X connect 9 0 6 0;
+#X restore 279 297 pd send;
+#N canvas 595 204 275 570 x-label 0;
+#X obj 130 279 r \$0-arrsize;
+#X obj 96 499 prepent xlabel;
+#X obj 42 39 - 1.2;
+#X obj 96 479 prepent;
+#X obj 61 299 expr $f2/$f1;
+#X obj 56 399 serialize;
+#X obj 22 340 until;
+#X obj 73 369 +;
+#X obj 46 369 0;
+#X obj 61 329 t b f;
+#X obj 61 349 0;
+#X obj 42 249 t f f f;
+#X obj 61 279 - 1;
+#X obj 42 109 moses 2;
+#X obj 42 89 r \$0-xlabel-wv;
+#X obj 42 59 s \$0-xlabel-dist-i;
+#X obj 42 19 loadbang;
+#X obj 96 529 outlet;
+#X obj 42 229 f;
+#X obj 108 459 t b f;
+#X obj 91 129 t b f;
+#X obj 116 197 spigot 0;
+#X obj 141 167 1;
+#X obj 171 147 r \$0-arr;
+#X msg 171 167 0;
+#X obj 108 439 r \$0-xlabel-dist;
+#X connect 0 0 4 1;
+#X connect 1 0 17 0;
+#X connect 2 0 15 0;
+#X connect 3 0 1 0;
+#X connect 4 0 9 0;
+#X connect 5 0 3 0;
+#X connect 6 0 8 0;
+#X connect 7 0 8 1;
+#X connect 8 0 7 0;
+#X connect 8 0 5 0;
+#X connect 9 0 10 0;
+#X connect 9 1 7 1;
+#X connect 10 0 8 1;
+#X connect 11 0 6 0;
+#X connect 11 1 12 0;
+#X connect 11 2 5 1;
+#X connect 12 0 4 0;
+#X connect 13 1 20 0;
+#X connect 14 0 13 0;
+#X connect 16 0 2 0;
+#X connect 18 0 11 0;
+#X connect 19 0 21 0;
+#X connect 19 1 3 1;
+#X connect 20 0 22 0;
+#X connect 20 1 18 0;
+#X connect 21 0 18 0;
+#X connect 22 0 21 1;
+#X connect 23 0 24 0;
+#X connect 24 0 21 1;
+#X connect 25 0 19 0;
+#X coords 0 0 1 1 195 60 0;
+#X restore 199 217 pd x-label;
+#X text 150 177 Y-label;
+#X text 148 157 Y-ticks;
+#N canvas 906 167 297 695 y-label 0;
+#X obj 106 609 prepent;
+#X obj 66 529 serialize;
+#X obj 32 430 until;
+#X obj 83 459 +;
+#X obj 56 459 0;
+#X obj 71 419 t b f;
+#X obj 71 439 0;
+#X obj 52 269 t f f f;
+#X obj 71 369 - 1;
+#X obj 52 109 moses 2;
+#X obj 52 19 loadbang;
+#X obj 106 659 outlet;
+#X obj 52 59 s \$0-ylabel-dist-i;
+#X obj 52 89 r \$0-ylabel-wv;
+#X obj 118 569 r \$0-ylabel-dist;
+#X obj 106 629 prepent ylabel;
+#X obj 52 39 - 6;
+#X obj 140 339 t b f;
+#X obj 140 369 -;
+#X obj 100 299 r \$0-bound-y;
+#X obj 140 319 r \$0-bound-yy;
+#X obj 81 489 r \$0-bound-yy;
+#X obj 71 389 expr $f2/$f1;
+#X obj 66 509 +;
+#X obj 52 249 f;
+#X obj 118 589 t b f;
+#X obj 91 129 t b f;
+#X obj 136 207 spigot 0;
+#X obj 161 177 1;
+#X obj 191 157 r \$0-arr;
+#X msg 191 177 0;
+#X connect 0 0 15 0;
+#X connect 1 0 0 0;
+#X connect 2 0 4 0;
+#X connect 3 0 4 1;
+#X connect 4 0 3 0;
+#X connect 4 0 23 0;
+#X connect 5 0 6 0;
+#X connect 5 1 3 1;
+#X connect 6 0 4 1;
+#X connect 7 0 2 0;
+#X connect 7 1 8 0;
+#X connect 7 2 1 1;
+#X connect 8 0 22 0;
+#X connect 9 1 26 0;
+#X connect 10 0 16 0;
+#X connect 13 0 9 0;
+#X connect 14 0 25 0;
+#X connect 15 0 11 0;
+#X connect 16 0 12 0;
+#X connect 17 0 18 0;
+#X connect 17 1 18 1;
+#X connect 18 0 22 1;
+#X connect 19 0 18 0;
+#X connect 20 0 17 0;
+#X connect 21 0 23 1;
+#X connect 22 0 5 0;
+#X connect 23 0 1 0;
+#X connect 24 0 7 0;
+#X connect 25 0 27 0;
+#X connect 25 1 0 1;
+#X connect 26 0 28 0;
+#X connect 26 1 24 0;
+#X connect 27 0 24 0;
+#X connect 28 0 27 1;
+#X connect 29 0 30 0;
+#X connect 30 0 27 1;
+#X coords 0 0 1 1 195 60 0;
+#X restore 199 177 pd y-label;
+#N canvas 524 614 293 249 y-ticks 0;
+#X obj 133 126 /;
+#X obj 133 96 t b f;
+#X obj 105 166 pack f f f;
+#X obj 162 146 expr 100/$f1;
+#X obj 105 216 outlet;
+#X obj 25 126 r \$0-ytick-send;
+#X msg 105 186 yticks \$1 \$2 \$3;
+#X obj 162 126 r \$0-ytick-prop;
+#X obj 133 76 r \$0-ytick-div;
+#X obj 93 56 t b f;
+#X obj 93 86 -;
+#X obj 53 16 r \$0-bound-y;
+#X obj 93 36 r \$0-bound-yy;
+#X connect 0 0 2 1;
+#X connect 1 0 0 0;
+#X connect 1 1 0 1;
+#X connect 2 0 6 0;
+#X connect 3 0 2 2;
+#X connect 5 0 2 0;
+#X connect 6 0 4 0;
+#X connect 7 0 3 0;
+#X connect 8 0 1 0;
+#X connect 9 0 10 0;
+#X connect 9 1 10 1;
+#X connect 10 0 0 0;
+#X connect 11 0 10 0;
+#X connect 12 0 9 0;
+#X coords 0 0 1 1 201 75 0;
+#X restore 199 157 pd y-ticks;
+#X obj 14 338 r \$0-f-writ;
+#X msg 14 358 \; pd-function-writer vis 1;
+#X msg 14 298 \; pd-segment-draw vis 1;
+#X obj 14 278 r \$0-s-draw;
+#X obj 15 179 moses 1;
+#X obj 279 317 dsp01 1;
+#X text 18 434 adicionar toggle para com/sem wraparound.;
+#X obj 327 349 inlet;
+#X obj 382 139 symbol \$1;
+#X obj 382 119 loadbang;
+#X obj 327 409 s \$0-segrel;
+#X obj 327 369 route segrel segabs;
+#X obj 382 389 s \$0-segabs;
+#X text 285 390 FUNKTIONIERT NICHT \, DIE " \, " MACHEN MEHRERE NACHRICHTEN
+;
+#X connect 0 0 35 0;
+#X connect 1 0 45 0;
+#X connect 2 0 35 0;
+#X connect 3 0 6 0;
+#X connect 3 0 7 0;
+#X connect 4 0 5 0;
+#X connect 5 0 3 0;
+#X connect 6 0 8 0;
+#X connect 9 0 0 0;
+#X connect 12 0 16 0;
+#X connect 13 0 14 0;
+#X connect 14 0 12 0;
+#X connect 15 0 12 0;
+#X connect 18 0 17 0;
+#X connect 19 0 20 0;
+#X connect 20 0 18 0;
+#X connect 22 0 35 0;
+#X connect 24 0 22 0;
+#X connect 24 0 26 0;
+#X connect 26 0 25 0;
+#X connect 27 0 29 0;
+#X connect 29 0 35 0;
+#X connect 30 0 35 0;
+#X connect 33 0 35 0;
+#X connect 36 0 35 0;
+#X connect 39 0 35 0;
+#X connect 40 0 35 0;
+#X connect 41 0 42 0;
+#X connect 44 0 43 0;
+#X connect 45 1 2 0;
+#X connect 45 1 7 0;
+#X connect 48 0 52 0;
+#X connect 49 0 25 0;
+#X connect 50 0 49 0;
+#X connect 52 0 51 0;
+#X connect 52 1 53 0;
+#X connect 52 2 26 0;
+#X restore 32 695 pd inside;
+#X obj 290 310 cnv 15 100 100 empty empty empty 20 12 0 14 -191407
+-66577 0;
+#X floatatom 307 367 5 0 0 0 - #0-bound-x-i #0-bound-x;
+#X floatatom 327 347 5 0 0 0 - #0-bound-y-i #0-bound-y;
+#X floatatom 347 367 5 0 0 0 - #0-bound-xx-i #0-bound-xx;
+#X floatatom 327 387 5 0 0 0 - #0-bound-yy-i #0-bound-yy;
+#X text 294 312 Graphic bounds;
+#X text 293 365 X;
+#X text 328 328 Y;
+#X obj 307 347 bng 13 250 50 0 \$0-bound-send \$0-bound-send-i empty
+17 7 0 10 -228856 -1 -1;
+#X obj 12 398 cnv 15 265 65 empty empty empty 20 12 0 14 -191407 -66577
+0;
+#X floatatom 17 418 5 2 100000 0 - #0-xlabel-wv-i #0-xlabel-wv;
+#X text 108 418 How many numbers in total;
+#X floatatom 17 438 6 0 0 0 - #0-xlabel-dist-i #0-xlabel-dist;
+#X text 108 438 Distance (as y value);
+#X obj 12 310 cnv 15 265 80 empty empty empty 20 12 0 14 -191407 -66577
+0;
+#X floatatom 18 329 5 0 0 0 - #0-xtick-div-i #0-xtick-div;
+#X floatatom 18 349 5 0 0 0 - #0-xtick-prop-i #0-xtick-prop;
+#X obj 25 369 bng 14 250 50 0 \$0-xtick-send \$0-xtick-send-i empty
+17 7 0 10 -228856 -1 -1;
+#X text 108 369 Send format;
+#X text 108 349 Proportion of big ticks (%);
+#X text 108 329 How many divisions in total;
+#X obj 11 186 cnv 15 135 25 empty empty empty 20 12 0 14 -191407 -66577
+0;
+#X floatatom 15 191 5 0 0 0 - #0-norml-i #0-norml;
+#X text 50 191 Normalize to x;
+#X obj 197 151 cnv 15 115 60 empty empty empty 20 12 0 14 -191407 -66577
+0;
+#X floatatom 202 189 10 0 0 0 - #0-ind_t-i #0-ind_t;
+#X text 199 150 Index test;
+#X text 268 169 Index;
+#X text 268 188 Value;
+#X obj 12 216 cnv 15 170 25 empty empty empty 20 12 0 14 -191407 -66577
+0;
+#X floatatom 16 221 5 0 0 0 - #0-const-i #0-const;
+#X text 51 221 Set a constant value;
+#X obj 11 156 cnv 15 145 25 empty empty empty 20 12 0 14 -191407 -66577
+0;
+#X floatatom 15 160 10 0 0 0 - #0-resize-i #0-resize;
+#X text 82 160 Size/Resize;
+#X obj 71 52 cnv 15 260 60 empty empty empty 20 12 0 14 -241339 -66577
+0;
+#X symbolatom 144 61 30 0 0 0 - #0-arr-i #0-arr;
+#X symbolatom 144 89 30 0 0 0 - #0-rename-i #0-rename;
+#X text 74 89 Rename it;
+#X text 74 61 Array name;
+#X obj 117 8 cnv 15 160 30 empty empty ARRAY-EDITOR 8 16 0 20 -191407
+-33289 0;
+#X obj 12 255 cnv 15 60 20 empty empty Display 5 11 0 12 -191407 -33289
+0;
+#X obj 202 169 nbx 5 16 0 99 0 0 \$0-ind_i \$0-ind_i-i empty 0 -8 0
+10 -228856 -1 -1 0 256;
+#X obj 12 495 r \$0-command;
+#X msg 12 515;
+#X floatatom 68 329 5 0 0 0 - #0-ytick-div-i #0-ytick-div;
+#X floatatom 68 349 5 0 0 0 - #0-ytick-prop-i #0-ytick-prop;
+#X obj 75 369 bng 14 250 50 0 \$0-ytick-send \$0-ytick-send-i empty
+17 7 0 10 -228856 -1 -1;
+#X floatatom 67 418 5 2 100000 0 - #0-ylabel-wv-i #0-ylabel-wv;
+#X floatatom 67 438 6 0 0 0 - #0-ylabel-dist-i #0-ylabel-dist;
+#X text 23 310 X / Y Ticks;
+#X text 25 398 X / Y Label;
+#N canvas 505 36 496 590 function-writer 0;
+#X obj 27 231 tabwrite~ \$1;
+#X obj 27 122 bng 15 250 50 0 empty empty Calculate 21 8 0 12 -228856
+-1 -1;
+#X text 15 51 1 - Edit your formula below;
+#X text 13 330 Some formula examples:;
+#X text 17 398 - descending line;
+#X obj 139 379 expr~ $v1;
+#X obj 139 399 expr~ 1-$v1;
+#X obj 139 439 expr~ pow($v1 \, .5);
+#X text 17 438 - logarithmic line;
+#X text 17 418 - exponential line;
+#X obj 139 419 expr~ pow($v1 \, 2);
+#X text 13 350 Lines;
+#X floatatom 279 150 5 0 0 0 - - -;
+#X text 14 8 The function writer writes a funcion in your array. It
+analyses the sample rate and arraysize \, so that the wave fits perfectly
+with the array. To create a new waveform:;
+#X text 131 103 Edit your formula here \, or copy-paste from the ones
+below. The number field is to connect with the gaussian formula \,
+or with any formulas that need extra argument(s).;
+#N canvas 0 0 450 372 calc 0;
+#X obj 187 38 inlet;
+#X obj 226 78 samplerate~;
+#X obj 127 278 r \$0-arr;
+#X obj 197 298 phasor~;
+#X obj 226 238 /;
+#X msg 127 298 set \$1;
+#X obj 206 258 0;
+#X obj 241 98 r \$0-arrsize;
+#X obj 187 58 t a b b;
+#X obj 187 338 outlet;
+#X obj 197 318 outlet~;
+#X obj 241 218 +;
+#X obj 256 118 r \$0-wrapar;
+#X obj 256 138 * -1;
+#X obj 241 188 f;
+#X obj 256 158 t b f;
+#X connect 0 0 8 0;
+#X connect 1 0 4 0;
+#X connect 2 0 5 0;
+#X connect 3 0 10 0;
+#X connect 4 0 3 0;
+#X connect 5 0 9 0;
+#X connect 6 0 3 1;
+#X connect 7 0 14 0;
+#X connect 8 0 9 0;
+#X connect 8 1 6 0;
+#X connect 8 2 1 0;
+#X connect 11 0 4 1;
+#X connect 12 0 13 0;
+#X connect 13 0 15 0;
+#X connect 14 0 11 0;
+#X connect 15 0 14 0;
+#X connect 15 1 11 1;
+#X restore 27 140 pd calc;
+#X text 70 543 If there's any function that you think should be here
+\, tell me about it at jmmmpais@googlemail.com;
+#N canvas 0 0 685 457 (subpatch) 0;
+#X array array2 120 float 0;
+#X coords 0 1 119 0 120 90 1;
+#X restore 311 354 graph;
+#X obj 286 292 s \$0-arr-i;
+#X text 50 254 To try out the waveforms below \, first choose this
+array as the array to be edited by clicking on:;
+#X msg 286 272 symbol array2;
+#X text 15 71 2 - Bang "Calculate";
+#X text 16 378 - ascending line;
+#N canvas 232 298 502 383 panning-curves 0;
+#X obj 380 12 switch~ 0;
+#X text 17 138 - simple (triangular);
+#X text 12 19 Panning curves;
+#X obj 149 139 expr~ 1-$v1;
+#X text 11 80 Some curves need the Wraparound option \, so that the
+final value is as close as possible.;
+#X obj 149 159 expr~ pow(1-$v1 \, .5);
+#X text 17 158 - square root;
+#X obj 149 179 expr~ cos($v1*0.5*3.14159);
+#X text 17 178 - sinus;
+#X obj 149 199 expr~ ((sqrt(2)/2) * (cos(($v1) * (4 * atan(1)) - (4
+* atan(1)/2)) - sin(($v1) * (4 * atan(1)) - (4 * atan(1)/2))))*0.5+0.5
+;
+#X text 16 198 - "equal power";
+#X text 11 40 These curves are for the left side. To get the right
+side value \, just read the table at the mirror point: [arraysize]-[index]-1.
+;
+#X text 17 328 Formulas taken from Csound Ezine/Jamie Bullock \, Georg
+Holzmann.;
+#X obj 149 265 expr~ (cos($v1)-sin($v1))*(sqrt(2)/2);
+#X obj 149 245 expr~ ($v1*3.14159/2)-3.14159/4;
+#X text 16 245 - tangent law;
+#X connect 14 0 13 0;
+#X restore 23 478 pd panning-curves;
+#N canvas 148 141 450 259 trigonometry/windowing 0;
+#X text 17 48 - sine wave;
+#X obj 139 49 expr~ sin($v1*3.14159*2);
+#X obj 139 89 expr~ 0.5*(1-cos($v1*3.14159*2));
+#X text 17 68 - cosine window;
+#X obj 139 69 expr~ sin($v1*3.14159);
+#X obj 139 109 expr~ 0.53836-0.46164*cos($v1*3.14159*2);
+#X text 17 108 - hamming window;
+#X text 17 88 - hanning window;
+#X text 17 128 - connes window;
+#X obj 139 129 expr~ pow(1-pow($v1*2-1 \, 2) \, 2);
+#X obj 139 149 expr~ 1-abs($v1*2-1);
+#X text 17 148 - welch window;
+#X text 17 168 - gaussian window;
+#X obj 137 170 expr~ pow(2 \, pow((($v1*2-1)/$f2) \, 2)*-1);
+#X text 17 208 - lanczos window;
+#X obj 139 209 expr~ sin(($v1*2-1)*3.14159)/(($v1*2-1)*3.14159);
+#X text 12 19 Trigonometry/Windowing formulas;
+#X obj 380 12 switch~ 0;
+#X text 134 188 (0 < $f2 < 1);
+#X restore 23 508 pd trigonometry/windowing;
+#X obj 67 181 expr~ pow(2 \, pow((($v1*2-1)/$f2) \, 2)*-1);
+#X connect 1 0 15 0;
+#X connect 12 0 25 1;
+#X connect 15 0 0 0;
+#X connect 15 1 25 0;
+#X connect 20 0 18 0;
+#X connect 25 0 0 0;
+#X restore 32 639 pd function-writer;
+#X obj 12 128 cnv 15 60 20 empty empty Basic 5 11 0 12 -191407 -33289
+0;
+#X text 12 277 Attention: to edit the Y fields \, you must first define
+the Y values in Graphic Bounds.;
+#N canvas 266 36 411 747 segment-draw 0;
+#X msg 75 356 0 0 \, -1.5 15 \, 1 50 \, 0.75 75 \, 0 100;
+#X text 11 528 relative index: 0%-100%;
+#N canvas 545 59 692 802 segment-function-draw 0;
+#X obj 173 33 inlet;
+#X obj 92 133 r \$0-arrsize;
+#X obj 77 153 *;
+#X obj 77 113 * 0.01;
+#X obj 344 21 inlet;
+#X text 168 9 relativ;
+#X text 389 16 absolut;
+#X obj 77 173 i;
+#X obj 219 573 samplerate~;
+#X obj 69 682 r \$0-arr;
+#X obj 219 593 /;
+#X msg 69 702 set \$1;
+#X obj 189 644 0;
+#X obj 143 293 -;
+#X obj 158 273 f;
+#X obj 143 243 t f f b;
+#X msg 130 583 start \$1;
+#X obj 170 553 t f b b;
+#X obj 77 193 t f f;
+#X obj 27 283 moses;
+#X obj 54 263 r \$0-arrsize;
+#X obj 104 213 moses 1;
+#X obj 152 682 phasor~;
+#X obj 130 772 tabwrite~ \$1;
+#X obj 295 627 del;
+#X obj 295 607 * 1.01;
+#N canvas 77 335 450 302 blocksize 0;
+#X obj 174 211 outlet;
+#X obj 164 31 inlet;
+#X obj 164 51 samplerate~;
+#X obj 174 171 /;
+#X obj 174 191 * 1000;
+#X obj 179 121 iem_blocksize~;
+#X obj 164 141 f;
+#X obj 164 71 t b f;
+#X obj 179 101 sig~;
+#X connect 1 0 2 0;
+#X connect 2 0 7 0;
+#X connect 3 0 4 0;
+#X connect 4 0 0 0;
+#X connect 5 0 6 1;
+#X connect 6 0 3 0;
+#X connect 7 0 6 0;
+#X connect 7 1 3 1;
+#X connect 8 0 5 0;
+#X restore 295 587 pd blocksize;
+#X obj 219 613 t b f;
+#X obj 179 83 swap;
+#X obj 151 742 +~;
+#X text 327 629 each segment is written after a delay of 1 block. maybe
+not the best way \, but the only one using ~ ?;
+#X obj 152 722 *~;
+#X obj 170 493 textfile;
+#X obj 310 155 f;
+#X obj 275 238 route list;
+#X obj 275 208 list prepend;
+#X obj 344 188 spigot 0;
+#X msg 374 168 0;
+#X msg 404 168 1;
+#X obj 275 125 t f b f b;
+#X obj 275 258 unpack;
+#X obj 304 318 -;
+#X obj 294 298 f;
+#X obj 275 278 t f b f;
+#X obj 170 443 prepent add;
+#X msg 104 473 clear;
+#X msg 205 467 rewind \, bang;
+#X obj 143 373 swap;
+#X obj 143 353 pack;
+#X obj 205 139 t b b b;
+#X obj 143 403 pack f f f f f;
+#X obj 170 523 unpack f f f f f;
+#X obj 173 53 zexy/unpack f f f;
+#X obj 254 413 0;
+#X obj 143 423 t b a;
+#X obj 152 702 expr~ pow($v1 \, exp($f2*5*log(2)));
+#X text 280 523 dauer \, anfangspunkt \, anfangswert \, skalierung
+\, exp-curve;
+#X obj 350 71 swap;
+#X obj 344 41 zexy/unpack f f f;
+#X msg 323 471 print;
+#X obj 93 23 r \$0-segrel;
+#X obj 263 13 r \$0-segabs;
+#X connect 0 0 52 0;
+#X connect 1 0 2 1;
+#X connect 2 0 7 0;
+#X connect 3 0 2 0;
+#X connect 4 0 58 0;
+#X connect 7 0 18 0;
+#X connect 8 0 10 0;
+#X connect 9 0 11 0;
+#X connect 10 0 27 0;
+#X connect 11 0 23 0;
+#X connect 12 0 22 1;
+#X connect 13 0 48 0;
+#X connect 14 0 13 1;
+#X connect 15 0 13 0;
+#X connect 15 1 14 1;
+#X connect 15 2 14 0;
+#X connect 16 0 23 0;
+#X connect 17 0 16 0;
+#X connect 17 1 12 0;
+#X connect 17 2 8 0;
+#X connect 18 0 19 0;
+#X connect 18 1 21 0;
+#X connect 19 0 48 1;
+#X connect 19 1 49 0;
+#X connect 20 0 19 1;
+#X connect 21 0 14 1;
+#X connect 21 0 45 0;
+#X connect 21 1 15 0;
+#X connect 22 0 55 0;
+#X connect 24 0 32 0;
+#X connect 25 0 24 0;
+#X connect 26 0 25 0;
+#X connect 27 0 26 0;
+#X connect 27 1 22 0;
+#X connect 28 0 3 0;
+#X connect 28 1 39 0;
+#X connect 29 0 23 0;
+#X connect 31 0 29 0;
+#X connect 32 0 51 0;
+#X connect 33 0 36 0;
+#X connect 34 0 40 0;
+#X connect 35 0 34 0;
+#X connect 36 0 35 1;
+#X connect 37 0 36 1;
+#X connect 38 0 36 1;
+#X connect 39 0 35 0;
+#X connect 39 1 38 0;
+#X connect 39 2 33 1;
+#X connect 39 3 33 0;
+#X connect 40 0 43 0;
+#X connect 40 1 42 1;
+#X connect 41 0 50 3;
+#X connect 42 0 41 0;
+#X connect 43 0 50 2;
+#X connect 43 1 42 0;
+#X connect 43 2 41 1;
+#X connect 44 0 32 0;
+#X connect 45 0 32 0;
+#X connect 46 0 32 0;
+#X connect 47 0 50 0;
+#X connect 47 1 50 1;
+#X connect 48 0 47 0;
+#X connect 49 0 46 0;
+#X connect 49 1 35 1;
+#X connect 49 2 37 0;
+#X connect 50 0 54 0;
+#X connect 51 0 17 0;
+#X connect 51 1 10 1;
+#X connect 51 2 29 1;
+#X connect 51 3 31 1;
+#X connect 51 4 55 1;
+#X connect 52 0 28 0;
+#X connect 52 1 28 1;
+#X connect 52 2 50 4;
+#X connect 53 0 50 4;
+#X connect 54 0 53 0;
+#X connect 54 1 44 0;
+#X connect 55 0 31 0;
+#X connect 57 0 18 0;
+#X connect 57 1 39 0;
+#X connect 58 0 57 0;
+#X connect 58 1 57 1;
+#X connect 58 2 50 4;
+#X connect 59 0 32 0;
+#X connect 60 0 52 0;
+#X connect 61 0 58 0;
+#X restore 45 509 pd segment-function-draw;
+#X msg 55 316 0 0 \, 1 50 \, 0 100;
+#X text 20 196 Attention: You must always define an array completely
+\, from the first to last indexes (be it in relative or absolute indexes).
+;
+#X text 181 529 absolute index: 0-arraysize;
+#X text 27 692 Note: Each segment is written after a 1-block delay.
+If you're thinking about using this tool for live audio \, make sure
+you don't get side effects due to this technique.;
+#X text 21 87 - index Value;
+#X text 21 107 - duration - in percentage of total duration (left inlet)
+or in absolute indexes (right inlet);
+#X text 20 56 Segment draw: Define each breakpoint with 2 or 3 indexes.
+Each breakpoint is separated by commas:;
+#N canvas 0 0 668 457 (subpatch) 0;
+#X array array1 120 float 0;
+#X coords 0 1 119 -1 120 90 1;
+#X restore 145 581 graph;
+#X obj 256 282 s \$0-arr-i;
+#X msg 256 262 symbol array1;
+#X obj 147 21 cnv 15 95 20 empty empty Segment-draw 5 11 0 12 -191407
+-33289 0;
+#X text 21 138 - curve steppness [-1 to 1]: 0 or missing for a straight
+line. 0 to 1 for exponential curve \, -1 to 0 for logarithmic curve.
+;
+#X text 164 315 normal wave;
+#X msg 64 336 0 0 \, 1 50 0.15 \, 0 100 -0.15;
+#X text 236 335 same wave \, but curved;
+#X text 20 244 To try out the waveforms below \, first choose this
+array as the array to be edited by clicking on:;
+#X text 83 376 more complex example;
+#X msg 164 433 0 0 \, 1 60 \, 0 120;
+#X msg 174 453 0 0 \, 1 60 0.15 \, 0 120 -0.15;
+#X msg 185 473 0 0 \, -1.5 18 \, 1 60 \, 0.75 90 \, 0 120;
+#X text 93 413 Same examples as above \, with absolute coordinates
+;
+#X connect 0 0 2 0;
+#X connect 3 0 2 0;
+#X connect 12 0 11 0;
+#X connect 16 0 2 0;
+#X connect 20 0 2 1;
+#X connect 21 0 2 1;
+#X connect 22 0 2 1;
+#X restore 32 596 pd segment-draw;
+#X obj 12 640 bng 15 250 50 0 \$0-f-writ \$0-f-writ-i empty 17 7 0
+10 -228856 -1 -1;
+#X obj 12 597 bng 15 250 50 0 \$0-s-draw \$0-s-draw-i empty 17 7 0
+10 -228856 -1 -1;
+#X text 32 576 Draw a wave shape through break points;
+#X text 32 619 Define a wave shape through its function;
+#X obj 12 549 cnv 15 100 20 empty empty Ploting.tools 5 11 0 12 -191407
+-33289 0;
+#X text 94 685 (where everything works);
+#X text 12 474 You can copy the commands and paste them in your patch:
+;
+#X obj 32 675 inlet;
+#N canvas 0 0 426 446 license 0;
+#X text 8 47 All rights reserved.;
+#X text 8 227 The names of its contributors may not be used to endorse
+or promote products derived from this software without specific prior
+written permission.;
+#X text 8 87 Redistribution and use in source and binary forms \, with
+or without modification \, are permitted provided that the following
+conditions are met:;
+#X text 8 127 Redistributions of source code must retain the above
+copyright notice \, this list of conditions and the following disclaimer.
+;
+#X text 8 297 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES \, INCLUDING
+\, BUT NOT LIMITED TO \, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
+THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT \, INDIRECT
+\, INCIDENTAL \, SPECIAL \, EXEMPLARY \, OR CONSEQUENTIAL DAMAGES (INCLUDING
+\, BUT NOT LIMITED TO \, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES
+;
+#X text 8 167 Redistributions in binary form must reproduce the above
+copyright notice \, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the distribution.
+;
+#X text 8 27 jmmmpais@googlemail.com;
+#X text 8 7 Copyright 2006 \, João Pais;
+#X restore 32 724 pd license;
+#X text 99 724 (C) 2009 João Pais - jmmmpais@googlemail.com;
+#X obj 197 216 cnv 15 187 25 empty empty empty 20 12 0 14 -191407 -66577
+0;
+#X obj 202 221 tgl 15 0 \$0-wrapar \$0-wrapar-i empty 17 7 0 10 -228856
+-1 -1 0 1;
+#X text 221 220 Wraparound (last index ~0);
+#X connect 44 0 45 0;
+#X connect 64 0 0 0;
diff --git a/bezier-help.pd b/bezier-help.pd
new file mode 100644
index 0000000..76157d7
--- /dev/null
+++ b/bezier-help.pd
@@ -0,0 +1,692 @@
+#N struct 1076-bez-array float x float y array 1076-bez-c-arr 1076-bez-c
+float p0x float p0y float p0x. float p0y. float p1x float p1y float
+p1x. float p1y. float p2x float p2y float p2x. float p2y. float p3x
+float p3y float p3x. float p3y.;
+#N struct 1076-bez-c float x float y;
+#N struct 1055-bez-array float x float y array 1055-bez-c-arr 1055-bez-c
+float p0x float p0y float p0x. float p0y. float p1x float p1y float
+p1x. float p1y. float p2x float p2y float p2x. float p2y. float p3x
+float p3y float p3x. float p3y.;
+#N struct 1055-bez-c float x float y;
+#N canvas 367 58 811 625 10;
+#X floatatom 23 285 5 0 0 0 - - -;
+#X floatatom 57 157 5 0 0 0 - - -;
+#X msg 158 126 p0 0 0 \, p1 0.2 0.4 \, p2 0.8 0.6 \, p3 1 1;
+#X text 420 184 ha demasiada accao a passar no patch \, optimizar;
+#X msg 104 88 dump;
+#N canvas 0 0 539 313 save 0;
+#X obj 151 42 inlet;
+#X obj 151 152 list prepend add2;
+#X obj 151 192 list trim;
+#X obj 151 172 t l b;
+#X msg 178 212 addcomma;
+#X msg 151 242 \, p0 0 0 \, p1 -0.100666 1.1 \, p2 1.078 -0.012 \,
+p3 0.99 0.99;
+#X msg 178 122 set;
+#X obj 151 62 t l l;
+#X obj 178 102 route p0;
+#X obj 178 82 route list;
+#X connect 0 0 7 0;
+#X connect 1 0 3 0;
+#X connect 2 0 5 0;
+#X connect 3 0 2 0;
+#X connect 3 1 4 0;
+#X connect 4 0 5 0;
+#X connect 6 0 5 0;
+#X connect 7 0 1 0;
+#X connect 7 1 9 0;
+#X connect 8 0 6 0;
+#X connect 9 0 8 0;
+#X restore 400 492 pd save points;
+#X text 416 215 botao para adicionar x curvas (p3 da anterior == p0
+da seguinte) \, criando uma mega-curva \; tornar tudo variavel \, nr
+pontos do array... \; ajustar tamanha dos pontos kr de acordo com o
+tamanho do display;
+#X obj 42 186 hsl 50 10 0 1 0 0 empty empty empty -2 -8 0 10 -228856
+-1 -1 4900 1;
+#X obj 42 204 hsl 50 10 0 1 0 0 empty empty empty -2 -8 0 10 -228856
+-1 -1 4900 1;
+#X text 369 35 DCCoY4HuLhg9Aj;
+#X msg 163 57 size \$1;
+#X floatatom 163 38 5 0 0 0 - - -;
+#X text 422 346 argumentos;
+#X text 425 364 - tamanho do array;
+#X text 429 381 - canvas size (x + y);
+#X msg 37 23 canvas 300 100;
+#X text 418 148 so funciona depois de clickar nele? o arraypoint do
+append nao funciona?;
+#X msg 76 64 canvas \$1;
+#X floatatom 76 44 5 0 0 0 - - -;
+#X msg 163 78 size 100;
+#X text 417 305 y - esta fixo em 99 como mudar para a mesma resolucao
+de x?;
+#X obj 19 131 line;
+#X msg 19 111 0 \, 1 3000;
+#X text 415 122 opcao para mostrar ponto de leitura;
+#X text 423 93 sair os dois eixos \, x e y.;
+#X msg 250 91 p0 \$1 \$2;
+#X obj 250 71 pack;
+#X floatatom 225 32 5 0 0 0 - - -;
+#X floatatom 260 32 5 0 0 0 - - -;
+#X obj 260 51 t b f;
+#N canvas 535 50 842 885 bezier-a 0;
+#X scalar 1076-bez-array 0 0 -2 -2 3 3 36.7999 111.4 41.7999 116.4
+58.4001 -16.2 63.4001 -11.2 98 98 103 103 \; 0 0 \; 1.09947 3.27078
+\; 2.19004 6.40106 \; 3.2719 9.39374 \; 4.34529 12.2517 \; 5.41039
+14.9778 \; 6.46743 17.5751 \; 7.51662 20.0463 \; 8.55817 22.3944 \;
+9.59229 24.6223 \; 10.6192 26.7328 \; 11.6391 28.7289 \; 12.6522 30.6135
+\; 13.6587 32.3894 \; 14.6588 34.0596 \; 15.6528 35.6269 \; 16.6408
+37.0943 \; 17.6231 38.4647 \; 18.5998 39.7409 \; 19.5713 40.9258 \;
+20.5376 42.0224 \; 21.499 43.0335 \; 22.4558 43.9621 \; 23.408 44.8109
+\; 24.356 45.583 \; 25.3 46.2813 \; 26.2401 46.9085 \; 27.1766 47.4677
+\; 28.1097 47.9616 \; 29.0395 48.3933 \; 29.9664 48.7656 \; 30.8905
+49.0814 \; 31.812 49.3436 \; 32.7311 49.5551 \; 33.6481 49.7188 \;
+34.5632 49.8376 \; 35.4765 49.9143 \; 36.3883 49.952 \; 37.2988 49.9534
+\; 38.2083 49.9215 \; 39.1168 49.8592 \; 40.0247 49.7694 \; 40.932
+49.6549 \; 41.8392 49.5187 \; 42.7463 49.3636 \; 43.6536 49.1927 \;
+44.5613 49.0086 \; 45.4695 48.8145 \; 46.3786 48.613 \; 47.2887 48.4072
+\; 48.2 48.2 \; 49.1128 47.9942 \; 50.0272 47.7927 \; 50.9434 47.5985
+\; 51.8618 47.4144 \; 52.7824 47.2434 \; 53.7055 47.0882 \; 54.6314
+46.9519 \; 55.5601 46.8373 \; 56.492 46.7473 \; 57.4272 46.6848 \;
+58.366 46.6527 \; 59.3085 46.654 \; 60.255 46.6914 \; 61.2057 46.7679
+\; 62.1608 46.8865 \; 63.1205 47.0499 \; 64.085 47.2611 \; 65.0546
+47.523 \; 66.0294 47.8385 \; 67.0096 48.2104 \; 67.9955 48.6418 \;
+68.9873 49.1353 \; 69.9852 49.6941 \; 70.9893 50.321 \; 72 51.0188
+\; 73.0174 51.7904 \; 74.0417 52.6389 \; 75.0732 53.5669 \; 76.112
+54.5776 \; 77.1584 55.6736 \; 78.2126 56.8581 \; 79.2747 58.1337 \;
+80.3451 59.5035 \; 81.4238 60.9703 \; 82.5112 62.537 \; 83.6074 64.2066
+\; 84.7127 65.9819 \; 85.8272 67.8659 \; 86.9512 69.8614 \; 88.0848
+71.9712 \; 89.2283 74.1984 \; 90.382 76.5458 \; 91.5459 79.0163 \;
+92.7204 81.6128 \; 93.9056 84.3382 \; 95.1018 87.1954 \; 96.3091 90.1872
+\; 97.5277 93.3167 \; 100 100 \; \;;
+#X scalar 1055-bez-array 0 0 -2 -2 3 3 19.2727 73.6361 24.2727 78.6361
+92 3.27309 97 8.27309 98 98 103 103 \; 0 0 \; 0.5941 2.1662 \; 1.21956
+4.24786 \; 1.87568 6.24685 \; 2.56174 8.16505 \; 3.27704 10.0043 \;
+4.02087 11.7665 \; 4.79252 13.4535 \; 5.59127 15.0672 \; 6.41643 16.6094
+\; 7.26727 18.082 \; 8.1431 19.4868 \; 9.0432 20.8258 \; 9.96686 22.1008
+\; 10.9134 23.3137 \; 11.882 24.4662 \; 12.8721 25.5604 \; 13.883 26.5981
+\; 14.9138 27.5811 \; 15.964 28.5112 \; 17.0327 29.3905 \; 18.1194
+30.2207 \; 19.2232 31.0036 \; 20.3435 31.7413 \; 21.4796 32.4355 \;
+22.6307 33.088 \; 23.7961 33.7009 \; 24.9752 34.2758 \; 26.1673 34.8148
+\; 27.3715 35.3196 \; 28.5873 35.7922 \; 29.8138 36.2343 \; 31.0505
+36.6479 \; 32.2965 37.0349 \; 33.5512 37.397 \; 34.8139 37.7362 \;
+36.0838 38.0543 \; 37.3602 38.3532 \; 38.6425 38.6348 \; 39.93 38.9009
+\; 41.2218 39.1535 \; 42.5174 39.3942 \; 43.8159 39.6251 \; 45.1168
+39.848 \; 46.4192 40.0648 \; 47.7225 40.2773 \; 49.0259 40.4874 \;
+50.3289 40.6969 \; 51.6305 40.9078 \; 52.9302 41.1218 \; 54.2273 41.341
+\; 55.5209 41.567 \; 56.8105 41.8018 \; 58.0952 42.0474 \; 59.3745
+42.3054 \; 60.6475 42.5778 \; 61.9136 42.8665 \; 63.172 43.1733 \;
+64.4222 43.5001 \; 65.6632 43.8488 \; 66.8945 44.2212 \; 68.1154 44.6192
+\; 69.325 45.0446 \; 70.5228 45.4994 \; 71.7079 45.9853 \; 72.8797
+46.5044 \; 74.0376 47.0583 \; 75.1807 47.649 \; 76.3083 48.2784 \;
+77.4199 48.9483 \; 78.5145 49.6607 \; 79.5916 50.4172 \; 80.6505 51.2199
+\; 81.6903 52.0706 \; 82.7105 52.9712 \; 83.7102 53.9234 \; 84.6889
+54.9293 \; 85.6457 55.9906 \; 86.58 57.1092 \; 87.491 58.2871 \; 88.3782
+59.5259 \; 89.2406 60.8278 \; 90.0777 62.1943 \; 90.8888 63.6276 \;
+91.673 65.1294 \; 92.4298 66.7015 \; 93.1583 68.3459 \; 93.858 70.0645
+\; 94.528 71.8591 \; 95.1677 73.7314 \; 95.7764 75.6835 \; 96.3533
+77.7172 \; 96.8977 79.8344 \; 97.409 82.0368 \; 97.8865 84.3265 \;
+98.3293 86.7052 \; 98.7369 89.1749 \; 99.1084 91.7373 \; 99.4433 94.3944
+\; 100 100 \; \;;
+#X obj 217 10 inlet;
+#N canvas 752 125 572 401 inside 0;
+#X obj 20 52 inlet;
+#X obj 260 272 s \$0-bezier-a;
+#X obj 220 132 sel 0;
+#N canvas 0 0 450 300 element 0;
+#X obj 52 46 struct \$0-bez-c float x float y;
+#X restore 6 322 pd element;
+#N canvas 113 250 606 425 array 0;
+#X obj 58 96 route change click;
+#X obj 78 130 unpack p f;
+#X obj 58 24 struct \$0-bez-array float x float y array \$0-bez-c-arr
+\$0-bez-c float p0x float p0y float p0x. float p0y. float p1x float
+p1y float p1x. float p1y. float p2x float p2y float p2x. float p2y.
+float p3x float p3y float p3x. float p3y.;
+#X obj 31 312 filledpolygon 0 0 1 p1x p1y p1x. p1y p1x. p1y. p1x p1y.
+p1x p1y;
+#X obj 31 345 filledpolygon 0 0 1 p2x p2y p2x. p2y p2x. p2y. p2x p2y.
+p2x p2y;
+#X obj 78 150 t b p;
+#X obj 78 210 outlet;
+#X obj 105 170 s \$0-arrpoint;
+#X obj 78 190 speedlim 150;
+#X obj 213 160 drawpolygon 0 1 0 0 0 100 100 100 100 0 0 0;
+#X obj 31 378 filledpolygon 0 0 1 p3x(-2:97)(-2:97) p3y(-2:97)(-2:97)
+p3x. p3y p3x. p3y. p3x p3y. p3x p3y;
+#X obj 31 279 filledpolygon 0 0 1 p0x(-2:97)(-2:97) p0y(-2:97)(-2:97)
+p0x. p0y p0x. p0y. p0x p0y. p0x p0y;
+#X obj 213 130 plot \$0-bez-c-arr 9 2 0 0;
+#X text 37 243 4 control points \, 2 extremos nao saem da caixa. fronteiras
+desfazadas em 2pt \, para desenhar o quadrado;
+#X connect 0 0 1 0;
+#X connect 0 1 1 0;
+#X connect 1 0 5 0;
+#X connect 2 0 0 0;
+#X connect 5 0 8 0;
+#X connect 5 1 7 0;
+#X connect 8 0 6 0;
+#X restore 6 342 pd array;
+#N canvas 257 223 482 660 calculate 0;
+#X obj 27 42 inlet;
+#X obj 27 202 until;
+#X obj 27 222 f+ 0;
+#X obj 27 352 expr (-$f2+3*$f3-3*$f4+$f5)*pow($f1 \, 3) + (3*$f2-6*$f3+3*$f4)*pow($f1
+\, 2) + (3*$f3-3*$f2)*$f1 + $f2;
+#X obj 46 425 expr (-$f2+3*$f3-3*$f4+$f5)*pow($f1 \, 3) + (3*$f2-6*$f3+3*$f4)*pow($f1
+\, 2) + (3*$f3-3*$f2)*$f1 + $f2;
+#X obj 27 332 pack f f f f f;
+#X obj 46 405 pack f f f f f;
+#X obj 228 468 r \$0-arrpoint;
+#X obj 108 498 element \$0-bez-array \$0-bez-c-arr;
+#X obj 46 558 set \$0-bez-c y;
+#X obj 27 538 set \$0-bez-c x;
+#X obj 108 518 t p p;
+#X obj 27 242 t f f f;
+#X text 142 11 array com 100 pontos. fazer 200? \; e necessario estar
+a escalonar tudo? talvez nao;
+#X obj 141 190 get \$0-bez-array p0x;
+#X obj 311 190 get \$0-bez-array p0y;
+#X obj 341 250 get \$0-bez-array p3y;
+#X obj 171 250 get \$0-bez-array p3x;
+#X obj 161 230 get \$0-bez-array p2x;
+#X obj 331 230 get \$0-bez-array p2y;
+#X obj 320 210 get \$0-bez-array p1y;
+#X obj 151 210 get \$0-bez-array p1x;
+#X obj 27 72 t b b;
+#X obj 77 32 inlet;
+#X obj 141 80 r \$0-arrpoint;
+#X obj 141 150 pointer;
+#X obj 77 52 t b b;
+#X obj 141 270 + 2;
+#X obj 171 270 + 2;
+#X obj 311 270 + 2;
+#X obj 341 270 + 2;
+#X obj 47 102 r \$0-size;
+#X obj 42 162 + 1;
+#X obj 27 182 f;
+#X obj 86 242 inv;
+#X obj 47 122 t b f f;
+#X obj 27 272 *;
+#X obj 46 292 *;
+#X connect 0 0 22 0;
+#X connect 1 0 2 0;
+#X connect 2 0 12 0;
+#X connect 3 0 10 0;
+#X connect 4 0 9 0;
+#X connect 5 0 3 0;
+#X connect 6 0 4 0;
+#X connect 7 0 8 1;
+#X connect 8 0 11 0;
+#X connect 11 0 10 1;
+#X connect 11 1 9 1;
+#X connect 12 0 36 0;
+#X connect 12 1 37 0;
+#X connect 12 2 8 0;
+#X connect 14 0 27 0;
+#X connect 15 0 29 0;
+#X connect 16 0 30 0;
+#X connect 17 0 28 0;
+#X connect 18 0 5 3;
+#X connect 19 0 6 3;
+#X connect 20 0 6 2;
+#X connect 21 0 5 2;
+#X connect 22 0 33 0;
+#X connect 22 1 2 1;
+#X connect 23 0 26 0;
+#X connect 24 0 25 0;
+#X connect 25 0 14 0;
+#X connect 25 0 15 0;
+#X connect 25 0 20 0;
+#X connect 25 0 19 0;
+#X connect 25 0 16 0;
+#X connect 25 0 21 0;
+#X connect 25 0 18 0;
+#X connect 25 0 17 0;
+#X connect 26 0 22 0;
+#X connect 26 1 25 0;
+#X connect 27 0 5 1;
+#X connect 28 0 5 4;
+#X connect 29 0 6 1;
+#X connect 30 0 6 4;
+#X connect 31 0 35 0;
+#X connect 32 0 33 1;
+#X connect 33 0 1 0;
+#X connect 34 0 36 1;
+#X connect 34 0 37 1;
+#X connect 35 0 22 0;
+#X connect 35 1 32 0;
+#X connect 35 2 34 0;
+#X connect 36 0 5 0;
+#X connect 37 0 6 0;
+#X restore 6 362 pd calculate;
+#X obj 65 132 outlet;
+#X obj 230 12 loadbang;
+#N canvas 0 0 450 363 index 0;
+#X obj 63 212 outlet;
+#X obj 258 132 r \$0-arrpoint;
+#X obj 63 172 get \$0-bez-c y;
+#X obj 63 152 element \$0-bez-array \$0-bez-c-arr;
+#X obj 63 72 inlet;
+#X obj 156 52 r \$0-arrpoint;
+#X obj 156 72 getsize \$0-bez-array \$0-bez-c-arr;
+#X obj 63 112 maxlib/scale 0 1 0 0;
+#X obj 156 92 - 1;
+#X obj 63 192 / 99;
+#X connect 1 0 3 1;
+#X connect 2 0 9 0;
+#X connect 3 0 2 0;
+#X connect 4 0 7 0;
+#X connect 5 0 6 0;
+#X connect 6 0 8 0;
+#X connect 7 0 3 0;
+#X connect 8 0 7 4;
+#X connect 9 0 0 0;
+#X restore 65 112 pd index;
+#N canvas 0 0 450 300 size 0;
+#X obj 99 89 inlet;
+#X obj 294 149 r \$0-arrpoint;
+#X obj 99 169 setsize \$0-bez-array \$0-bez-c-arr;
+#X obj 99 109 s \$0-size;
+#X obj 99 149 r \$0-size;
+#X connect 0 0 3 0;
+#X connect 1 0 2 1;
+#X connect 4 0 2 0;
+#X restore 16 112 pd size;
+#N canvas 564 290 668 593 point-befehle 0;
+#X obj 228 58 route p0 p1 p2 p3;
+#X obj 189 18 inlet;
+#X obj 60 166 unpack;
+#X obj 150 86 r \$0-arrpoint;
+#X obj 150 116 t p p p p;
+#X obj 60 236 set \$0-bez-array p0x;
+#X obj 60 256 set \$0-bez-array p0y;
+#X obj 200 236 set \$0-bez-array p1x;
+#X obj 200 256 set \$0-bez-array p1y;
+#X obj 340 236 set \$0-bez-array p2x;
+#X obj 480 236 set \$0-bez-array p3x;
+#X obj 480 256 set \$0-bez-array p3y;
+#X obj 340 256 set \$0-bez-array p2y;
+#X obj 47 116 pointer;
+#X obj 47 362 get \$0-bez-array p0x;
+#X obj 57 402 set \$0-bez-array p0x.;
+#X obj 77 432 get \$0-bez-array p0y;
+#X obj 57 472 set \$0-bez-array p0y.;
+#X obj 47 332 t p p p p;
+#X obj 47 292 t p p p p;
+#X obj 197 332 t p p p p;
+#X obj 347 332 t p p p p;
+#X obj 496 332 t p p p p;
+#X obj 197 362 get \$0-bez-array p1x;
+#X obj 207 402 set \$0-bez-array p1x.;
+#X obj 227 432 get \$0-bez-array p1y;
+#X obj 207 472 set \$0-bez-array p1y.;
+#X obj 347 362 get \$0-bez-array p2x;
+#X obj 357 402 set \$0-bez-array p2x.;
+#X obj 377 432 get \$0-bez-array p2y;
+#X obj 357 472 set \$0-bez-array p2y.;
+#X obj 496 362 get \$0-bez-array p3x;
+#X obj 506 402 set \$0-bez-array p3x.;
+#X obj 526 432 get \$0-bez-array p3y;
+#X obj 506 472 set \$0-bez-array p3y.;
+#X obj 47 382 + 5;
+#X obj 77 452 + 5;
+#X obj 200 166 unpack;
+#X obj 340 166 unpack;
+#X obj 480 166 unpack;
+#X obj 23 82 outlet;
+#X obj 189 38 t b b a;
+#X obj 197 382 + 5;
+#X obj 227 452 + 5;
+#X obj 377 452 + 5;
+#X obj 347 382 + 5;
+#X obj 496 382 + 5;
+#X obj 526 452 + 5;
+#X obj 150 216 t p p;
+#X obj 291 216 t p p;
+#X obj 430 216 t p p;
+#X obj 570 216 t p p;
+#X obj 303 568 outlet;
+#N canvas 118 276 450 300 convert 0;
+#X obj 192 68 inlet;
+#X obj 164 188 outlet;
+#X obj 192 108 - 5;
+#X obj 192 128 * 0.01;
+#X obj 192 88 + 2;
+#X obj 242 68 inlet;
+#X obj 242 108 - 5;
+#X obj 242 128 * 0.01;
+#X obj 242 88 + 2;
+#X obj 164 158 pack f f f;
+#X obj 99 121 r \$0-dump;
+#X obj 282 68 r \$0-size;
+#X obj 282 88 inv;
+#X connect 0 0 4 0;
+#X connect 2 0 3 0;
+#X connect 3 0 9 1;
+#X connect 4 0 2 0;
+#X connect 5 0 8 0;
+#X connect 6 0 7 0;
+#X connect 7 0 9 2;
+#X connect 8 0 6 0;
+#X connect 9 0 1 0;
+#X connect 10 0 9 0;
+#X connect 11 0 12 0;
+#X connect 12 0 7 1;
+#X connect 12 0 3 1;
+#X restore 497 502 pd convert;
+#N canvas 118 276 450 300 convert 0;
+#X obj 192 68 inlet;
+#X obj 164 188 outlet;
+#X obj 192 108 - 5;
+#X obj 192 128 * 0.01;
+#X obj 192 88 + 2;
+#X obj 242 68 inlet;
+#X obj 242 108 - 5;
+#X obj 242 128 * 0.01;
+#X obj 242 88 + 2;
+#X obj 99 121 r \$0-dump;
+#X obj 164 158 pack f f f;
+#X obj 282 68 r \$0-size;
+#X obj 282 88 inv;
+#X connect 0 0 4 0;
+#X connect 2 0 3 0;
+#X connect 3 0 10 1;
+#X connect 4 0 2 0;
+#X connect 5 0 8 0;
+#X connect 6 0 7 0;
+#X connect 7 0 10 2;
+#X connect 8 0 6 0;
+#X connect 9 0 10 0;
+#X connect 10 0 1 0;
+#X connect 11 0 12 0;
+#X connect 12 0 7 1;
+#X connect 12 0 3 1;
+#X restore 347 502 pd convert;
+#N canvas 118 276 450 300 convert 0;
+#X obj 192 68 inlet;
+#X obj 164 188 outlet;
+#X obj 192 108 - 5;
+#X obj 192 128 * 0.01;
+#X obj 192 88 + 2;
+#X obj 242 68 inlet;
+#X obj 242 108 - 5;
+#X obj 242 128 * 0.01;
+#X obj 242 88 + 2;
+#X obj 164 158 pack f f f;
+#X obj 99 121 r \$0-dump;
+#X obj 282 68 r \$0-size;
+#X obj 282 88 inv;
+#X connect 0 0 4 0;
+#X connect 2 0 3 0;
+#X connect 3 0 9 1;
+#X connect 4 0 2 0;
+#X connect 5 0 8 0;
+#X connect 6 0 7 0;
+#X connect 7 0 9 2;
+#X connect 8 0 6 0;
+#X connect 9 0 1 0;
+#X connect 10 0 9 0;
+#X connect 11 0 12 0;
+#X connect 12 0 7 1;
+#X connect 12 0 3 1;
+#X restore 197 502 pd convert;
+#N canvas 118 276 450 300 convert 0;
+#X obj 192 68 inlet;
+#X obj 164 188 outlet;
+#X obj 192 108 - 5;
+#X obj 192 128 * 0.01;
+#X obj 192 88 + 2;
+#X obj 242 68 inlet;
+#X obj 242 108 - 5;
+#X obj 242 128 * 0.01;
+#X obj 242 88 + 2;
+#X obj 164 158 pack f f f;
+#X obj 99 121 r \$0-dump;
+#X obj 282 68 r \$0-size;
+#X obj 282 88 inv;
+#X connect 0 0 4 0;
+#X connect 2 0 3 0;
+#X connect 3 0 9 1;
+#X connect 4 0 2 0;
+#X connect 5 0 8 0;
+#X connect 6 0 7 0;
+#X connect 7 0 9 2;
+#X connect 8 0 6 0;
+#X connect 9 0 1 0;
+#X connect 10 0 9 0;
+#X connect 11 0 12 0;
+#X connect 12 0 7 1;
+#X connect 12 0 3 1;
+#X restore 47 502 pd convert;
+#X obj 233 186 * 100;
+#X obj 93 186 * 100;
+#X obj 373 186 * 100;
+#X obj 513 186 * 100;
+#X obj 513 206 - 2;
+#X obj 373 206 - 2;
+#X obj 233 206 - 2;
+#X obj 93 206 - 2;
+#X obj 60 206 - 2;
+#X obj 200 206 - 2;
+#X obj 340 206 - 2;
+#X obj 480 206 - 2;
+#X obj 480 186 * 100;
+#X obj 340 186 * 100;
+#X obj 200 186 * 100;
+#X obj 60 186 * 100;
+#X obj 491 61 r \$0-size;
+#X msg 47 522 list p0 \$2 \$3;
+#X msg 197 522 list p1 \$2 \$3;
+#X msg 347 522 list p2 \$2 \$3;
+#X msg 497 522 list p3 \$2 \$3;
+#X connect 0 0 2 0;
+#X connect 0 1 37 0;
+#X connect 0 2 38 0;
+#X connect 0 3 39 0;
+#X connect 1 0 41 0;
+#X connect 2 0 72 0;
+#X connect 2 1 58 0;
+#X connect 3 0 4 0;
+#X connect 3 0 13 0;
+#X connect 4 0 48 0;
+#X connect 4 1 49 0;
+#X connect 4 2 50 0;
+#X connect 4 3 51 0;
+#X connect 13 0 19 0;
+#X connect 14 0 35 0;
+#X connect 16 0 36 0;
+#X connect 18 0 14 0;
+#X connect 18 1 15 1;
+#X connect 18 2 16 0;
+#X connect 18 3 17 1;
+#X connect 19 0 18 0;
+#X connect 19 1 20 0;
+#X connect 19 2 21 0;
+#X connect 19 3 22 0;
+#X connect 20 0 23 0;
+#X connect 20 1 24 1;
+#X connect 20 2 25 0;
+#X connect 20 3 26 1;
+#X connect 21 0 27 0;
+#X connect 21 1 28 1;
+#X connect 21 2 29 0;
+#X connect 21 3 30 1;
+#X connect 22 0 31 0;
+#X connect 22 1 32 1;
+#X connect 22 2 33 0;
+#X connect 22 3 34 1;
+#X connect 23 0 42 0;
+#X connect 25 0 43 0;
+#X connect 27 0 45 0;
+#X connect 29 0 44 0;
+#X connect 31 0 46 0;
+#X connect 33 0 47 0;
+#X connect 35 0 15 0;
+#X connect 35 0 56 0;
+#X connect 36 0 17 0;
+#X connect 36 0 56 1;
+#X connect 37 0 71 0;
+#X connect 37 1 57 0;
+#X connect 38 0 70 0;
+#X connect 38 1 59 0;
+#X connect 39 0 69 0;
+#X connect 39 1 60 0;
+#X connect 41 0 40 0;
+#X connect 41 1 13 0;
+#X connect 41 2 0 0;
+#X connect 42 0 24 0;
+#X connect 42 0 55 0;
+#X connect 43 0 26 0;
+#X connect 43 0 55 1;
+#X connect 44 0 30 0;
+#X connect 44 0 54 1;
+#X connect 45 0 28 0;
+#X connect 45 0 54 0;
+#X connect 46 0 32 0;
+#X connect 46 0 53 0;
+#X connect 47 0 34 0;
+#X connect 47 0 53 1;
+#X connect 48 0 6 1;
+#X connect 48 1 5 1;
+#X connect 49 0 8 1;
+#X connect 49 1 7 1;
+#X connect 50 0 12 1;
+#X connect 50 1 9 1;
+#X connect 51 0 11 1;
+#X connect 51 1 10 1;
+#X connect 53 0 77 0;
+#X connect 54 0 76 0;
+#X connect 55 0 75 0;
+#X connect 56 0 74 0;
+#X connect 57 0 63 0;
+#X connect 58 0 64 0;
+#X connect 59 0 62 0;
+#X connect 60 0 61 0;
+#X connect 61 0 11 0;
+#X connect 62 0 12 0;
+#X connect 63 0 8 0;
+#X connect 64 0 6 0;
+#X connect 65 0 5 0;
+#X connect 66 0 7 0;
+#X connect 67 0 9 0;
+#X connect 68 0 10 0;
+#X connect 69 0 68 0;
+#X connect 70 0 67 0;
+#X connect 71 0 66 0;
+#X connect 72 0 65 0;
+#X connect 73 0 60 1;
+#X connect 73 0 69 1;
+#X connect 73 0 59 1;
+#X connect 73 0 70 1;
+#X connect 73 0 57 1;
+#X connect 73 0 71 1;
+#X connect 73 0 58 1;
+#X connect 73 0 72 1;
+#X connect 74 0 52 0;
+#X connect 75 0 52 0;
+#X connect 76 0 52 0;
+#X connect 77 0 52 0;
+#X restore 75 342 pd point-befehle;
+#X obj 240 32 t b b b;
+#X msg 115 312 p0 0 0 \, p1 0.2 0.4 \, p2 0.8 0.6 \, p3 1 1;
+#X obj 168 362 outlet;
+#X obj 20 72 route size float canvas dump;
+#X obj 143 132 s \$0-dump;
+#X obj 143 112 0;
+#X obj 220 152 110;
+#N canvas 0 0 450 300 size-init 0;
+#X obj 154 93 inlet;
+#X obj 154 133 sel 0;
+#X obj 154 113 \$1;
+#X obj 154 153 100;
+#X obj 154 183 s \$0-size;
+#X connect 0 0 2 0;
+#X connect 1 0 3 0;
+#X connect 1 1 4 0;
+#X connect 2 0 1 0;
+#X connect 3 0 4 0;
+#X restore 259 72 pd size-init;
+#N canvas 0 0 450 300 create-init 0;
+#X obj 129 118 pointer;
+#X obj 129 78 symbol \$0-bezier-a;
+#X obj 129 198 s \$0-arrpoint;
+#X obj 129 178 append \$0-bez-array x y;
+#X msg 129 158 0 0;
+#X msg 129 98 traverse \$1 \, bang;
+#X obj 129 138 t b p;
+#X obj 129 58 inlet;
+#X connect 0 0 6 0;
+#X connect 1 0 5 0;
+#X connect 3 0 2 0;
+#X connect 4 0 3 0;
+#X connect 5 0 0 0;
+#X connect 6 0 4 0;
+#X connect 6 1 3 2;
+#X connect 7 0 1 0;
+#X restore 279 52 pd create-init;
+#X text 258 111 canvas init;
+#X obj 230 112 \$2;
+#X obj 220 202 t f f;
+#X obj 220 222 pack;
+#X obj 220 182 route float list;
+#X msg 260 252 donecanvasdialog 1 -1 2 -20 120 120 -20 \$1 \$2 0 0
+;
+#X connect 0 0 14 0;
+#X connect 2 0 17 0;
+#X connect 2 1 25 0;
+#X connect 4 0 5 0;
+#X connect 7 0 11 0;
+#X connect 7 0 21 0;
+#X connect 8 0 6 0;
+#X connect 10 0 5 1;
+#X connect 10 1 13 0;
+#X connect 11 0 12 0;
+#X connect 11 1 18 0;
+#X connect 11 2 19 0;
+#X connect 12 0 10 0;
+#X connect 14 0 9 0;
+#X connect 14 1 8 0;
+#X connect 14 2 24 0;
+#X connect 14 3 16 0;
+#X connect 14 4 10 0;
+#X connect 16 0 15 0;
+#X connect 17 0 24 0;
+#X connect 21 0 2 0;
+#X connect 22 0 23 0;
+#X connect 22 1 23 1;
+#X connect 23 0 25 0;
+#X connect 24 0 22 0;
+#X connect 24 1 25 0;
+#X connect 25 0 1 0;
+#X restore 217 30 pd inside;
+#X obj 287 10 namecanvas \$0-bezier-a;
+#X obj 217 50 outlet;
+#X obj 268 50 outlet;
+#X connect 2 0 3 0;
+#X connect 3 0 5 0;
+#X connect 3 1 6 0;
+#X coords -20 120 120 -20 100 100 2 0 0;
+#X restore 115 156 pd bezier-a;
+#X text 415 67 o resultado ainda nao funciona bem;
+#X connect 1 0 30 0;
+#X connect 2 0 30 0;
+#X connect 4 0 30 0;
+#X connect 7 0 1 0;
+#X connect 10 0 30 0;
+#X connect 11 0 10 0;
+#X connect 15 0 30 0;
+#X connect 17 0 30 0;
+#X connect 18 0 17 0;
+#X connect 19 0 30 0;
+#X connect 21 0 7 0;
+#X connect 22 0 21 0;
+#X connect 25 0 30 0;
+#X connect 26 0 25 0;
+#X connect 27 0 26 0;
+#X connect 28 0 29 0;
+#X connect 29 0 26 0;
+#X connect 29 1 26 1;
+#X connect 30 0 0 0;
+#X connect 30 0 8 0;
+#X connect 30 1 5 0;
diff --git a/bezier.pd b/bezier.pd
new file mode 100644
index 0000000..480bcd7
--- /dev/null
+++ b/bezier.pd
@@ -0,0 +1,474 @@
+#N canvas 0 0 620 725 10;
+#X obj 227 20 inlet;
+#N canvas 782 318 534 370 inside 0;
+#X obj 30 42 inlet;
+#X obj 230 252 s \$0-bezier-a;
+#X obj 230 182 sel 0;
+#N canvas 0 0 450 300 element 0;
+#X obj 52 46 struct \$0-bez-c float x float y;
+#X restore 16 242 pd element;
+#N canvas 113 250 606 425 array 0;
+#X obj 58 96 route change click;
+#X obj 78 130 unpack p f;
+#X obj 58 24 struct \$0-bez-array float x float y array \$0-bez-c-arr
+\$0-bez-c float p0x float p0y float p0x. float p0y. float p1x float
+p1y float p1x. float p1y. float p2x float p2y float p2x. float p2y.
+float p3x float p3y float p3x. float p3y.;
+#X obj 31 312 filledpolygon 0 0 1 p1x p1y p1x. p1y p1x. p1y. p1x p1y.
+p1x p1y;
+#X obj 31 345 filledpolygon 0 0 1 p2x p2y p2x. p2y p2x. p2y. p2x p2y.
+p2x p2y;
+#X obj 78 150 t b p;
+#X obj 78 210 outlet;
+#X obj 105 170 s \$0-arrpoint;
+#X obj 78 190 speedlim 150;
+#X text 40 254 4 control points \, 2 extremos nao saem da caixa;
+#X obj 213 160 drawpolygon 0 1 0 0 0 100 100 100 100 0 0 0;
+#X obj 31 378 filledpolygon 0 0 1 p3x(-2:98)(-2:98) p3y(-2:98)(-2:98)
+p3x. p3y p3x. p3y. p3x p3y. p3x p3y;
+#X obj 31 279 filledpolygon 0 0 1 p0x(-2:98)(-2:98) p0y(-2:98)(-2:98)
+p0x. p0y p0x. p0y. p0x p0y. p0x p0y;
+#X obj 213 130 plot \$0-bez-c-arr 9 2 0 0;
+#X connect 0 0 1 0;
+#X connect 0 1 1 0;
+#X connect 1 0 5 0;
+#X connect 2 0 0 0;
+#X connect 5 0 8 0;
+#X connect 5 1 7 0;
+#X connect 8 0 6 0;
+#X restore 16 262 pd array;
+#N canvas 604 353 469 520 calculate 0;
+#X obj 27 42 inlet;
+#X obj 27 112 until;
+#X obj 27 132 f+ 0;
+#X obj 27 92 101;
+#X obj 27 172 * 0.01;
+#X obj 27 262 expr (-$f2+3*$f3-3*$f4+$f5)*pow($f1 \, 3) + (3*$f2-6*$f3+3*$f4)*pow($f1
+\, 2) + (3*$f3-3*$f2)*$f1 + $f2;
+#X obj 46 335 expr (-$f2+3*$f3-3*$f4+$f5)*pow($f1 \, 3) + (3*$f2-6*$f3+3*$f4)*pow($f1
+\, 2) + (3*$f3-3*$f2)*$f1 + $f2;
+#X obj 27 242 pack f f f f f;
+#X obj 46 315 pack f f f f f;
+#X obj 228 378 r \$0-arrpoint;
+#X obj 108 408 element \$0-bez-array \$0-bez-c-arr;
+#X obj 46 468 set \$0-bez-c y;
+#X obj 27 448 set \$0-bez-c x;
+#X obj 108 428 t p p;
+#X obj 27 152 t f f f;
+#X obj 46 192 * 0.01;
+#X text 142 11 array com 100 pontos. fazer 200? \; e necessario estar
+a escalonar tudo? talvez nao;
+#X obj 121 120 get \$0-bez-array p0x;
+#X obj 291 120 get \$0-bez-array p0y;
+#X obj 321 180 get \$0-bez-array p3y;
+#X obj 151 180 get \$0-bez-array p3x;
+#X obj 141 160 get \$0-bez-array p2x;
+#X obj 311 160 get \$0-bez-array p2y;
+#X obj 300 140 get \$0-bez-array p1y;
+#X obj 131 140 get \$0-bez-array p1x;
+#X obj 27 72 t b b;
+#X obj 121 200 + 2;
+#X obj 151 200 + 2;
+#X obj 321 200 + 2;
+#X obj 291 200 + 2;
+#X obj 77 32 inlet;
+#X obj 121 50 r \$0-arrpoint;
+#X obj 121 80 pointer;
+#X obj 77 52 t b b;
+#X connect 0 0 25 0;
+#X connect 1 0 2 0;
+#X connect 2 0 14 0;
+#X connect 3 0 1 0;
+#X connect 4 0 7 0;
+#X connect 5 0 12 0;
+#X connect 6 0 11 0;
+#X connect 7 0 5 0;
+#X connect 8 0 6 0;
+#X connect 9 0 10 1;
+#X connect 10 0 13 0;
+#X connect 13 0 12 1;
+#X connect 13 1 11 1;
+#X connect 14 0 4 0;
+#X connect 14 1 15 0;
+#X connect 14 2 10 0;
+#X connect 15 0 8 0;
+#X connect 17 0 26 0;
+#X connect 18 0 29 0;
+#X connect 19 0 28 0;
+#X connect 20 0 27 0;
+#X connect 21 0 7 3;
+#X connect 22 0 8 3;
+#X connect 23 0 8 2;
+#X connect 24 0 7 2;
+#X connect 25 0 3 0;
+#X connect 25 1 2 1;
+#X connect 26 0 7 1;
+#X connect 27 0 7 4;
+#X connect 28 0 8 4;
+#X connect 29 0 8 1;
+#X connect 30 0 33 0;
+#X connect 31 0 32 0;
+#X connect 32 0 17 0;
+#X connect 32 0 18 0;
+#X connect 32 0 23 0;
+#X connect 32 0 22 0;
+#X connect 32 0 19 0;
+#X connect 32 0 24 0;
+#X connect 32 0 21 0;
+#X connect 32 0 20 0;
+#X connect 33 0 25 0;
+#X connect 33 1 32 0;
+#X restore 16 282 pd calculate;
+#X obj 75 122 outlet;
+#X text 68 140 escalonar 0-1;
+#X obj 289 92 pointer;
+#X obj 289 52 symbol \$0-bezier-a;
+#X obj 240 162 \$1;
+#X obj 240 12 loadbang;
+#X obj 289 172 s \$0-arrpoint;
+#X obj 230 202 100;
+#X msg 230 232 donecanvasdialog 1 -1 2 -10 110 110 -10 \$1 \$1 0 0
+;
+#N canvas 0 0 450 300 index 0;
+#X obj 65 258 outlet;
+#X obj 185 88 r \$0-arrpoint;
+#X obj 65 138 get \$0-bez-c y;
+#X obj 65 118 element \$0-bez-array \$0-bez-c-arr;
+#X obj 80 218 inv;
+#X obj 65 238 *;
+#X obj 80 158 r \$0-arrpoint;
+#X obj 80 178 getsize \$0-bez-array \$0-bez-c-arr;
+#X obj 80 198 - 1;
+#X obj 65 98 inlet;
+#X connect 1 0 3 1;
+#X connect 2 0 5 0;
+#X connect 3 0 2 0;
+#X connect 4 0 5 1;
+#X connect 5 0 0 0;
+#X connect 6 0 7 0;
+#X connect 7 0 8 0;
+#X connect 8 0 4 0;
+#X connect 9 0 3 0;
+#X restore 75 102 pd index;
+#N canvas 0 0 450 300 size 0;
+#X obj 99 149 inlet;
+#X obj 294 149 r \$0-arrpoint;
+#X obj 99 169 setsize \$0-bez-array \$0-bez-c-arr;
+#X connect 0 0 2 0;
+#X connect 1 0 2 1;
+#X restore 26 102 pd size;
+#X obj 289 152 append \$0-bez-array x y;
+#X msg 289 132 0 0;
+#N canvas 174 133 668 593 point-befehle 0;
+#X obj 228 58 route p0 p1 p2 p3;
+#X obj 189 18 inlet;
+#X obj 60 166 unpack;
+#X obj 150 86 r \$0-arrpoint;
+#X obj 150 116 t p p p p;
+#X obj 60 236 set \$0-bez-array p0x;
+#X obj 60 256 set \$0-bez-array p0y;
+#X obj 200 236 set \$0-bez-array p1x;
+#X obj 200 256 set \$0-bez-array p1y;
+#X obj 340 236 set \$0-bez-array p2x;
+#X obj 480 236 set \$0-bez-array p3x;
+#X obj 480 256 set \$0-bez-array p3y;
+#X obj 340 256 set \$0-bez-array p2y;
+#X obj 47 116 pointer;
+#X obj 47 362 get \$0-bez-array p0x;
+#X obj 57 402 set \$0-bez-array p0x.;
+#X obj 77 432 get \$0-bez-array p0y;
+#X obj 57 472 set \$0-bez-array p0y.;
+#X obj 47 332 t p p p p;
+#X obj 47 292 t p p p p;
+#X obj 197 332 t p p p p;
+#X obj 347 332 t p p p p;
+#X obj 496 332 t p p p p;
+#X obj 197 362 get \$0-bez-array p1x;
+#X obj 207 402 set \$0-bez-array p1x.;
+#X obj 227 432 get \$0-bez-array p1y;
+#X obj 207 472 set \$0-bez-array p1y.;
+#X obj 347 362 get \$0-bez-array p2x;
+#X obj 357 402 set \$0-bez-array p2x.;
+#X obj 377 432 get \$0-bez-array p2y;
+#X obj 357 472 set \$0-bez-array p2y.;
+#X obj 496 362 get \$0-bez-array p3x;
+#X obj 506 402 set \$0-bez-array p3x.;
+#X obj 526 432 get \$0-bez-array p3y;
+#X obj 506 472 set \$0-bez-array p3y.;
+#X obj 47 382 + 5;
+#X obj 77 452 + 5;
+#X obj 200 166 unpack;
+#X obj 340 166 unpack;
+#X obj 480 166 unpack;
+#X obj 23 82 outlet;
+#X obj 189 38 t b b a;
+#X obj 197 382 + 5;
+#X obj 227 452 + 5;
+#X obj 377 452 + 5;
+#X obj 347 382 + 5;
+#X obj 496 382 + 5;
+#X obj 526 452 + 5;
+#X obj 150 216 t p p;
+#X obj 291 216 t p p;
+#X obj 430 216 t p p;
+#X obj 570 216 t p p;
+#X obj 303 568 outlet;
+#N canvas 118 276 450 300 convert 0;
+#X obj 192 68 inlet;
+#X obj 164 188 outlet;
+#X obj 192 108 - 5;
+#X obj 192 128 * 0.01;
+#X obj 192 88 + 2;
+#X obj 242 68 inlet;
+#X obj 242 108 - 5;
+#X obj 242 128 * 0.01;
+#X obj 242 88 + 2;
+#X obj 164 158 pack f f f;
+#X obj 99 121 r \$0-dump;
+#X connect 0 0 4 0;
+#X connect 2 0 3 0;
+#X connect 3 0 9 1;
+#X connect 4 0 2 0;
+#X connect 5 0 8 0;
+#X connect 6 0 7 0;
+#X connect 7 0 9 2;
+#X connect 8 0 6 0;
+#X connect 9 0 1 0;
+#X connect 10 0 9 0;
+#X restore 497 502 pd convert;
+#X msg 497 522 p3 \$2 \$3;
+#N canvas 118 276 450 300 convert 0;
+#X obj 192 68 inlet;
+#X obj 164 188 outlet;
+#X obj 192 108 - 5;
+#X obj 192 128 * 0.01;
+#X obj 192 88 + 2;
+#X obj 242 68 inlet;
+#X obj 242 108 - 5;
+#X obj 242 128 * 0.01;
+#X obj 242 88 + 2;
+#X obj 99 121 r \$0-dump;
+#X obj 164 158 pack f f f;
+#X connect 0 0 4 0;
+#X connect 2 0 3 0;
+#X connect 3 0 10 1;
+#X connect 4 0 2 0;
+#X connect 5 0 8 0;
+#X connect 6 0 7 0;
+#X connect 7 0 10 2;
+#X connect 8 0 6 0;
+#X connect 9 0 10 0;
+#X connect 10 0 1 0;
+#X restore 347 502 pd convert;
+#N canvas 118 276 450 300 convert 0;
+#X obj 192 68 inlet;
+#X obj 164 188 outlet;
+#X obj 192 108 - 5;
+#X obj 192 128 * 0.01;
+#X obj 192 88 + 2;
+#X obj 242 68 inlet;
+#X obj 242 108 - 5;
+#X obj 242 128 * 0.01;
+#X obj 242 88 + 2;
+#X obj 164 158 pack f f f;
+#X obj 99 121 r \$0-dump;
+#X connect 0 0 4 0;
+#X connect 2 0 3 0;
+#X connect 3 0 9 1;
+#X connect 4 0 2 0;
+#X connect 5 0 8 0;
+#X connect 6 0 7 0;
+#X connect 7 0 9 2;
+#X connect 8 0 6 0;
+#X connect 9 0 1 0;
+#X connect 10 0 9 0;
+#X restore 197 502 pd convert;
+#N canvas 118 276 450 300 convert 0;
+#X obj 192 68 inlet;
+#X obj 164 188 outlet;
+#X obj 192 108 - 5;
+#X obj 192 128 * 0.01;
+#X obj 192 88 + 2;
+#X obj 242 68 inlet;
+#X obj 242 108 - 5;
+#X obj 242 128 * 0.01;
+#X obj 242 88 + 2;
+#X obj 164 158 pack f f f;
+#X obj 99 121 r \$0-dump;
+#X connect 0 0 4 0;
+#X connect 2 0 3 0;
+#X connect 3 0 9 1;
+#X connect 4 0 2 0;
+#X connect 5 0 8 0;
+#X connect 6 0 7 0;
+#X connect 7 0 9 2;
+#X connect 8 0 6 0;
+#X connect 9 0 1 0;
+#X connect 10 0 9 0;
+#X restore 47 502 pd convert;
+#X msg 347 522 p2 \$2 \$3;
+#X msg 197 522 p1 \$2 \$3;
+#X msg 47 522 p0 \$2 \$3;
+#X obj 233 186 * 100;
+#X obj 93 186 * 100;
+#X obj 373 186 * 100;
+#X obj 513 186 * 100;
+#X obj 513 206 - 2;
+#X obj 373 206 - 2;
+#X obj 233 206 - 2;
+#X obj 93 206 - 2;
+#X obj 60 206 - 2;
+#X obj 200 206 - 2;
+#X obj 340 206 - 2;
+#X obj 480 206 - 2;
+#X obj 480 186 * 100;
+#X obj 340 186 * 100;
+#X obj 200 186 * 100;
+#X obj 60 186 * 100;
+#X connect 0 0 2 0;
+#X connect 0 1 37 0;
+#X connect 0 2 38 0;
+#X connect 0 3 39 0;
+#X connect 1 0 41 0;
+#X connect 2 0 76 0;
+#X connect 2 1 62 0;
+#X connect 3 0 4 0;
+#X connect 3 0 13 0;
+#X connect 4 0 48 0;
+#X connect 4 1 49 0;
+#X connect 4 2 50 0;
+#X connect 4 3 51 0;
+#X connect 13 0 19 0;
+#X connect 14 0 35 0;
+#X connect 16 0 36 0;
+#X connect 18 0 14 0;
+#X connect 18 1 15 1;
+#X connect 18 2 16 0;
+#X connect 18 3 17 1;
+#X connect 19 0 18 0;
+#X connect 19 1 20 0;
+#X connect 19 2 21 0;
+#X connect 19 3 22 0;
+#X connect 20 0 23 0;
+#X connect 20 1 24 1;
+#X connect 20 2 25 0;
+#X connect 20 3 26 1;
+#X connect 21 0 27 0;
+#X connect 21 1 28 1;
+#X connect 21 2 29 0;
+#X connect 21 3 30 1;
+#X connect 22 0 31 0;
+#X connect 22 1 32 1;
+#X connect 22 2 33 0;
+#X connect 22 3 34 1;
+#X connect 23 0 42 0;
+#X connect 25 0 43 0;
+#X connect 27 0 45 0;
+#X connect 29 0 44 0;
+#X connect 31 0 46 0;
+#X connect 33 0 47 0;
+#X connect 35 0 15 0;
+#X connect 35 0 57 0;
+#X connect 36 0 17 0;
+#X connect 36 0 57 1;
+#X connect 37 0 75 0;
+#X connect 37 1 61 0;
+#X connect 38 0 74 0;
+#X connect 38 1 63 0;
+#X connect 39 0 73 0;
+#X connect 39 1 64 0;
+#X connect 41 0 40 0;
+#X connect 41 1 13 0;
+#X connect 41 2 0 0;
+#X connect 42 0 24 0;
+#X connect 42 0 56 0;
+#X connect 43 0 26 0;
+#X connect 43 0 56 1;
+#X connect 44 0 30 0;
+#X connect 44 0 55 1;
+#X connect 45 0 28 0;
+#X connect 45 0 55 0;
+#X connect 46 0 32 0;
+#X connect 46 0 53 0;
+#X connect 47 0 34 0;
+#X connect 47 0 53 1;
+#X connect 48 0 6 1;
+#X connect 48 1 5 1;
+#X connect 49 0 8 1;
+#X connect 49 1 7 1;
+#X connect 50 0 12 1;
+#X connect 50 1 9 1;
+#X connect 51 0 11 1;
+#X connect 51 1 10 1;
+#X connect 53 0 54 0;
+#X connect 54 0 52 0;
+#X connect 55 0 58 0;
+#X connect 56 0 59 0;
+#X connect 57 0 60 0;
+#X connect 58 0 52 0;
+#X connect 59 0 52 0;
+#X connect 60 0 52 0;
+#X connect 61 0 67 0;
+#X connect 62 0 68 0;
+#X connect 63 0 66 0;
+#X connect 64 0 65 0;
+#X connect 65 0 11 0;
+#X connect 66 0 12 0;
+#X connect 67 0 8 0;
+#X connect 68 0 6 0;
+#X connect 69 0 5 0;
+#X connect 70 0 7 0;
+#X connect 71 0 9 0;
+#X connect 72 0 10 0;
+#X connect 73 0 72 0;
+#X connect 74 0 71 0;
+#X connect 75 0 70 0;
+#X connect 76 0 69 0;
+#X restore 85 262 pd point-befehle;
+#X msg 289 72 traverse \$1 \, bang;
+#X obj 289 112 t b p;
+#X obj 250 32 t b b b;
+#X obj 259 62 101;
+#X msg 105 312 p0 0 0 \, p1 0.2 0.4 \, p2 0.8 0.6 \, p3 1 1;
+#X obj 178 282 outlet;
+#X obj 30 62 route size float canvas dump;
+#X obj 153 122 s \$0-dump;
+#X obj 153 102 0;
+#X connect 0 0 26 0;
+#X connect 2 0 13 0;
+#X connect 2 1 14 0;
+#X connect 4 0 5 0;
+#X connect 8 0 21 0;
+#X connect 9 0 20 0;
+#X connect 10 0 2 0;
+#X connect 11 0 10 0;
+#X connect 11 0 22 0;
+#X connect 13 0 14 0;
+#X connect 14 0 1 0;
+#X connect 15 0 6 0;
+#X connect 17 0 12 0;
+#X connect 18 0 17 0;
+#X connect 19 0 5 1;
+#X connect 19 1 25 0;
+#X connect 20 0 8 0;
+#X connect 21 0 18 0;
+#X connect 21 1 17 2;
+#X connect 22 0 24 0;
+#X connect 22 1 23 0;
+#X connect 22 2 9 0;
+#X connect 23 0 16 0;
+#X connect 24 0 19 0;
+#X connect 26 0 16 0;
+#X connect 26 1 15 0;
+#X connect 26 2 2 0;
+#X connect 26 3 28 0;
+#X connect 26 4 19 0;
+#X connect 28 0 27 0;
+#X restore 227 40 pd inside;
+#X obj 297 20 namecanvas \$0-bezier-a;
+#X obj 227 60 outlet;
+#X obj 278 60 outlet;
+#X connect 0 0 1 0;
+#X connect 1 0 3 0;
+#X connect 1 1 4 0;
+#X coords -10 110 110 -10 100 100 2 0 0;