diff options
author | João Pais <jmmmp@users.sourceforge.net> | 2010-07-09 08:32:33 +0000 |
---|---|---|
committer | João Pais <jmmmp@users.sourceforge.net> | 2010-07-09 08:32:33 +0000 |
commit | efed3833da03cda6df11163e2ffccc52072ba099 (patch) | |
tree | a7b1d77621f87abe3222edabb7bee5d64d241cab /array-edit.pd | |
parent | d89ca0fc9273e9d82f5be5bf175db38e2dbb53d8 (diff) |
svn path=/trunk/abstractions/jmmmp/; revision=13700
Diffstat (limited to 'array-edit.pd')
-rw-r--r-- | array-edit.pd | 1532 |
1 files changed, 774 insertions, 758 deletions
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; |