Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Use a more appropriate size value for copying | Chris Robinson | 2020-06-07 | 1 | -1/+1 |
| | |||||
* | Avoid convolving an always-0 sample | Chris Robinson | 2020-05-30 | 1 | -4/+4 |
| | |||||
* | Only apply non-silent inputs for blended HRIR | Chris Robinson | 2020-05-25 | 1 | -17/+24 |
| | |||||
* | Simplify the HRTF blending fade out gain scaling | Chris Robinson | 2020-05-25 | 1 | -22/+18 |
| | |||||
* | Clarify a comment about the band-splitter | Chris Robinson | 2020-05-20 | 1 | -4/+5 |
| | |||||
* | Improve HRTF delay handling | Chris Robinson | 2020-05-20 | 1 | -28/+14 |
| | | | | | Ensures source-level HRTF, the dry mix, and direct output all align properly, and simplifies adding the delay in the direct mix output. | ||||
* | Fix some comments | Chris Robinson | 2020-05-19 | 1 | -4/+4 |
| | |||||
* | Rename applyHfScale to processHfScale | Chris Robinson | 2020-05-19 | 1 | -1/+1 |
| | |||||
* | Apply the ambisonic HF scaling in real-time with HRTF | Chris Robinson | 2020-05-19 | 1 | -3/+61 |
| | | | | | | | | | 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. | ||||
* | Properly count the last number of samples to mix | Chris Robinson | 2020-05-12 | 2 | -2/+4 |
| | |||||
* | Simplify SIMD linear resampler loop count | Chris Robinson | 2020-05-02 | 3 | -12/+9 |
| | |||||
* | Use a matching type given the initializer | Chris Robinson | 2020-05-02 | 2 | -6/+6 |
| | |||||
* | Improve the leftover and realignment mixing loops | Chris Robinson | 2020-05-02 | 2 | -8/+8 |
| | | | | | | | | Using a mask helps the compiler recognize that the leftover (any remaining non- multiple-of-4) and realignment loops will only have 3 iterations at most, which it can unroll or otherwise make more meaningful optimizations for. Previously it would try to vectorize and partially unroll the loops, which is wasteful when there would never be enough to vectorize. | ||||
* | Avoid iterators for the main mixer | Chris Robinson | 2020-05-01 | 3 | -61/+53 |
| | |||||
* | Make BuildBFormatHrtf a member of DirectHrtfState | Chris Robinson | 2020-05-01 | 1 | -2/+2 |
| | |||||
* | Don't truncate odd IR sizes with SSE | Chris Robinson | 2020-04-30 | 1 | -1/+1 |
| | |||||
* | Use a more efficient type for holding the IrSize | Chris Robinson | 2020-04-30 | 4 | -12/+12 |
| | |||||
* | Get rid of the specialized MixRow_ methods | Chris Robinson | 2020-04-16 | 4 | -89/+0 |
| | |||||
* | Use structs for the mixer and resampler tags | Chris Robinson | 2020-04-03 | 6 | -24/+29 |
| | |||||
* | Avoid using ALfloat in the mixer functions | Chris Robinson | 2020-04-03 | 6 | -48/+48 |
| | |||||
* | Another small cleanup | Chris Robinson | 2020-04-03 | 2 | -8/+7 |
| | |||||
* | Jump to the target gain if the fade amount is small | Chris Robinson | 2020-04-03 | 3 | -6/+12 |
| | |||||
* | Avoid unnecessary duplication in the resamplers | Chris Robinson | 2020-04-03 | 3 | -47/+34 |
| | |||||
* | Generate the bsinc tables using constexpr methods | Chris Robinson | 2020-04-02 | 3 | -1/+3 |
| | | | | | | | | All the methods used should be compliant with C++14 constexpr rules. However, the number of scales and phases cause GenerateBSincCoeffs to reach the allowed step limit, preventing full compile-time generation. It's not a terribly big deal, it'll generate them very quickly when loading, but it does prevent using shared read-only memory pages. | ||||
* | Simplify post-mix HRTF gain storage | Chris Robinson | 2020-01-05 | 5 | -14/+10 |
| | |||||
* | Use size_t for array indices | Chris Robinson | 2019-12-11 | 1 | -6/+7 |
| | |||||
* | Don't force the HRIR length to a rounded value | Chris Robinson | 2019-12-11 | 3 | -3/+3 |
| | | | | | The coefficient and accumulation buffers are guaranteed large enough for the full size, and the SIMD handlers will behave the same either way. | ||||
* | Use unsigned for array indices | Chris Robinson | 2019-11-29 | 1 | -5/+2 |
| | |||||
* | Avoid holding HRTF accumulation samples per-source | Chris Robinson | 2019-11-03 | 5 | -55/+27 |
| | | | | | | It notably simplifies things to mix HRTF sources into an accumulation buffer together, which the Dry buffer's Ambisonic-to-HRTF decode is then added to, before being mixed to the Real output. | ||||
* | Avoid direct function template and alias types | Chris Robinson | 2019-10-03 | 1 | -2/+2 |
| | | | | | | | It's somewhat ambiguous what they mean. Sometimes acting as a pointer, other times having weird behavior. Pointer-to-function types are explicitly defined as such, whereas uses of these tend to be as references (never null and not changeable). | ||||
* | Remove the Offset parameter from ApplyCoeffs | Chris Robinson | 2019-10-02 | 4 | -88/+97 |
| | |||||
* | Clean up some ALfloat -> float | Chris Robinson | 2019-10-02 | 5 | -68/+62 |
| | |||||
* | Move ALvoice from alu.h to a separate header | Chris Robinson | 2019-10-02 | 2 | -4/+13 |
| | |||||
* | Repack the bsinc resamplers coefficients | Chris Robinson | 2019-09-29 | 3 | -12/+12 |
| | | | | | | This puts the base coefficients and the phase deltas next to each other. This improves caching, as the base and phase deltas are always used together while the scales are only used for the non-fast versions. | ||||
* | Implement a "fast" bsinc path | Chris Robinson | 2019-09-26 | 4 | -1/+118 |
| | | | | | | | | | | This takes advantage of the fact than when increment <= 1 (when not down- sampling), the scale factor is always 0. As a result, the scale and scale-phase deltas never contribute to the filtered output. Removing those multiply+add operations cuts half of the work done by the inner loop. Sounds that do need to down-sample (when played with a high pitch, or is 48khz on 44.1khz output, for example), still go through the normal bsinc process. | ||||
* | Make the bsinc l and m coefficients unsigned | Chris Robinson | 2019-09-17 | 3 | -17/+12 |
| | |||||
* | Fix typo | Chris Robinson | 2019-09-16 | 1 | -3/+3 |
| | |||||
* | Clean up some more shadowing warnings | Chris Robinson | 2019-09-16 | 3 | -13/+18 |
| | |||||
* | Fix a few more GCC warnings | Chris Robinson | 2019-09-14 | 1 | -1/+1 |
| | |||||
* | Fix some more implicit conversions noted by GCC | Chris Robinson | 2019-09-14 | 5 | -15/+18 |
| | |||||
* | Pass IrSize to the HRTF mixers as unsigned | Chris Robinson | 2019-09-13 | 5 | -19/+19 |
| | |||||
* | Make IrSize unsigned | Chris Robinson | 2019-09-13 | 1 | -1/+1 |
| | |||||
* | Make the resampler increment unsigned | Chris Robinson | 2019-09-13 | 6 | -78/+74 |
| | |||||
* | Fix a few more C-style casts | Chris Robinson | 2019-09-11 | 1 | -3/+3 |
| | |||||
* | Only ASSUME values where a variable is used | Chris Robinson | 2019-09-04 | 4 | -6/+3 |
| | |||||
* | Only use one accumulation buffer for B-Format HRTF mixing | Chris Robinson | 2019-09-03 | 1 | -15/+11 |
| | | | | | It's all getting added together anyway and all channels are continuous inputs, so this is fewer passes over various buffers. | ||||
* | Store the voice fraction offset as unsigned | Chris Robinson | 2019-08-31 | 6 | -49/+43 |
| | |||||
* | Fix a variable declaration | Chris Robinson | 2019-08-22 | 1 | -3/+2 |
| | |||||
* | Avoid reading from pointers to __m128 values | Chris Robinson | 2019-08-21 | 2 | -40/+31 |
| | |||||
* | Fix NEON store call | Chris Robinson | 2019-08-20 | 1 | -1/+1 |
| |