From c088c79f28e6cceac3db346e5fcf5cbe01193ad4 Mon Sep 17 00:00:00 2001 From: Guenter Geiger Date: Thu, 6 Nov 2003 09:28:00 +0000 Subject: added fft_convolution abstraction svn path=/trunk/abstractions/fft_convolution/; revision=1170 --- fft_convolution-help.pd | 17 +++++++++++++ fft_convolution.pd | 68 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 85 insertions(+) create mode 100644 fft_convolution-help.pd create mode 100644 fft_convolution.pd diff --git a/fft_convolution-help.pd b/fft_convolution-help.pd new file mode 100644 index 0000000..447cf98 --- /dev/null +++ b/fft_convolution-help.pd @@ -0,0 +1,17 @@ +#N canvas 529 236 450 300 10; +#N canvas 0 0 450 300 graph7 0; +#X array array2 512 float 0; +#X coords 0 1 511 -1 200 140 1; +#X restore 235 123 graph; +#X text 12 14 Create the filter array first (size gets set by abstraction) +; +#X obj 13 190 dac~; +#X obj 21 144 *~ 0.01; +#X text 12 32 Only first half of filter array can be used; +#X obj 21 82 noise~; +#X msg 105 252 \; array2 const 0; +#X obj 20 103 fft_convolution 512 array2; +#X connect 3 0 2 0; +#X connect 3 0 2 1; +#X connect 5 0 7 0; +#X connect 7 0 3 0; diff --git a/fft_convolution.pd b/fft_convolution.pd new file mode 100644 index 0000000..3fc157e --- /dev/null +++ b/fft_convolution.pd @@ -0,0 +1,68 @@ +#N canvas 106 37 394 431 10; +#X obj 46 70 inlet~; +#X obj 93 290 outlet~; +#X obj 47 168 *~; +#X obj 71 169 *~; +#X obj 159 163 *~; +#X obj 47 193 -~; +#X obj 187 163 *~; +#X obj 158 186 +~; +#X obj 90 72 tabreceive~ step; +#X obj 47 92 *~; +#X obj 47 114 rfft~; +#X obj 202 116 rfft~; +#X obj 92 224 rifft~; +#X obj 264 56 block~ \$1 2; +#X obj 27 312 loadbang; +#X obj 90 54 table step; +#X obj 27 329 f \$1; +#X obj 27 347 * 0.5; +#X msg 81 313 bang; +#X text 87 37 only use half of the buffer; +#X msg 27 365 \; step resize \$1 \; step const 1 \;; +#X text 145 292 overlap/add is done by outlet~; +#X obj 93 271 *~ 0.1; +#X msg 148 235 1; +#X obj 148 253 /; +#X obj 148 216 t b f; +#X text 18 6 Usage: fft_convolution ; +#X obj 245 77 tabreceive~ \$2; +#X obj 127 320 t b f; +#X obj 127 356 pack s 0; +#X obj 127 338 symbol \$2; +#X msg 127 375 \; \$1 resize \$2; +#X text 10 412 (C) 2003 GG; +#X connect 0 0 9 0; +#X connect 2 0 5 0; +#X connect 3 0 5 1; +#X connect 4 0 7 0; +#X connect 5 0 12 0; +#X connect 6 0 7 1; +#X connect 7 0 12 1; +#X connect 8 0 9 1; +#X connect 9 0 10 0; +#X connect 10 0 2 0; +#X connect 10 0 4 0; +#X connect 10 1 3 0; +#X connect 10 1 6 0; +#X connect 11 0 2 1; +#X connect 11 0 6 1; +#X connect 11 1 3 1; +#X connect 11 1 4 1; +#X connect 12 0 22 0; +#X connect 14 0 16 0; +#X connect 16 0 17 0; +#X connect 16 0 25 0; +#X connect 16 0 28 0; +#X connect 17 0 20 0; +#X connect 18 0 16 0; +#X connect 22 0 1 0; +#X connect 23 0 24 0; +#X connect 24 0 22 1; +#X connect 25 0 23 0; +#X connect 25 1 24 1; +#X connect 27 0 11 0; +#X connect 28 0 30 0; +#X connect 28 1 29 1; +#X connect 29 0 31 0; +#X connect 30 0 29 0; -- cgit v1.2.1