From efed3833da03cda6df11163e2ffccc52072ba099 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Pais?= Date: Fri, 9 Jul 2010 08:32:33 +0000 Subject: svn path=/trunk/abstractions/jmmmp/; revision=13700 --- array-edit.pd | 1532 +++++++++++++++++++++++++++++---------------------------- 1 file changed, 774 insertions(+), 758 deletions(-) (limited to 'array-edit.pd') 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; -- cgit v1.2.1