Hello all,
I've been playing with image convolution filters, and wanted to take a
look at the same ideas in audio. I was wondering if someone could point
me towards some good resources. I've played a bit with the FFT
tutorials, but they don't make too much sense to me yet, I think I need
more background. Google hasn't been too yielding, perhaps since I'm not
too sure what I'm looking for. Dodge's /Computer Music/ only has two
references to convolution, baiscally saying it's really cool, and
Soundhack uses it alot.
I put together a little patch to experiment from the FFT examples and my
little understanding of convolution, but it's very staticky. Note that
it's meant to have the audio fed in through an inlet. The hanning window
on the left doesn't do anything (of course), but the one on the right,
an attempt at a Prewitt edge finder, does something interesting but
staticky.
Any sort of advice would be helpful.
Thanks much,
Ian
--
Ian Smith-Heisters
http://www.0x09.com
#N canvas 319 149 703 547 10;
#X msg 141 117 0;
#N canvas 299 199 833 436 fft-analysis 0;
#X obj 90 306
*~;
#N canvas 0 0 450 300 graph2 0;
#X array $0-filter 256 float 0;
#X coords 0 1 256 -1 400 300 1;
#X restore 426 41 graph;
#X obj 49 10 inlet~;
#X obj 49 307 *~;
#X obj 49 337 rifft~;
#X obj 72 398 outlet~;
#X obj 629 400 block~ 256 2;
#X obj 178 10 tabreceive~ $0-filter;
#X obj 50 50 rfft~;
#X obj 196 78 rfft~;
#X obj 80 167
*~;
#X obj 49 167 *~;
#X obj 243 172
*~;
#X obj 212 172 *~;
#X obj 212 194 +~;
#X obj 331 239 sig~;
#X obj 314 169 t b f;
#X msg 314 190 1;
#X obj 328 213 /;
#X floatatom 317 127 5 0 0 0 - - -;
#X obj 49 189 +~;
#X msg 313 102 256;
#X obj 316 72 loadbang;
#X connect 0 0 4 1;
#X connect 2 0 8 0;
#X connect 3 0 4 0;
#X connect 4 0 5 0;
#X connect 7 0 9 0;
#X connect 8 0 11 0;
#X connect 8 0 13 0;
#X connect 8 1 12 0;
#X connect 8 1 10 0;
#X connect 9 0 11 1;
#X connect 9 0 12 1;
#X connect 9 1 10 1;
#X connect 9 1 13 1;
#X connect 10 0 20 1;
#X connect 11 0 20 0;
#X connect 12 0 14 1;
#X connect 13 0 14 0;
#X connect 14 0 0 0;
#X connect 15 0 3 1;
#X connect 15 0 0 1;
#X connect 16 0 17 0;
#X connect 16 1 18 1;
#X connect 17 0 18 0;
#X connect 18 0 15 0;
#X connect 19 0 16 0;
#X connect 20 0 3 0;
#X connect 21 0 19 0;
#X connect 22 0 21 0;
#X restore 133 430 pd fft-analysis;
#N canvas 0 0 450 300 graph1 0;
#X array $0-product 256 float 0;
#X coords 0 1 256 -1 256 200 1;
#X restore 352 261 graph;
#X msg 77 442 bang;
#X text 71 165 sample rate / 256;
#X text 14 440 scope;
#X obj 36 166 osc~;
#X obj 35 118 samplerate~;
#X obj 36 142 / 256;
#X obj 36 189
*~ -0.5;
#X obj 36 209 +~ 0.5;
#X obj 141 462 tabwrite~ $0-product;
#X obj 20 238 tabwrite~ $0-filter;
#X msg 20 79 bang;
#X obj 134 309 inlet~;
#X obj 132 511 outlet~;
#X obj 267 113 samplerate~;
#X obj 252 233 tabwrite~ $0-filter;
#X msg 252 74 bang;
#X obj 268 159 osc~;
#X obj 268 184 *~ 1;
#X obj 268 204 +~ 0;
#X msg 373 112 0;
#X obj 268 138 / 512;
#X text 24 57 Hanning (?);
#X text 250 46 Prewitt (?);
#X connect 0 0 6 1;
#X connect 1 0 11 0;
#X connect 1 0 15 0;
#X connect 3 0 11 0;
#X connect 6 0 9 0;
#X connect 7 0 8 0;
#X connect 8 0 6 0;
#X connect 9 0 10 0;
#X connect 10 0 12 0;
#X connect 13 0 0 0;
#X connect 13 0 7 0;
#X connect 13 0 12 0;
#X connect 14 0 1 0;
#X connect 16 0 23 0;
#X connect 18 0 22 0;
#X connect 18 0 16 0;
#X connect 18 0 17 0;
#X connect 19 0 20 0;
#X connect 20 0 21 0;
#X connect 21 0 17 0;
#X connect 22 0 19 1;
#X connect 23 0 19 0;