This is little hobby project where a binaural HRTF spatialisation algorithm is implemented in JUCE. The spatialisation algorithm is taken from the 3D Tune-In Toolkit.
The spatialisation algorithm involves extracting the HRIR data from a SOFA. For any chosen azimuth/elevation angle, barycentric interpolation is used on the three closest HRIRs to generate the HRIR for that position. We then perform overlapping FFT convolution with this HRIR.
The interaural time differences (ITDs) are generated by time-stretching the input audio signal to produce the time difference between the left signal and the right signal.
Projucer Exporter Settings
- Add "${LIBSOFA}", "libcurl_imp_x64.lib", "libhdf5_hl_x64.lib", "libhdf5_x64.lib", "netcdf_x64.lib" and "zlib_x64.lib" to External Libraries to Link
- Add "../../Libraries/libsofa/lib" and "../../Libraries/libsofa/dependencies/lib/win" to Extra Library Search Paths
- For Debug config, set LIBSOFA = libsofa_debug_x64.lib in Preprocessor Definitions and set Runtime Library setting to "Use static runtime"
- For Release config, set LIBSOFA = libsofa_x64.lib in Preprocessor Definitions
- Better ITD onset detection algorithm