# How to implement a time-varying filter?

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$)

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.

• 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