-
Notifications
You must be signed in to change notification settings - Fork 39
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Delayline for use with HRTFs #86
Comments
Nice one, I will split the topic into two:
|
This would fix the HRIR issue and match the way this is handled for the WFS delay. Regarding |
Your question to @fietew: do you have an opinion on this? |
Solutions:
In my opinion there are two bad cases for
As we cannot sensibly determine the needed |
So for now, I would fix the cutting off of the HRIRs in the way we discussed here. I still think the other topic - getting rid of the impulse response length restrictions through conf.N - is a good idea. It would not only effect |
As the bug is fixed and we have discussed getting rid of |
When doing binaural simulations with HRIRs, I encountered the problem that
delayline()
cuts off the last samples of a HRIR by the number of zeros that have been introduced at the beginning to obtain the delay corresponding to the desired source distance. During this step the HRIR still has its original length and only later gets zero-padded toconf.N
byir_generic()
. Therefore, information in the HRIR is lost.ir_correct_distance()
warns/checks for loss of meaningful HRIR samples only if:zero_padding
to restore the HRIR measurement distance given by metadata is almost as long asconf.N
(more precise: less than 128 samples shorter),delay
to reach the desired source position from the measurement position is longer than the size of the HRIR.The HRIRs are zero-padded at the beginning by
zero_padding+delay
.So, somewhere the HRIRs have to be zero-padded at their ends sufficiently beforehand, presumably to
conf.N
. This could possibly be doneget_ir()
ir_correct_distance()
delayline()
.But I am not sure which would be the right choice that does not intervene with other functionalities these functions are performing. The above mentioned checks/warnings in
ir_correct_distance()
should be revised as well.Overall, I would prefer a behaviour where the delaying mechanism does not throw away any samples and all the information of a linear convolution is preserved instead of truncating signals to
conf.N
. This would probably induce problems concerning the compensation for differents signal lengths in a matrix of signals and is more complicated, though. Has this issue been discussed before?The text was updated successfully, but these errors were encountered: