#N canvas 421 91 572 530 10;
#X obj 0 594 cnv 15 552 21 empty empty empty 20 12 0 14 -233017 -33289
0;
#X obj 0 336 cnv 3 550 3 empty empty inlets 8 12 0 13 -228856 -1 0
;
#N canvas 388 382 433 268 META 0;
#X text 0 31 LICENSE SIBSD;
#X text 0 139 LIBRARY cyclone;
#X text 0 49 DESCRIPTION converts all signal values to positive values
;
#X text 0 0 KEYWORDS signal buffer buffir buff FIR finite impulse response
convolution filter;
#X text 0 67 INLET_0 signal;
#X text 0 85 INLET_1 float;
#X text 0 103 INLET_2 float;
#X text 0 121 OUTLET_0 signal;
#X text 0 158 VERSION 0.2-beta1;
#X text 0 176 AUTHOR Krzysztof Czaja;
#X text 1 194 RELEASE_DATE 2002;
#X text 2 213 WEBSITE http://suita.chopin.edu.pl/~czaja/miXed/externs/cyclone.html
;
#X text 2 245 HELP_PATCH_AUTHORS Christoph Kummerer. Revised by Jonathan
Wilkes for Pd-extended 0.42 to conform to the PDDP template. Alex Cleveland
updated this patch for Pd-l2ork version 2013.05.28. Fred Jan Kraan
adapted the patch to pd-extended 2015-02-02;
#X restore 503 597 pd META;
#X obj 0 419 cnv 3 550 3 empty empty outlets 8 12 0 13 -228856 -1 0
;
#X obj 0 456 cnv 3 550 3 empty empty arguments 8 12 0 13 -228856 -1
0;
#X obj 0 532 cnv 3 550 3 empty empty more_info 8 12 0 13 -228856 -1
0;
#N canvas 160 549 428 109 Related_objects 0;
#X obj 0 0 cnv 15 425 20 empty empty empty 3 12 0 14 -204280 -1 0;
#X text 6 1 Related Objects;
#X restore 203 597 pd Related_objects;
#X obj 80 368 cnv 17 3 17 empty empty 1 5 9 0 16 -228856 -162280 0
;
#X obj 0 0 cnv 15 554 40 empty empty buffir~ 3 12 0 18 -204280 -1 0
;
#X text 106 344 signal;
#X text 164 343 - signal to pass to FIR;
#X text 106 427 signal;
#X obj 80 389 cnv 17 3 17 empty empty 2 5 9 0 16 -228856 -162280 0
;
#X text 106 369 float;
#X obj 80 428 cnv 17 3 17 empty empty 0 5 9 0 16 -228856 -162280 0
;
#X text 106 391 float;
#X text 164 391 - Length (samples);
#X text 164 367 - Offset (samples);
#X text 164 426 - based on buffer \, offset \, length;
#X obj 378 147 loadbang;
#X obj 378 174 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#N canvas 462 221 405 395 genRamp 0;
#X obj 84 238 sel 0 1;
#X obj 103 286 i;
#X obj 84 183 sel 1;
#X msg 32 136 clear;
#X obj 184 242 * 1;
#X obj 184 216 expr ((127. - $f1) / 127.);
#X obj 171 183 - 1;
#X obj 84 82 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#X obj 84 314 pack 0 0;
#X text 182 197 exponential ramp down from 1 to 0;
#X obj 84 60 inlet;
#X obj 84 348 outlet;
#X obj 84 215 cyclone/decide;
#X text 178 339 makes 50% zeros \, 25% exponential;
#X text 178 353 downward ramp \, 25% random;
#X obj 84 160 cyclone/decide;
#X obj 2 0 cnv 15 425 20 empty empty empty 3 12 0 14 -204280 -1 0;
#X obj 84 136 cyclone/Uzi 128;
#X text 9 0 ramp generator;
#X obj 84 104 t b b;
#X obj 84 260 cyclone/urn 128;
#X connect 0 0 20 0;
#X connect 0 1 1 0;
#X connect 1 0 8 0;
#X connect 2 0 12 0;
#X connect 3 0 20 0;
#X connect 4 0 8 1;
#X connect 5 0 4 0;
#X connect 5 0 4 1;
#X connect 6 0 1 1;
#X connect 6 0 5 0;
#X connect 7 0 19 0;
#X connect 8 0 11 0;
#X connect 10 0 7 0;
#X connect 12 0 0 0;
#X connect 15 0 2 0;
#X connect 17 0 15 0;
#X connect 17 2 6 0;
#X connect 19 0 17 0;
#X connect 19 1 3 0;
#X connect 20 0 8 0;
#X restore 378 199 pd genRamp;
#X floatatom 265 111 0 0 0 0 - - -;
#X obj 80 78 noise~;
#X obj 82 234 *~ 0.05;
#X text 87 472 1) table;
#X text 164 471 - buffer (max size 256);
#X text 88 489 2) float;
#X text 164 489 - offset;
#X text 88 506 3) float;
#X text 164 506 - length;
#X text 103 542 buffir~ is a table based FIR (finite impulse response)
filter. an input signal is convolved with n samples of a buffer. Currently
the maximum number of points is 256;
#X obj 499 2 buffir~;
#X text 12 23 table based FIR (finite impulse response) convolution
filter;
#X obj 80 347 cnv 17 3 17 empty empty 0 5 9 0 16 -228856 -162280 0
;
#X text 402 174 Generate new fir;
#X text 292 102 number of samples;
#X text 292 114 in impulse;
#X text 323 274 table is a 128-point downwards;
#X text 322 288 ramp with random values here and;
#X text 322 301 there with amplitude from 1 to 0;
#X obj 82 260 output~;
#X obj 268 90 hsl 128 15 0 127 0 0 empty empty empty -2 -8 0 10 -262144
-1 -1 0 1;
#N canvas 597 600 430 354 voice 0;
#X obj 96 145 openpanel;
#X obj 96 219 soundfiler;
#X obj 96 96 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 74 27 loadbang;
#X obj 263 236 *~ 0;
#X obj 263 297 outlet~;
#X obj 263 185 phasor~ 0.77;
#X obj 0 0 cnv 15 425 20 empty empty empty 3 12 0 14 -204280 -1 0;
#X text 4 2 Load and play the standard voice.wav file;
#X obj 96 170 pack s f;
#X obj 96 119 t b b;
#X obj 168 145 f \$0;
#X text 115 100 load an other sample;
#X msg 96 194 read -resize \$1 \$2-voice;
#X obj 263 266 tabread~ \$0-voice;
#X obj 95 243 table \$0-voice;
#X msg 74 74 read -resize voice.wav \$1-voice;
#X obj 74 50 f \$0;
#X connect 0 0 9 0;
#X connect 1 0 4 1;
#X connect 2 0 10 0;
#X connect 3 0 17 0;
#X connect 4 0 14 0;
#X connect 6 0 4 0;
#X connect 9 0 13 0;
#X connect 10 0 0 0;
#X connect 10 1 11 0;
#X connect 11 0 9 1;
#X connect 13 0 1 0;
#X connect 14 0 5 0;
#X connect 16 0 1 0;
#X connect 17 0 16 0;
#X restore 96 97 pd voice;
#N canvas 753 492 431 300 mux 0;
#X obj 127 68 inlet~;
#X obj 176 68 inlet~;
#X obj 230 69 inlet;
#X obj 127 231 outlet~;
#X obj 126 182 *~ 1;
#X obj 177 183 *~ 0;
#X obj 230 109 == 0;
#X floatatom 246 158 5 0 0 0 - - -;
#X obj 0 1 cnv 15 425 20 empty empty empty 3 12 0 14 -204280 -1 0;
#X text 4 3 signal selector;
#X connect 0 0 4 0;
#X connect 1 0 5 0;
#X connect 2 0 5 1;
#X connect 2 0 6 0;
#X connect 4 0 3 0;
#X connect 5 0 3 0;
#X connect 6 0 4 1;
#X connect 6 0 7 0;
#X restore 81 128 pd mux;
#X obj 154 83 vradio 15 1 0 2 empty empty empty 0 -8 0 10 -262144 -1
-1 0;
#X text 77 56 Integral of buffer from offset to offset + length;
#N canvas 460 560 431 249 more 0;
#X obj 75 83 sig~ 1;
#X text 271 85 Length (samps);
#X msg 64 56 clear;
#X floatatom 247 85 0 0 0 0 - - -;
#X floatatom 155 63 0 0 0 0 - - -;
#X text 56 38 clears input history only;
#X text 181 62 Offset (samps);
#X obj 64 221 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10
-262144 -1 -1 2.4283 256;
#X text 263 138 Initial args:;
#X text 263 150 buffer \, offset(samps) \,;
#X text 263 162 length(samps);
#X obj 64 197 cyclone/Snapshot~ 100;
#X obj 2 2 cnv 15 425 20 empty empty empty 3 12 0 14 -204280 -1 0;
#X text 6 4 Example using variable offset;
#X obj 64 150 cyclone/buffir~ \$0-fir_buf 0 32;
#X connect 0 0 14 0;
#X connect 2 0 14 0;
#X connect 3 0 14 2;
#X connect 4 0 14 1;
#X connect 11 0 7 0;
#X connect 14 0 11 0;
#X restore 447 88 pd more buffir;
#X obj 378 226 cyclone/peek~ \$0-fir_buf;
#X obj 377 248 table \$0-fir_buf 128;
#X obj 82 182 cyclone/buffir~ \$0-fir_buf 0 10;
#X connect 19 0 20 0;
#X connect 20 0 21 0;
#X connect 21 0 48 0;
#X connect 22 0 50 2;
#X connect 23 0 44 0;
#X connect 24 0 41 0;
#X connect 24 0 41 1;
#X connect 42 0 22 0;
#X connect 43 0 44 1;
#X connect 44 0 50 0;
#X connect 45 0 44 2;
#X connect 50 0 24 0;
