aboutsummaryrefslogtreecommitdiffstats
path: root/utils/makemhr/makemhr.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Avoid using auto for lambda parametersChris Robinson2023-02-061-1/+1
|
* Increase the default mhr truncation size to 64Chris Robinson2023-01-231-1/+1
| | | | To match the default data set.
* Replace a couple more pointer+count with a spanChris Robinson2023-01-231-94/+75
|
* Use a vector of arrays for a multi-dimensional arrayChris Robinson2023-01-231-3/+3
|
* Use a span instead of pointer+countChris Robinson2023-01-231-13/+13
|
* Remove a redundant struct memberChris Robinson2023-01-231-26/+24
|
* Remove some unused membersChris Robinson2023-01-231-2/+0
|
* Fix closing parenthesisChris Robinson2023-01-151-1/+1
|
* clang-tidy cleanups (#800)Rosen Penev2023-01-151-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * clang-tidy: use bool literals Found with modernize-use-bool-literals Signed-off-by: Rosen Penev <[email protected]> * clang-tidy: replace std::bind with lambdas Found with modernize-avoid-bind Signed-off-by: Rosen Penev <[email protected]> * clang-tidy: use data() instead of pointer stuff Found with readability-container-data-pointe Signed-off-by: Rosen Penev <[email protected]> * clang-tidy: use empty() Found with readability-container-size-empty Signed-off-by: Rosen Penev <[email protected]> * clang-tidy: remove static in anon namespace Found with readability-static-definition-in-anonymous-namespace Signed-off-by: Rosen Penev <[email protected]> * clang-tidy: remove const return Found with readability-const-return-type Signed-off-by: Rosen Penev <[email protected]> Signed-off-by: Rosen Penev <[email protected]>
* Remove the FFT'd resampler from makemhrChris Robinson2023-01-111-93/+0
| | | | | Both SOFA and non-SOFA inputs use the polyphase resampler as needed when loading the IRs.
* Avoid extraneous temporaries when filling vectorsChris Robinson2022-12-151-0/+2
|
* Use the existing common FFT functions in makemhrChris Robinson2022-11-271-82/+3
|
* Avoid nesting lambdasChris Robinson2022-10-241-42/+27
|
* Resample before frequency analysisChris Robinson2022-05-131-3/+3
| | | | | | | | | | We want to resample before minimum phase reconstruction since that changes the phase relationship of the sampled signal, introducing a slight bit of noise from truncated sampling. It's not clear that the frequency domain resampling method is accurate, so resampling prior to frequency analysis is an alternative to ensure the resulting frequencies are given the proper phase for sampling. This also cleans up some micro allocations in loops.
* Avoid allocating for each HRIR reconstructionChris Robinson2020-08-141-9/+9
|
* Simplify StrSubst in makemhrChris Robinson2020-08-131-36/+27
|
* Improve handling main() with UTF-8 args on WindowsChris Robinson2020-08-121-2/+0
|
* Apply simulated HRIR occlusion in the frequency domainChris Robinson2020-06-211-50/+59
|
* Synthesize missing elevations in the frequency domainChris Robinson2020-06-211-141/+147
| | | | | | This should help avoid destructive phase interference. The occlusion low-pass filter is still applied in the time domain due to no clear topology (cutoff frequency, slope, bandwidth, etc).
* Use multiple threads for magnitude calculationsChris Robinson2020-06-191-14/+34
| | | | Also allow user-declarable thread count.
* Avoid blending multiple IRs for the -90 elevation IRChris Robinson2020-06-191-33/+27
|
* Add a makemhr option to use the farthest field onlyChris Robinson2020-06-171-8/+30
| | | | | All fields are used for equalization, but only the farthest field is resampled, reconstructed, normalized, and written to the mhr.
* Resample HRIRs after equalizationChris Robinson2020-06-171-93/+93
|
* Resample HRTFs in the frequency domain in makemhrChris Robinson2020-06-171-29/+93
| | | | | | | | | | | | This should produce far better results given it works directly on the frequency response magnitudes prior to phase reconstruction, as it doesn't deal with a linear phase filter on a truncated time-domain response (with the result also getting truncated in both direction). The in-library on-load HRTF resampler still uses the linear filter due to its relative performance and simplicity benefits. It's good enough as a backup, though users with custom HRTFs would benefit from resampling when creating the mhr (adjusting its window size as appropriate/desired).
* Update the makemhr utility and default HRTFChris Robinson2020-02-111-17/+13
|
* Scale delays when exceeding the max for generated mhr filesChris Robinson2020-02-101-15/+35
|
* Fix MHR limitsChris Robinson2019-12-111-7/+3
|
* Simplify a status-checking loopChris Robinson2019-12-101-7/+6
|
* Move the polyphase resampler to the common libChris Robinson2019-11-281-234/+3
|
* Fix azimuth limitChris Robinson2019-10-221-3/+5
|
* Use istream for makemhr inputChris Robinson2019-09-231-46/+41
|
* Use our case-insensitive compare functions in makemhrChris Robinson2019-09-161-1/+2
|
* Fix some implicit castsChris Robinson2019-09-111-26/+25
|
* Clean up some more headersChris Robinson2019-07-281-23/+18
|
* Properly include getopt.hChris Robinson2019-07-141-1/+1
|
* Simplify applying the field magnitude factorChris Robinson2019-03-271-2/+2
|
* Support loading SOFA files directly with makemhrChris Robinson2019-03-251-3/+8
| | | | | | | This extracts the definition info it can from the SOFA, and uses the same logic as sofa-info to automatically detect an appropriate layout. There is a bit of code duplication from loaddef.cpp and sofa-info.cpp, though there are slight modifications.
* Detect SOFA files for makemhr inputChris Robinson2019-03-251-6/+25
|
* Use only a single function to load the HrirDataTChris Robinson2019-03-251-18/+11
|
* Add a command-line option to force mono input with makemhrChris Robinson2019-03-241-6/+14
|
* Cleanup some unnecessary parametersChris Robinson2019-03-241-33/+24
|
* Move makemhr's .def loading code to a separate sourceChris Robinson2019-03-241-2077/+11
|
* Rename makehrtf to makemhr and move it to a subdirectoryChris Robinson2019-03-241-0/+3855