I'm trying to equalize a sound signal - using a JAVA program - and I'm using this process : 1/ Conversion of the temporal signal to a spectral signal, using a FFT
2/ Applying a coefficient to each frame of the spectral signal to equalize it
3/ Conversion of the spectral signal modified to a temporal signal
4/ Reading of that temporal signal
If I'm applying that process to a "pure" signal (ex : a 400 Hz sinusoïdal signal generated "on the fly" by a java class), it seems to work. But if I'm applying it to a "real" wav signal (a song, for example), the result is unsusable. I hear a kind of "sliced" sound, even if all the equalization coefficients are equal to "1" (=no modification).
So, to equalize a sound, does the process I describe above is the right solution ? Or shall I avoid that double conversion and applying a convolution product on the temporal signal ?
If I have to do apply a convolution product, how to do it ? I have no clue about calculating it with "random" signals.
Thank you for all your answers.