Open 1enn0 opened 1 year ago
Hi!
This is due to the fact that in the current release of the SONICOM HRTF database we kept redundant measurements of the top HRTF (90 degree elevation) in the sofa file (during the measurement, the top direction was measured each time the chair was rotated). Having multiple measurements at the same position in the sofa file caused the HRTF interpolation to fail. Since finding this bug ourselves, we decided to remove the redundant positions from the database. We will upload the new versions to the website soon but in the meantime, let me know if you want me to send you some specific corrected HRTF files directly.
This could also be an improvement to the SAF HRTF loader to check for overlapping positions, warn the user, and only take one of the measurements at that location.
Hi @rapolasd, thank you for the info! I suspected something like this might be happening. I'm happy to wait until you update the database :)
Meanwhile, I did a quick check some time ago and built the test above from the develop
branch. IIRC, the issue did not appear (will have to verify). There was some work on the ambi_bin
example app, for example this commit. Maybe @leomccormack can help whether the issue with the overlapping positions has already been addressed in some way?
Description
Using a HRTF from the SONICOM HRTF dataset will throw an exception (access violation). This has been tested with multiple HRTFs from the mentioned dataset.
Environment
SAF_USE_INTEL_MKL
SAF_ENABLE_SOFA_READER_MODULE
,SAF_ENABLE_EXAMPLES_TESTS
Reproducible Steps
Steps to create the smallest reproducible scenario:
test__saf_example_ambi_bin()
in filesrc/test/test__examples.c
to load a SOFA file from the SONICOM dataset:saf_test
with above environment.Expected Output
Test should pass.
Actual Output
Access violation in
framework/modules/saf_utilities/saf_utility_geometry.c:782
while trying to readfaceIdx[k]
.faceIdx
does not exist becausenFaceIdx
is 0 here.Additional information
Call Stack: