0
$\begingroup$

I’m trying to build a binaural audio player, I'm using MIT Kemar c library to get the hrtf and a fft segmented convolution. It works on real time but the problem is each time I change the hrtf I hear noises like small cracks or something like vinyl noise. But I'm not sure why. Please help. If you are interested in the project here is my github repo: https://github.com/Bk8/Binaural

$\endgroup$
1
$\begingroup$

One possible way to reduce cracking noises between convolutional block filtering parameter changes is to use an overlapping of the blocks and do a cross fading (linear or raised-cosine) of the overlapping segments.

$\endgroup$
3
  • $\begingroup$ OP might already be doing Overlap-Add for his/her "fft segmented convolution". $\endgroup$ Jul 22 '16 at 11:00
  • $\begingroup$ In that case, the OP might need to complete and end one overlap-add sequence, start another overlap-add sequence using the some previously filtered blocks over again, and cross fade the two overlapped overlap-add sequences at some point a full impulse response length into the new sequence. $\endgroup$
    – hotpaw2
    Jul 22 '16 at 14:37
  • $\begingroup$ well, unlike Overlap-Save, in which if you suddenly change to another FIR coefficient set you will get a jump discontinuity, with OLS changing to a completely different coefficient set will result in some form of crossfading from the old to the new during the overlap-add portion. $\endgroup$ Jul 22 '16 at 15:39
0
$\begingroup$

Mixing just the overlaps didn't worked at all, I used the method described here:

https://codeandsound.wordpress.com/2015/04/08/implementing-binaural-hrtf-panner-node-with-web-audio-api/

First you filter low frequencies then you render the next segment and mix between the new segment and the old, and finally add the low frecuencies back.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.