#N canvas 41 53 873 616 10; #X declare -lib cyclone; #X floatatom 454 384 0 0 0 0 - - -; #X obj 330 374 noise~; #X obj 330 441 *~ 0.05; #X obj 330 474 dac~; #X obj 69 165 sig~ 1; #X text 231 167 Length (samps); #X obj 576 111 loadbang; #X msg 41 123 clear; #X floatatom 209 165 0 0 0 0 - - -; #X floatatom 160 136 0 0 0 0 - - -; #X obj 575 144 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #N canvas 480 212 405 395 genRamp 0; #X obj 39 197 sel 0 1; #X obj 81 254 i; #X obj 39 146 sel 1; #X msg 111 100 clear; #X obj 120 206 * 1; #X obj 120 180 expr ((127. - $f1) / 127.); #X obj 98 124 - 1; #X obj 39 75 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X obj 81 282 pack 0 0; #X text 116 151 exponential ramp down from 1 to 0; #X text 147 249 makes 50% zeros \, 25% exponential downward ramp \, 25% random; #X obj 39 99 Uzi 128; #X obj 39 123 decide; #X obj 39 174 decide; #X obj 39 219 urn 128; #X obj 39 53 inlet; #X obj 81 316 outlet; #X connect 0 0 14 0; #X connect 0 1 1 0; #X connect 1 0 8 0; #X connect 2 0 13 0; #X connect 3 0 14 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 3 0; #X connect 7 0 11 0; #X connect 8 0 16 0; #X connect 11 0 12 0; #X connect 11 2 6 0; #X connect 12 0 2 0; #X connect 13 0 0 0; #X connect 14 0 8 0; #X connect 15 0 7 0; #X restore 573 184 pd genRamp; #X text 33 104 clears input history only; #X text 186 131 Offset (samps); #X text 427 186 Generate new fir =>; #X text 178 216 Initial args: buffer \, offset(samps) \, length(samps) ; #X text 181 241 256 point max len; #X text 8 291 integral of buffer from offset to offset + length; #X text 486 383 number of samples in impulse; #X obj 570 53 import cyclone; #X obj 330 409 buffir~ fir_buf 0 10; #X obj 50 216 buffir~ fir_buf 0 32; #X obj 574 223 peek~ fir_buf; #X obj 563 285 table fir_buf 128; #X obj 50 245 Snapshot~ 100; #X obj 52 269 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10 -262144 -1 -1 0 256; #X text 15 35 a table based FIR convolution filter; #X text 16 58 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 text 503 311 table is a 128-point downwards ramp with random values here and there with amplitude from 1 to 0; #X connect 0 0 20 2; #X connect 1 0 20 0; #X connect 2 0 3 0; #X connect 2 0 3 1; #X connect 4 0 21 0; #X connect 6 0 10 0; #X connect 7 0 21 0; #X connect 8 0 21 2; #X connect 9 0 21 1; #X connect 10 0 11 0; #X connect 11 0 22 0; #X connect 20 0 2 0; #X connect 21 0 24 0; #X connect 24 0 25 0;