Convolution Reverb

Discussion in 'Effects and the DSP' started by DD!, Jun 17, 2011.

  1. DD!

    DD! New Member

    Joined:
    Jun 17, 2011
    Messages:
    3
    Likes Received:
    0
    Trophy Points:
    0
    Hey, i'm trying to model a reverb using the convolution principle by grabbing an impulse response and processing it with the input signal from a mic in order to get an output signal with reverb on it. However (i'm modelling it in Simulink) the output of my operation is noise and nothing else than noise.

    I was wondering if somebody could point me in the right direction or help me with this.


    Thanks.
    PS: I noticed that a really old member called daytripper has experience on this, anybody know if he is still active in the forum?
     
  2. Russ

    Russ Well-Known Member

    Joined:
    Jan 17, 2005
    Messages:
    5,722
    Likes Received:
    13
    Trophy Points:
    48
    Hi, this part of the forum is related to the kX audio driver. While some of us do have some interest in DSP, as far as kX goes, we do not really do much convolution like this, as there is not nearly enough resources in the DSP of these sound cards to do it (it would have to be very small IR's (probably no more than 127 samples long)).

    While someone here might be able to help you, you would probably be better off asking such questions in the Matlab/Simulink forum or maybe at a place like DSPRelated.com etc.

    Aside from the above... I personally have not done any convolution like this (my old beast of a computer does not really have the power for it), but the process seems pretty straight forward, and thus not too many places for things to go wrong. I am not familiar with Simulink, but the first thing I would probably check is to see if you are doing it the right way in Simulink for the type of convolution you are doing, etc (e.g. I do not know if it has it's own convolution functions that work with input from a MIC, etc). What are you using for the IR? Is this something you made yourself, etc (Is the trigger signal removed?)? What does the noise sound like? e.g. Is it just random noise, or does it sound like reverb-ish noise? Reverb by itself may not sound great (depending on the room/space, etc being modeled, etc), maybe you need to add some wet/dry mixing? I do not know, just some thoughts.... Some more details would be helpful.
     
    Last edited: Jun 17, 2011
  3. DD!

    DD! New Member

    Joined:
    Jun 17, 2011
    Messages:
    3
    Likes Received:
    0
    Trophy Points:
    0
    Russ, Thank you very much for your reply. I know that the proccess is pretty straight forward and, precisely, that's why i'm so confused about it. As for an IR i'm using a balloon pop made by myself at my university's recording studio whose reverberation is pretty decent (And even if it were awful, this is the only IR i can use, and no other because the convolution reverb is thought for an assisted reverberation system for this recording suite). The noise I get out of it is like, if somehow, the convolution process isn't been done properly as i get the IR imposed over the mic source signal repeatidly. (i.e. random music is captured by the mic and the outcome is chunks of the music mixed with the impact of the IR).

    I can't quite remember if the convolution proccess has any reciprocity; meaning that:
    x(n)*h(n)=h(n)*x(n), but, for the sake of the integral that defines this process, i'm guessing it's not.

    Currently my IR is 13021 samples long, and i've tried just to convolve it with audio files already captured, but the outcome's the same.

    The noise I get is the same. It doesn't matter if i just convolve both signals in time, or if I FFT them first, the convolve them in frequency and the IFFT them.

    Hope this can make you understand a bit better my situation.
    Thanks.
     
  4. Russ

    Russ Well-Known Member

    Joined:
    Jan 17, 2005
    Messages:
    5,722
    Likes Received:
    13
    Trophy Points:
    48
    Thanks for the additional info. Obviously creating your own IR adds another area where things might go wrong... I am not sure how much help I can offer (again, I have never tried this myself), so it may be best to just wait and see if someone else replies (or again, maybe try one of the other forums, etc).

    Ideally, you probably need help from someone familiar with Simulink...

    Aside from the above, I would probably try the following (just for testing purposes):

    There are some pre-made reverb IR's available on the Internet...
    I would try one of these (in your Simulink model) as it could help to rule out potential problems with your IR, and/or the convolution process you are using in Simulink.

    Also there are convolution reverb's available on the Internet (e.g. VST's), that you might try with your IR in order compare with the results you are getting in Simulink (for the same reasons as above).
     
  5. stylus02

    stylus02 New Member

    Joined:
    Jan 11, 2008
    Messages:
    283
    Likes Received:
    2
    Trophy Points:
    0
    for convolution we need to multiply the frequency spectrum of every sample from impulse response and dry signal. this are millions of operations for even a short signal. as russ said the dsp has only a few registers to save (sample) values. generally i would not say that "such a thing" is impossible with the dsp. it would look a bit different.
    we could try to use kx- synth (sampler) as provider of impulse response and dry signal for a one- shot midi triggered calculation, maybe without fft. this would be like the first precalculated convolution reverbs (acustic mirror, soundforge). don't know if this would work, but fft is not necessary needed.
    (another idea is the use of the set_dsp_register and get_dsp_register functions to use outsourced ir, but here we get shurely problems with speed and synchronising)
     
    Last edited: Jun 18, 2011

Share This Page

visited