aboutsummaryrefslogtreecommitdiffstats
path: root/alc/hrtf.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Use an enum for FamCountChris Robinson2020-05-191-3/+1
|
* Apply the ambisonic HF scaling in real-time with HRTFChris Robinson2020-05-191-12/+18
| | | | | | | | | Rather than applying the HF scale to the IRs necessitating them to be truncated along with increasing the IR size, it can be applied to the input signal for the same results. Consequently, the IR size can be notably shortened while avoiding the extra truncation. In its place, the delayed reversed all-pass technique can still be used on the input for maintaining phase when applying the bandsplit/hfscalar filter to the input signal.
* Make BuildBFormatHrtf a member of DirectHrtfStateChris Robinson2020-05-011-13/+12
|
* Clean up some more unnecessary uses of AL typesChris Robinson2020-04-081-8/+8
|
* Avoid some pre-C++14 workaroundsChris Robinson2020-03-221-2/+2
|
* Use an intrusive_ptr for the device's HrtfStoreChris Robinson2020-03-011-8/+8
|
* Update the MHR formatChris Robinson2020-02-111-2/+177
| | | | | | | | This update removes the 16/24-bit sample type enum, now always being 24-bit (other than a very small size saving, there's no practical benefit to storing 16-bit samples). This also reverses the field storage, so no on-load fixup is needed, and stores the IR delays with 2 bits of sub-sample precision, allowing for slightly better timing (after resampling, blending, etc).
* Use std::array and span for the HRTF delaysChris Robinson2020-02-081-1/+1
|
* Try harder to find the closest HRIR for the B-Format decoderChris Robinson2020-01-261-16/+23
|
* Return immediately on error when loading HRTFsChris Robinson2020-01-131-48/+23
|
* Make a separate function for duplicate codeChris Robinson2020-01-131-52/+25
|
* Use the Field and Elevation structs directly when loadingChris Robinson2020-01-131-113/+113
|
* Don't assume the total length of certain arraysChris Robinson2020-01-131-6/+6
|
* Use a span for a fixed-size array referenceChris Robinson2020-01-131-2/+2
|
* Add missing includeChris Robinson2020-01-121-0/+1
|
* Scale the resampled HRTF delays if they exceed the maxChris Robinson2020-01-121-18/+29
|
* Warn when resampled HRIR delays get clampedChris Robinson2020-01-121-2/+16
|
* Blend the whole IR for the interpolated HRIRChris Robinson2020-01-121-7/+4
| | | | | The SIMD mixers may use a few more elements beyond the irSize, so not limiting the blend to that size can slightly improve the quality for resampled HRIRs.
* Fix blending for the right IR delayChris Robinson2020-01-081-1/+1
|
* Don't blend the B-Format decoder HRIRsChris Robinson2020-01-071-52/+25
| | | | | | | | Though fine in theory, an issue arises with extra phase interference since the frequency phases aren't aligned for each response. It would be better to do the blending before minimum phase reconstruction, where it can blend just the frequency magnitudes, essentially allowing makemhr to increase the resolution of the dataset.
* Combine identical arraysChris Robinson2020-01-041-6/+4
|
* Use an array type for the HRIR delay pairChris Robinson2019-12-301-9/+3
|
* Load the HRIRs directly into HrirArraysChris Robinson2019-12-301-34/+45
|
* Avoid declaring a variable earlyChris Robinson2019-12-301-3/+2
|
* Workaround for MSVC 2015Chris Robinson2019-12-291-2/+2
|
* Use a span for the band-splitter inputChris Robinson2019-12-251-10/+11
|
* Don't force the HRIR length to a rounded valueChris Robinson2019-12-111-21/+10
| | | | | The coefficient and accumulation buffers are guaranteed large enough for the full size, and the SIMD handlers will behave the same either way.
* Fix MHR limitsChris Robinson2019-12-111-10/+6
|
* Use proper array types instead of C-style arraysChris Robinson2019-12-091-15/+14
|
* Avoid global macros for format-secific typesChris Robinson2019-12-091-15/+14
|
* Don't re-sort the enumerated HRTF listChris Robinson2019-12-081-13/+13
|
* Improve blended IR delay precision for the B-Format decoderChris Robinson2019-12-081-8/+13
|
* Use doubles for blending the B-Format decoder HRIRsChris Robinson2019-12-061-9/+9
|
* Clear the resampler after useChris Robinson2019-11-291-8/+11
|
* Store HRTF delays with some fractional precisionChris Robinson2019-11-291-13/+23
| | | | | | | | Since the delays get bilinearly filtered before use, maintaining a bit of extra precision can help accuracy even if it ultimately gets rounded to the nearest integer before use. This should help with resampled HRTFs, which need to scale the delays that are already rounded, and can also be leveraged by an updated MHR format.
* Avoid a shadow declaration warningChris Robinson2019-11-291-3/+3
|
* Use unsigned for array indicesChris Robinson2019-11-291-38/+32
|
* Fix sorting of loaded HRTFsChris Robinson2019-11-291-14/+12
|
* Remove an unnecessary aliasChris Robinson2019-11-281-6/+5
|
* Rename the default HRTFChris Robinson2019-11-281-6/+6
|
* Also scale the HRTF delays for different ratesChris Robinson2019-11-281-0/+5
|
* Add an option to limit the HRTF's IR sizeChris Robinson2019-11-281-5/+11
|
* Don't keep a resampled default HRTFChris Robinson2019-11-281-7/+0
|
* Resample HRIRs when loadingChris Robinson2019-11-281-7/+51
|
* Store HRIR coefficients using HrirArrayChris Robinson2019-11-281-17/+11
|
* Rework HRTF enuemration so the loaded HRTFs are separateChris Robinson2019-11-281-123/+91
|
* Rename HrtfEntry to HrtfStoreChris Robinson2019-11-281-24/+24
|
* Apply the full HRIR length for the B-Format decoderChris Robinson2019-11-211-5/+5
|
* Rename a couple struct fieldsChris Robinson2019-11-211-24/+22
|
* Allocate storage for full HRTF coefficient lengthsChris Robinson2019-11-211-11/+19
|