cAPSLOCK ·
Here is a little FIR EQ I cooked up. Thanks to all on the forum (esp sambean) for ideas here.
I would like to see it do work differently, but this is the first thing I built in SM and I gotta say, it is an obvious amateur kludge. 😉
The thing is, this is plain brute force convolution. And that is not all that is wrong with it. It also stores all the taps in little float data boxes. Then it bulldozers together the audio via X->shift->add->X->shift->add->...
Certainly there would be a way to make the convolution part better. I would like to be able to (efficiently) use IRs of up to 512 samples at 44.1. I could see using respectively more at different sample rates.
I understand that SM doesn't yet have FFT/IFFT and that would be one way to do it. But maybe there is a better approach with the code module for example. Of course there could be difficulty there too. I think I could pull something off in C(++), and know of the code in the DSP-archives by C Budde. But I am not yet up to snuff on the SM code module for things other than really simple ones. I am not sure about looping, conditional statements etc.
Secondly, there has to be a better way to store these taps. Is it possible to use an array?
Thirdly, a great boon for me with this would be to be able to load the IRs as wave files and have them interpolated into an array.
Does anyone have any suggestions for these ideas?
cAPS
http://noisevault.com/synthmaker/64pointEQ-FIR.osm