aboutsummaryrefslogtreecommitdiff
path: root/array-edit.pd
diff options
context:
space:
mode:
authorJoão Pais <jmmmp@users.sourceforge.net>2013-05-09 12:25:44 +0000
committerJoão Pais <jmmmp@users.sourceforge.net>2013-05-09 12:25:44 +0000
commitb073c6e93f0623f2e65ddf9d8593d63843c48b84 (patch)
tree89474db6d692d2c849488b3ea6a506bc9fdc28b6 /array-edit.pd
parentfd16467f39d490d4096923a41b5929f4b0a78fd9 (diff)
svn path=/trunk/abstractions/jmmmp/; revision=17121
Diffstat (limited to 'array-edit.pd')
-rw-r--r--array-edit.pd1558
1 files changed, 784 insertions, 774 deletions
diff --git a/array-edit.pd b/array-edit.pd
index 1f1ca67..86981c4 100644
--- a/array-edit.pd
+++ b/array-edit.pd
@@ -1,774 +1,784 @@
-#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;
+#N canvas 68 0 414 704 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);
+#N canvas 278 215 494 344 META 0;
+#X text 12 55 AUTHOR João Pais <jmmmpais@googlemail.com>;
+#X text 12 95 LICENSE BSD;
+#X text 12 75 LIBRARY jmmmp;
+#X text 12 35 KEYWORDS array edit;
+#X text 12 5 DESCRIPTION Edit and populate your array;
+#X text 12 135 VERSION 2009;
+#X text 13 115 WEBSITE http://puredata.info/Members/jmmmp;
+#X text 12 165 INLET_0 - symbol name of array to be edited;
+#X restore 32 744 pd META;
+#X connect 44 0 45 0;
+#X connect 64 0 0 0;