- merge v0.01 --> Añadido fileselector - Añadidas fuentes de Gem y Pure Data - pix2jpg incluído en Gem. Archivos de construcción de Gem modificados. - Añadido fichero ompiling.txt con instrucciones de compilación
421 lines
11 KiB
Text
421 lines
11 KiB
Text
#N canvas 502 83 570 415 12;
|
|
#N canvas 105 328 986 609 fft 0;
|
|
#X obj 18 500 *~;
|
|
#X obj 291 455 *~;
|
|
#X obj 258 454 *~;
|
|
#X obj 356 456 *~;
|
|
#X obj 324 455 *~;
|
|
#X obj 324 477 +~;
|
|
#X obj 258 479 -~;
|
|
#X obj 560 383 *~;
|
|
#X obj 54 124 *~;
|
|
#X obj 22 124 *~;
|
|
#X obj 22 145 +~;
|
|
#X obj 325 82 *~;
|
|
#X obj 293 82 *~;
|
|
#X obj 608 312 *~;
|
|
#X obj 576 312 *~;
|
|
#X obj 93 63 *~;
|
|
#X obj 18 522 outlet~;
|
|
#X obj 18 475 *~;
|
|
#X obj 126 63 inlet~;
|
|
#X obj 93 84 rfft~;
|
|
#X obj 18 451 rifft~;
|
|
#X obj 576 334 rsqrt~;
|
|
#X obj 293 103 +~;
|
|
#X obj 484 383 *~;
|
|
#X obj 56 499 sig~ 0.0002;
|
|
#N canvas 167 161 699 396 decision 0;
|
|
#X obj 49 101 inlet~;
|
|
#X obj 50 341 outlet~;
|
|
#X obj 50 183 -~;
|
|
#X obj 50 226 clip~ 0 1;
|
|
#X obj 50 204 *~ 1e+20;
|
|
#X obj 196 98 inlet~;
|
|
#X text 137 213 stronger than;
|
|
#X text 139 228 old one;
|
|
#X obj 274 202 -~;
|
|
#X obj 288 177 lrshift~ 1;
|
|
#X obj 274 250 clip~ 0 1;
|
|
#X obj 274 228 *~ 1e+20;
|
|
#X obj 450 202 -~;
|
|
#X obj 450 250 clip~ 0 1;
|
|
#X obj 450 228 *~ 1e+20;
|
|
#X obj 464 177 lrshift~ -1;
|
|
#X obj 50 283 *~;
|
|
#X obj 50 312 *~;
|
|
#X text 135 199 1 if new signal;
|
|
#X text 55 73 new;
|
|
#X text 203 70 old;
|
|
#X text 51 12 Choose whether to replace the "lod" signal with the "new"
|
|
one. The "new" one must be stronger than the old one and also must
|
|
be stronger than its two neighboring channels;
|
|
#X text 267 283 1 if we're louder than neighbor;
|
|
#X connect 0 0 2 0;
|
|
#X connect 0 0 9 0;
|
|
#X connect 0 0 8 0;
|
|
#X connect 0 0 12 0;
|
|
#X connect 0 0 15 0;
|
|
#X connect 2 0 4 0;
|
|
#X connect 3 0 16 0;
|
|
#X connect 4 0 3 0;
|
|
#X connect 5 0 2 1;
|
|
#X connect 8 0 11 0;
|
|
#X connect 9 0 8 1;
|
|
#X connect 10 0 16 1;
|
|
#X connect 11 0 10 0;
|
|
#X connect 12 0 14 0;
|
|
#X connect 13 0 17 1;
|
|
#X connect 14 0 13 0;
|
|
#X connect 15 0 12 1;
|
|
#X connect 16 0 17 0;
|
|
#X connect 17 0 1 0;
|
|
#X restore 23 172 pd decision;
|
|
#X obj 576 356 *~;
|
|
#N canvas 276 481 755 363 divide-by-prev 0;
|
|
#X obj 283 99 inlet~;
|
|
#X obj 385 101 inlet~;
|
|
#X obj 284 249 outlet~;
|
|
#X obj 386 249 outlet~;
|
|
#X obj 107 251 outlet~;
|
|
#X obj 208 253 outlet~;
|
|
#X obj 250 180 *~;
|
|
#X obj 217 180 *~;
|
|
#X obj 182 181 *~;
|
|
#X obj 149 181 *~;
|
|
#X obj 149 203 +~;
|
|
#X obj 217 202 -~;
|
|
#X obj 92 49 tabreceive~ \$0-last-real;
|
|
#X obj 190 72 tabreceive~ \$0-last-imag;
|
|
#X connect 0 0 2 0;
|
|
#X connect 0 0 9 0;
|
|
#X connect 0 0 6 0;
|
|
#X connect 1 0 3 0;
|
|
#X connect 1 0 8 0;
|
|
#X connect 1 0 7 0;
|
|
#X connect 6 0 11 1;
|
|
#X connect 7 0 11 0;
|
|
#X connect 8 0 10 1;
|
|
#X connect 9 0 10 0;
|
|
#X connect 10 0 4 0;
|
|
#X connect 11 0 5 0;
|
|
#X connect 12 0 9 1;
|
|
#X connect 12 0 7 1;
|
|
#X connect 13 0 8 1;
|
|
#X connect 13 0 6 1;
|
|
#X restore 603 192 pd divide-by-prev;
|
|
#N canvas 650 183 602 327 switch 0;
|
|
#X obj 19 163 inlet~;
|
|
#X obj 107 99 inlet~;
|
|
#X obj 169 100 inlet~;
|
|
#X obj 273 97 inlet~;
|
|
#X obj 333 97 inlet~;
|
|
#X obj 367 185 -~;
|
|
#X obj 338 231 +~;
|
|
#X obj 372 229 *~;
|
|
#X obj 250 182 -~;
|
|
#X obj 220 228 +~;
|
|
#X obj 254 228 *~;
|
|
#X obj 219 278 outlet~;
|
|
#X obj 338 274 outlet~;
|
|
#X text 46 28 switch between two pairs of inputs. If first inlet is
|
|
one \, take the left-hand pair \, otherwise the right-hand one.;
|
|
#X text 15 140 switch;
|
|
#X text 92 76 pass this if one;
|
|
#X text 269 77 pass this if zero;
|
|
#X connect 0 0 10 1;
|
|
#X connect 0 0 7 1;
|
|
#X connect 1 0 8 0;
|
|
#X connect 2 0 5 0;
|
|
#X connect 3 0 9 0;
|
|
#X connect 3 0 8 1;
|
|
#X connect 4 0 6 0;
|
|
#X connect 4 0 5 1;
|
|
#X connect 5 0 7 0;
|
|
#X connect 6 0 12 0;
|
|
#X connect 7 0 6 1;
|
|
#X connect 8 0 10 0;
|
|
#X connect 9 0 11 0;
|
|
#X connect 10 0 9 1;
|
|
#X restore 327 275 pd switch;
|
|
#N canvas 650 183 602 327 switch 0;
|
|
#X obj 19 163 inlet~;
|
|
#X obj 107 99 inlet~;
|
|
#X obj 169 100 inlet~;
|
|
#X obj 273 97 inlet~;
|
|
#X obj 333 97 inlet~;
|
|
#X obj 367 185 -~;
|
|
#X obj 338 231 +~;
|
|
#X obj 372 229 *~;
|
|
#X obj 250 182 -~;
|
|
#X obj 220 228 +~;
|
|
#X obj 254 228 *~;
|
|
#X obj 219 278 outlet~;
|
|
#X obj 338 274 outlet~;
|
|
#X text 46 28 switch between two pairs of inputs. If first inlet is
|
|
one \, take the left-hand pair \, otherwise the right-hand one.;
|
|
#X text 15 140 switch;
|
|
#X text 92 76 pass this if one;
|
|
#X text 269 77 pass this if zero;
|
|
#X connect 0 0 10 1;
|
|
#X connect 0 0 7 1;
|
|
#X connect 1 0 8 0;
|
|
#X connect 2 0 5 0;
|
|
#X connect 3 0 9 0;
|
|
#X connect 3 0 8 1;
|
|
#X connect 4 0 6 0;
|
|
#X connect 4 0 5 1;
|
|
#X connect 5 0 7 0;
|
|
#X connect 6 0 12 0;
|
|
#X connect 7 0 6 1;
|
|
#X connect 8 0 10 0;
|
|
#X connect 9 0 11 0;
|
|
#X connect 10 0 9 1;
|
|
#X restore 484 266 pd switch;
|
|
#X obj 655 270 r revtime;
|
|
#X obj 54 476 tabreceive~ \$0-hann;
|
|
#X obj 94 35 tabreceive~ \$0-hann;
|
|
#X obj 505 112 tabreceive~ \$0-inc-real;
|
|
#X obj 587 134 tabreceive~ \$0-inc-imag;
|
|
#X obj 752 220 tabsend~ \$0-last-imag;
|
|
#X obj 702 243 tabsend~ \$0-last-real;
|
|
#X obj 559 426 tabsend~ \$0-inc-imag;
|
|
#X obj 484 449 tabsend~ \$0-inc-real;
|
|
#X msg 665 293 set \$1;
|
|
#X obj 665 317 s revtime-set;
|
|
#X obj 800 483 loadbang;
|
|
#X msg 800 509 \; pd dsp 1 \; window-size 4096 \; revtime 20;
|
|
#X obj 800 411 r window-size;
|
|
#X msg 800 433 set \$1 4;
|
|
#X obj 800 455 block~;
|
|
#X obj 655 341 expr 1 - 0.2/max(0.2 \, $f1);
|
|
#X text 20 206 choose whether to;
|
|
#X text 18 224 punch in new (amplitude \,;
|
|
#X text 16 243 increment) pair;
|
|
#X obj 367 26 tabreceive~ \$0-amp-real;
|
|
#X obj 443 50 tabreceive~ \$0-amp-imag;
|
|
#X obj 325 537 tabsend~ \$0-amp-imag;
|
|
#X obj 258 560 tabsend~ \$0-amp-real;
|
|
#X text 361 6 previous output amplitude \, encoding both magnitude
|
|
and phase;
|
|
#X text 453 87 previous phase increment (unit-magnitude complex number)
|
|
;
|
|
#X obj 506 134 +~ 1e-15;
|
|
#X obj 366 50 +~ 1e-15;
|
|
#X text 363 482 propagate amplitudes by multiplying in the;
|
|
#X text 361 499 increments \, which advance the phase and drop;
|
|
#X text 365 514 magnitude according to revtime.;
|
|
#X text 608 370 normalize increments between 0 and;
|
|
#X text 606 388 1 according to revtime.;
|
|
#X text 78 453 IFFT and output;
|
|
#X connect 0 0 16 0;
|
|
#X connect 1 0 6 1;
|
|
#X connect 2 0 6 0;
|
|
#X connect 3 0 5 1;
|
|
#X connect 4 0 5 0;
|
|
#X connect 5 0 52 0;
|
|
#X connect 6 0 53 0;
|
|
#X connect 7 0 1 0;
|
|
#X connect 7 0 3 0;
|
|
#X connect 7 0 37 0;
|
|
#X connect 8 0 10 1;
|
|
#X connect 9 0 10 0;
|
|
#X connect 10 0 25 0;
|
|
#X connect 11 0 22 1;
|
|
#X connect 12 0 22 0;
|
|
#X connect 13 0 21 0;
|
|
#X connect 14 0 21 0;
|
|
#X connect 15 0 19 0;
|
|
#X connect 17 0 0 0;
|
|
#X connect 18 0 15 1;
|
|
#X connect 19 0 9 0;
|
|
#X connect 19 0 9 1;
|
|
#X connect 19 0 27 0;
|
|
#X connect 19 0 28 1;
|
|
#X connect 19 1 8 0;
|
|
#X connect 19 1 8 1;
|
|
#X connect 19 1 27 1;
|
|
#X connect 19 1 28 2;
|
|
#X connect 20 0 17 0;
|
|
#X connect 21 0 26 0;
|
|
#X connect 22 0 25 1;
|
|
#X connect 23 0 2 0;
|
|
#X connect 23 0 4 0;
|
|
#X connect 23 0 38 0;
|
|
#X connect 24 0 0 1;
|
|
#X connect 25 0 28 0;
|
|
#X connect 25 0 29 0;
|
|
#X connect 26 0 23 1;
|
|
#X connect 26 0 7 1;
|
|
#X connect 27 0 29 1;
|
|
#X connect 27 1 29 2;
|
|
#X connect 27 2 36 0;
|
|
#X connect 27 3 35 0;
|
|
#X connect 28 0 20 0;
|
|
#X connect 28 0 3 1;
|
|
#X connect 28 0 2 1;
|
|
#X connect 28 1 20 1;
|
|
#X connect 28 1 1 1;
|
|
#X connect 28 1 4 1;
|
|
#X connect 29 0 14 0;
|
|
#X connect 29 0 14 1;
|
|
#X connect 29 0 23 0;
|
|
#X connect 29 1 13 0;
|
|
#X connect 29 1 13 1;
|
|
#X connect 29 1 7 0;
|
|
#X connect 30 0 39 0;
|
|
#X connect 30 0 46 0;
|
|
#X connect 31 0 17 1;
|
|
#X connect 32 0 15 0;
|
|
#X connect 33 0 56 0;
|
|
#X connect 34 0 29 4;
|
|
#X connect 39 0 40 0;
|
|
#X connect 41 0 42 0;
|
|
#X connect 43 0 44 0;
|
|
#X connect 44 0 45 0;
|
|
#X connect 46 0 26 1;
|
|
#X connect 50 0 57 0;
|
|
#X connect 51 0 11 0;
|
|
#X connect 51 0 11 1;
|
|
#X connect 51 0 28 4;
|
|
#X connect 56 0 29 3;
|
|
#X connect 57 0 12 0;
|
|
#X connect 57 0 12 1;
|
|
#X connect 57 0 28 3;
|
|
#X restore 141 301 pd fft;
|
|
#X floatatom 377 233 0 0 1000 0 - revtime-set -;
|
|
#X floatatom 68 239 0 0 0 0 - - -;
|
|
#X text 131 9 PIANO REVERB;
|
|
#X text 418 236 reverb time;
|
|
#X obj 141 331 output~;
|
|
#X obj 36 333 output~;
|
|
#X text 23 25 This is a phase vocoder acting as a reverberator. The
|
|
sound is more coherent (less "whispered") than a real room or a standard
|
|
delay-based reverberator.;
|
|
#X text 25 80 The technique is to "punch" the incoming sound into channels
|
|
where (1) there's a peak \, and (2) the incoming sound drowns out whatever
|
|
might already be there. If the sound already in any channel is louder
|
|
than the input the input for that channel is ignored.;
|
|
#N canvas 0 0 508 303 test-sound 0;
|
|
#X obj 35 33 inlet;
|
|
#X obj 36 144 osc~;
|
|
#X obj 164 173 line~;
|
|
#X floatatom 36 95 0 0 0 0 - - -;
|
|
#X obj 37 71 mtof;
|
|
#X obj 36 169 cos~;
|
|
#X obj 36 193 hip~ 20;
|
|
#X obj 36 118 t f b;
|
|
#X obj 164 63 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
|
|
-1;
|
|
#X obj 209 144 pack 0 30;
|
|
#X obj 194 90 del 20;
|
|
#X obj 164 116 pack 1 20;
|
|
#X obj 38 224 *~;
|
|
#X obj 42 270 outlet~;
|
|
#X connect 0 0 4 0;
|
|
#X connect 1 0 5 0;
|
|
#X connect 2 0 12 1;
|
|
#X connect 3 0 7 0;
|
|
#X connect 4 0 3 0;
|
|
#X connect 5 0 6 0;
|
|
#X connect 6 0 12 0;
|
|
#X connect 7 0 1 0;
|
|
#X connect 7 1 8 0;
|
|
#X connect 8 0 10 0;
|
|
#X connect 8 0 11 0;
|
|
#X connect 9 0 2 0;
|
|
#X connect 10 0 9 0;
|
|
#X connect 11 0 2 0;
|
|
#X connect 12 0 13 0;
|
|
#X restore 68 266 pd test-sound;
|
|
#X text 56 217 short tone;
|
|
#X obj 377 257 s revtime;
|
|
#X text 24 164 For each window \, the amplitude in each channel is
|
|
propagated by a constant phase increment and multiplied downward by
|
|
a gain that determines the "reverb time".;
|
|
#N canvas 0 110 565 454 hann-window 0;
|
|
#N canvas 0 0 450 300 graph1 0;
|
|
#X array \$0-hann 4096 float 0;
|
|
#X coords 0 1 4095 0 300 100 1;
|
|
#X restore 82 311 graph;
|
|
#X obj 378 165 osc~;
|
|
#X obj 378 190 *~ -0.5;
|
|
#X obj 378 214 +~ 0.5;
|
|
#X obj 331 247 tabwrite~ \$0-hann;
|
|
#X obj 37 88 r window-size;
|
|
#X obj 38 173 /;
|
|
#X obj 127 142 samplerate~;
|
|
#X obj 38 251 s window-sec;
|
|
#X obj 177 204 swap;
|
|
#X obj 177 228 /;
|
|
#X obj 177 252 s window-hz;
|
|
#X obj 49 201 * 1000;
|
|
#X obj 49 228 s window-msec;
|
|
#X obj 38 115 t f b f;
|
|
#X msg 173 92 resize \$1;
|
|
#X obj 173 116 s \$0-hann;
|
|
#X obj 330 105 r window-hz;
|
|
#X msg 382 130 0;
|
|
#X obj 330 131 t f b;
|
|
#X text 15 8 calculate Hann window table (variable window size) and
|
|
constants window-hz (fundamental frequency of analysis) \, window-sec
|
|
and window-msec (analysis window size in seconds and msec).;
|
|
#X connect 1 0 2 0;
|
|
#X connect 2 0 3 0;
|
|
#X connect 3 0 4 0;
|
|
#X connect 5 0 14 0;
|
|
#X connect 6 0 8 0;
|
|
#X connect 6 0 12 0;
|
|
#X connect 7 0 6 1;
|
|
#X connect 7 0 9 1;
|
|
#X connect 9 0 10 0;
|
|
#X connect 9 1 10 1;
|
|
#X connect 10 0 11 0;
|
|
#X connect 12 0 13 0;
|
|
#X connect 14 0 6 0;
|
|
#X connect 14 0 9 0;
|
|
#X connect 14 1 7 0;
|
|
#X connect 14 2 15 0;
|
|
#X connect 15 0 16 0;
|
|
#X connect 17 0 19 0;
|
|
#X connect 18 0 1 1;
|
|
#X connect 19 0 1 0;
|
|
#X connect 19 1 4 0;
|
|
#X connect 19 1 18 0;
|
|
#X restore 360 305 pd hann-window;
|
|
#N canvas 52 71 774 520 tables 0;
|
|
#N canvas 0 0 450 300 graph1 0;
|
|
#X array \$0-last-real 2048 float 0;
|
|
#X coords 0 500 2048 -500 200 150 1;
|
|
#X restore 103 15 graph;
|
|
#N canvas 0 0 450 300 graph2 0;
|
|
#X array \$0-last-imag 2048 float 0;
|
|
#X coords 0 500 2048 500 200 150 1;
|
|
#X restore 497 6 graph;
|
|
#N canvas 0 0 450 300 graph1 0;
|
|
#X array \$0-amp-real 2048 float 0;
|
|
#X coords 0 500 2048 -500 200 150 1;
|
|
#X restore 105 185 graph;
|
|
#N canvas 0 0 450 300 graph2 0;
|
|
#X array \$0-amp-imag 2048 float 0;
|
|
#X coords 0 500 2048 -500 200 150 1;
|
|
#X restore 501 178 graph;
|
|
#N canvas 0 0 450 300 graph1 0;
|
|
#X array \$0-inc-real 2048 float 0;
|
|
#X coords 0 1 2048 -1 200 150 1;
|
|
#X restore 105 357 graph;
|
|
#N canvas 0 0 450 300 graph2 0;
|
|
#X array \$0-inc-imag 2048 float 0;
|
|
#X coords 0 1 2048 -1 200 150 1;
|
|
#X restore 503 342 graph;
|
|
#X restore 360 326 pd tables;
|
|
#X text 307 383 Updated for Pd version 0.39;
|
|
#X text 26 389 reverb in;
|
|
#X text 133 388 reverb out;
|
|
#X connect 0 0 5 0;
|
|
#X connect 0 0 5 1;
|
|
#X connect 1 0 11 0;
|
|
#X connect 2 0 9 0;
|
|
#X connect 9 0 0 0;
|
|
#X connect 9 0 6 0;
|
|
#X connect 9 0 6 1;
|