From the original SynthMaker forum (2004–2014), with its members’ names and dates.
chironex ·
Hey,
For a science fair project I'm perhaps going to be working on next year, I'll need a convolution module...crucially.
It should have the following parts:
Inputs:
1. Stream: Represents the signal coming in.
2. Float Array: Holds the impulse response.
Outputs:
1. Stream: Represents the effected signal.
Essentially, if R[n] denotes the nth sample in the impulse response and Z[n] denotes the nth sample in the input signal, it should work like any other convoluter where:
which goes on for as long as the float array for R turns out to be.
I would think you could do this somehow. However, the answer is escaping me. If ANYONE would be able to figure this out, I would be *highly* grateful.
Thank you,
Chiro
TomC ·
chironex wrote: Hey,
For a science fair project I'm perhaps going to be working on next year, I'll need a convolution module...crucially.
We all need, and there are already a couple of request down in the ideas and request forum.
You could do what's called partitioned convolution in the time domain, but I tried that and besides the schematic being a mess it only worked for very short impulse responses (I'm talking about < 1024 samples) so I decided to save my spare time for more rewarding things.
But of course I'm still waiting for the convolution primitive...
Tom
chironex ·
I see...This would still be useful. How does it work? Can you upload an OSM? I don't need my responses to be quite long. It's not for a reverb. It's for a filter. Filters are basically units that apply miniscule impulse responses, you know. In fact, small-scale IR convolution and filtering/equalizing are the same thing, you know.
It's fun to play with impulse signals going through filters and such and seeing what they look like. Often, the IRs are hardly 100 samples long, let alone 1024. Anything which does something of this sort would be useful.
rl ·
Did you check sambeans FIR filter example?
chironex ·
No, and thank you for telling me! :O
I looked at that, and that inspired me to make my own FIR calculator. They are the most easy-to-use FIR calculators so far---just try, and you'll see.
OSM-ZIP v1
Andrew J ·
Cool - thanks for sharing chironex!
A tip for easier use: connect the text box output to the recalc inputs of the analysers for instant feedback on any changes.
aliasant ·
chironex wrote: No, and thank you for telling me! :O
I looked at that, and that inspired me to make my own FIR calculator. They are the most easy-to-use FIR calculators so far---just try, and you'll see.
OSM-ZIP v1
Nice. But that was one buggy little mfr.... =)
If I change the output from the Convo Chain Start to the CC Piece 1024 it crashes SM. I tried disconnection the impulse first but it still crashes.
Is it a bug or is it something in the schematics?
I so want that Convolution primitive.
I want to add filter and/or hardware impulses to my plugs to get some character.
chironex ·
I'm not surprised. The 1024 one is basically 1024 singles chained together. I have some work to do. X)
infuzion ·
Couldn't you just use Code with some looping?
chironex ·
There would be no way get the IR from outside the code to inside it, other than having one input for each number in the array X)
TomC ·
chironex wrote: There would be no way get the IR from outside the code to inside it, other than having one input for each number in the array X)
[quick'n'dirty describtion, I'm nowhere near an SM box]
Play the IR sample and store it in an array inside(!) the code module before your start putting 'normal' samples inside the module.
Once it's in there you can convolute. Problem is you can't do anything until the IR is completely inside the code module, so the code is a mess because of all the logical expressions you have to handle in each line.
And of course you'll have a minimum delay of the IR's length.
Tom
Wrote something here? To have a post removed or your name hidden, write to [email protected].