aboutsummaryrefslogtreecommitdiffstats
path: root/Alc/hrtf.c
Commit message (Collapse)AuthorAgeFilesLines
* Convert hrtf.c to C++Chris Robinson2018-11-091-1465/+0
|
* Replace restrict with RESTRICTChris Robinson2018-10-291-4/+4
|
* Don't hardcode the max channels for HRTF B-Format decodingChris Robinson2018-05-261-1/+5
|
* Undefine the correct macrosChris Robinson2018-05-151-2/+2
|
* Use fastf2i instead of manually rounding with float2intChris Robinson2018-05-121-4/+4
|
* Simplify calculating the HRTF B-Format IR lengthChris Robinson2018-05-041-19/+19
|
* Add a specific function for truncating float-to-int conversionsChris Robinson2018-05-031-11/+9
|
* Remove some unnecessary floor callsChris Robinson2018-04-281-4/+2
|
* Increase the band-split IR for decoding ambisonics to HRTFChris Robinson2018-04-271-8/+16
|
* Move the bnad-splitter filters to a separate sourceChris Robinson2018-04-211-1/+1
|
* Add some more ASSUME statementsChris Robinson2018-04-211-0/+1
|
* Accumulate the B-Format HRTF responses using doublesChris Robinson2018-04-171-9/+24
| | | | | The final result is still truncated to single-precision float, but this should keep the responses more stable as it accumulates the various inputs.
* Don't minimize the HRTF per-response delayChris Robinson2018-04-161-9/+5
| | | | | | The reverts both fa9ab9af7cb559ff9ecc1846f2996265bfbea1ec and 79604c3c0e0f3f71832a09348cc273a38882cc3e. As helpful as it was for the high frequencies, the overall response's gain suffered.
* Use a proper struct for specifying angular pointsChris Robinson2018-02-181-4/+4
|
* Minimize each response delay for the ambisonic HRTF decodeChris Robinson2018-02-181-5/+9
|
* Use an alternate virtual layout for Ambisonic HRTF decodingChris Robinson2018-02-101-5/+12
| | | | | This uses 16 channels, an 8-channel octagon + 8-channel cube, which should improve horizontal resolution without affecting vertical too much.
* Assign the HRTF storage pointers separatelyChris Robinson2018-01-151-5/+11
|
* Fix up some types for MSVCChris Robinson2018-01-111-1/+2
|
* Move the config function declarations to their own headerChris Robinson2018-01-111-0/+1
| | | | And rename alcConfig.c to alconfig.c for consistency.
* Fix some types to make MSVC happyChris Robinson2017-12-171-5/+5
|
* Store the HRTF distance in the Hrtf handleChris Robinson2017-10-231-8/+11
|
* Update mhr format for 24-bit, multi-field, stereo measurementsChris Robinson2017-10-221-44/+83
| | | | | Currently only single field HRTFs are supported, but the format now allows up to 16.
* Check the right size for the in-progress mhr updateChris Robinson2017-08-091-2/+2
|
* Declare that a couple arrays are alignedChris Robinson2017-08-091-3/+6
|
* Add experimental support for 24-bit, dual-ear HRTFsChris Robinson2017-08-081-3/+230
| | | | | | | Currently makehrtf only handles 24-bit output, not dual-ear, and only when given the --experimental switch. Files produced this way will not be guaranteed future compatibility. When the mhr format is also updated with multi-distance measurements, the experimental switch can go away.
* Don't bother returning the IR length for B-Format decodingChris Robinson2017-07-311-2/+2
|
* Update makehrtf to use a larger FFT by defaultChris Robinson2017-07-251-1/+1
| | | | Also fixes DC offset removal and increases the max IR size.
* Use helpers to get data from byte streamsChris Robinson2017-06-161-51/+51
|
* Round the B-Format HRTF response where the multiple is definedChris Robinson2017-06-161-1/+3
|
* Implement cross-platform embedding of HRTF dataalexey.lysiuk2017-05-051-69/+8
|
* Reimplement bilinear interpolation between HRIRsChris Robinson2017-05-011-25/+82
| | | | | | Some data sets are just too sparse, having noticeably few measurements to properly handle slowly panning sources. Although not perfect, bilinearly interpolating the HRIR measurements improves the positional accuracy.
* Fix a mixed-sign-comparison warning on MSVCChris Robinson2017-04-191-1/+1
|
* Use a different way to get the size of structs with flexible array membersChris Robinson2017-04-181-2/+2
|
* Overwrite the old search path with the new oneChris Robinson2017-04-081-1/+1
|
* Combine a couple loopsChris Robinson2017-04-071-28/+24
|
* Make sure malloc succeeded for 'delays'Chris Robinson2017-04-071-2/+2
|
* Store the HRTF coeffs as a stereo pairChris Robinson2017-04-071-54/+98
| | | | | This will make it easier to handle HRTF data sets that have separate left and right ear responses. Will need an mhr version update to take advantage of that.
* Allocate temp storage for delays when loading HRTFsChris Robinson2017-04-071-8/+11
|
* Reference count HRTFs and unload them when unusedChris Robinson2017-04-061-5/+44
|
* Load embedded HRTF entries as-neededChris Robinson2017-04-061-58/+59
|
* Fix an incorrect messageChris Robinson2017-04-051-10/+13
|
* Load HRTF files as neededChris Robinson2017-04-051-59/+81
| | | | | Currently only applies to external files, rather than embedded datasets. Also, HRTFs aren't unloaded after being loaded, until library shutdown.
* Store the loaded hrtf entry container in the enumerated hrtf entryChris Robinson2017-04-051-40/+34
|
* Store the HRTF's filename separate from the entry storageChris Robinson2017-04-051-45/+72
|
* Rename al_string_* functions to alstr_*Chris Robinson2017-04-041-55/+53
|
* Avoid some unnecessary string reallocationChris Robinson2017-03-311-51/+50
|
* Load HRTF coefficients as pre-normalized floatsChris Robinson2017-03-311-38/+47
|
* Combine some HRTF loading codeChris Robinson2017-03-311-78/+72
|
* Use the correct types' sizes for HRTF storageChris Robinson2017-03-311-8/+8
|
* Rework HRTF coefficient fadingChris Robinson2017-03-111-27/+11
| | | | | | | | | | | | | | | This improves fading between HRIRs as sources pan around. In particular, it improves the issue with individual coefficients having various rounding errors in the stepping values, as well as issues with interpolating delay values. It does this by doing two mixing passes for each source. First using the last coefficients that fade to silence, and then again using the new coefficients that fade from silence. When added together, it creates a linear fade from one to the other. Additionally, the gain is applied separately so the individual coefficients don't step with rounding errors. Although this does increase CPU cost since it's doing two mixes per source, each mix is a bit cheaper now since the stepping is simplified to a single gain value, and the overall quality is improved.