Closed mesvam closed 5 years ago
Minimum phase finite impulse responses don't introduce delay, only linear phase ones do. I experimented with different frequency resolutions and found the current default value to be a good one for minimum phase impulse responses.
I agree that there should be a parameter for controlling the filter length / frequency resolution.
I've noticed that using longer impulse responses in some DSPs, like Viper4Android for example, makes it buffer the length of the impulse as it waits for enough samples to compute the response. So a 1 second long impulse would force it to buffer a whole second of audio. EqualizerAPO doesn't do this but I'm not sure what it does. Or perhaps it just wasn't minimum phase. Idk.
There is now a parameter called f_res
. You can play around with it but be aware that sometimes having higher values will increase gain for sub-bass.
Could you try it out and close this issue if it covers your needs.
Since impulse responses introduce an unavoidable delay during real-time processing, this additional lag in the system could potentially make issues like AV sync in videos or audio lag in games more noticeable.
Currently, impulse responses are ~100 ms at ~5000 samples. An option to adjust the length of impulse responses to ~1024-2048 samples should reduce delay as well as CPU usage without reducing frequency resolution too much (down to 20 Hz?). Truncated impulse responses would also preferably be multiplied by a window function in the time domain to reduce aliasing.