1

I'm working on a 10-second sound, sampled at 44.1 khz.

I want to do filtering, and have a desired EQ (equalization) curve that varies over time, as suggested here (here $f0=250\ Hz$)

enter image description here

How to implement a time-varying filter?

  1. How to go from this bad idea of zeroing FFT bins

    [0, 0, ..., 0, 1, 0, ..., 0, 1, 0, ..., 0, 1, 0, ... 0]
       |           |             |             |
       |          freq bins for f0, 2*f0, 3*f0  are kept
       |
     most freq bins are zeroed
    

    to a good filtering?

  2. Then, how to make this vary over time? Should I use overlap-add, etc.? Then if so, can't I do it inside a STFT framework?

  3. Would you have a pseudo code or Python demo?

PS: I've read http://recherche.ircam.fr/anasyn/roebel/amt_audiosignale/VL3.pdf, but I can't go from here to a working algorithm.

Basj
  • 1,277
  • 5
  • 22
  • 54
  • I think any adaptive filter strategy, time varying filter is a very ambicious term, is the proper starting point. Some parameter estimation technique, according to your working skills and motivations, this can be solved in a lot of ways... – Brethlosze Dec 21 '16 at 22:34
  • Also, do you have a clear idea of what do you want or need to equalize? An equalizer is a frequency flattener, not a noise reducer. – Brethlosze Dec 21 '16 at 22:37
  • @hypfco I finally did it by STFT zeroing bins. I have to say the result is really pretty clean, STFT-zeroing-bins doesnt' have the drawbacks of FFT-zeroing-bins because windowing is already applied during the STFT process. – Basj Dec 21 '16 at 22:39
  • LOL congratulations then!!! – Brethlosze Dec 21 '16 at 23:00
  • More about this question here. – Basj Dec 21 '16 at 23:06

0 Answers0