Forum
    • Categories
    • Register
    • Login

    Resonance Supressor

    Scheduled Pinned Locked Moved Scripting
    3 Posts 3 Posters 39 Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • JulesVJ
      JulesV
      last edited by

      Does anyone have an example of a resonance suppressor project?

      griffinboyG resonantR 2 Replies Last reply Reply Quote 0
      • griffinboyG
        griffinboy @JulesV
        last edited by griffinboy

        @JulesV

        I've got DSP but not an example project.

        (Automatic resonance suppression needs high-performance spectral processing. I'd use custom C++ DSP for this.)

        The algorithm for resonance suppression works like this:


        1
        Analyse the incoming audio through two overlapping FFT analyses. A short window that can react quickly and a long window that can resolve more narrow frequencies.
        2
        Smooth the spectrum across the frequencies to get a smoother version. Subtract that from the original spectrum and keep the positive difference. This shows where peaks stand above their surroundings. The louder a peak is, the larger the difference and the more gain reduction you will apply (Alternatively for a more gentle detection approach, compare levels as ratios against a broad frequency response profile instead, so detection depends more on relative differences than absolute level)
        3
        Now you can use those detected peaks to decide how much to turn down each frequency. This gives you a set of gain values covering the entire spectrum, updated as the audio changes. For example: “cut 800 Hz by 4 dB, cut 3 kHz by 2 dB, leave everything else alone.”
        That is one shape containing several cuts.
        Apply attack and release ballistics to these gain updates. Attack controls how quickly the cuts deepen, release controls how quickly they return towards no reduction.
        4
        Turn the set of frequency gain values into FIR filter coefficients.
        Pass the audio through the "short stage" filter first, then the "long stage" filter.
        If you can live with the latency, apply these filters to overlapping FFT frames and add the filtered frames together.
        If you want low latency, keep filtering incoming audio with the latest available filters while analysis continues. Each time you calculate a new filter, crossfade from the old filter’s output to the new filter’s output. The convolution still uses FFTs internally, but the audio doesn't have to wait for a full length frame.
        5
        Combine the processed signal with the delayed dry signal according to your mix control (you'll need to delay the dry for any latency in the wet path caused by the various filters)


        > Premium C++ DSP

        1 Reply Last reply Reply Quote 1
        • resonantR
          resonant @JulesV
          last edited by

          @JulesV This is something I’m also looking for; it has been asked about on the forum a few times before.

          1 Reply Last reply Reply Quote 0
          • First post
            Last post

          6

          Online

          3.0k

          Users

          14.0k

          Topics

          121.9k

          Posts