Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Reverse the HRTF field array | Chris Robinson | 2019-02-27 | 1 | -2/+1 |
| | | | | | | Most often a sound's distance will be beyond the farthest field measurement, so It's more efficient to have the farthest field first and avoid looping through the whole field array for them. | ||||
* | Remove a duplicate index array | Chris Robinson | 2019-02-24 | 1 | -2/+2 |
| | |||||
* | Remove the FOAOut mixing buffer and associated post-processes | Chris Robinson | 2019-02-22 | 1 | -121/+1 |
| | |||||
* | Allow processing some effects in higher order ambisonics | Chris Robinson | 2019-02-21 | 1 | -2/+2 |
| | | | | | | Reverb notably is still only first-order (any higher order channels are dropped, and it writes to FOAOut). But others, like the equalizer, work on all available channels. | ||||
* | Add helpers to get the channel count from an ambisonic order | Chris Robinson | 2019-02-21 | 1 | -7/+7 |
| | |||||
* | Ensure the device's mAmbiOrder is always set appropriately | Chris Robinson | 2019-02-21 | 1 | -8/+23 |
| | | | | The Dry target is always ambisonic, so set its order correctly. | ||||
* | Allocate the effect slot wet buffer dynamically | Chris Robinson | 2019-02-20 | 1 | -6/+8 |
| | |||||
* | Rename MAX_AMBI_COEFFS and MAX_AMBI2D_COEFFS | Chris Robinson | 2019-02-19 | 1 | -15/+15 |
| | |||||
* | Clean up some AmbiUpsampler initialization | Chris Robinson | 2019-02-19 | 1 | -17/+19 |
| | |||||
* | Collect HRTF field info into a struct | Chris Robinson | 2019-01-28 | 1 | -2/+3 |
| | |||||
* | Make IncRef and DecRef member functions | Chris Robinson | 2019-01-24 | 1 | -5/+5 |
| | |||||
* | Use c++ headers | Filip Gawin | 2019-01-09 | 1 | -5/+5 |
| | |||||
* | Make Create methods for structs with flexible array members ... | Chris Robinson | 2019-01-08 | 1 | -2/+1 |
| | | | | ... that are used with unique_ptr. | ||||
* | Avoid calling unique_ptr::reset with a raw pointer | Chris Robinson | 2019-01-08 | 1 | -7/+7 |
| | |||||
* | Avoid using old style casts | Filip Gawin | 2019-01-08 | 1 | -4/+4 |
| | | | | | | To think about: examples/alffplay.cpp:600 OpenAL32/Include/alMain.h:295 | ||||
* | Don't use the dual-band upsampler for basic ambisonic decoding | Chris Robinson | 2019-01-06 | 1 | -22/+28 |
| | |||||
* | Replace macros with constexpr inline functions | Chris Robinson | 2019-01-06 | 1 | -4/+4 |
| | |||||
* | Pass the normalized crossover frequency to the reset method | Chris Robinson | 2019-01-05 | 1 | -1/+2 |
| | |||||
* | Simplify MixParams and AmbiUpsampler | Chris Robinson | 2019-01-05 | 1 | -62/+30 |
| | | | | Since the dry buffer is always an ambisonic target now | ||||
* | Use BFormatDec for custom and built-in ambisonic decoding | Chris Robinson | 2019-01-05 | 1 | -96/+111 |
| | |||||
* | Add and use a make_unique function | Chris Robinson | 2019-01-01 | 1 | -3/+3 |
| | |||||
* | Remove extraneous typedef, struct, and enum keywords | Chris Robinson | 2018-12-24 | 1 | -9/+9 |
| | |||||
* | Mix effect slot output to the effect target if it's set | Chris Robinson | 2018-12-23 | 1 | -0/+3 |
| | |||||
* | Rename a couple HRTF structs | Chris Robinson | 2018-12-22 | 1 | -10/+10 |
| | |||||
* | Don't convert the HRTF decoder virtual speaker positions to radians | Chris Robinson | 2018-12-21 | 1 | -21/+21 |
| | |||||
* | Use a dodecahedron for the ambisonic HRTF decode | Chris Robinson | 2018-12-21 | 1 | -68/+51 |
| | | | | | | | Also uses full second-order for "basic" HRTF rendering. Note that the supplied matrix is full third-order, but only the first- and second-order coefficients are used. The base matrices are the identical, only differing by the high- frequency scalars. | ||||
* | Pass RealMixParams by reference instead of pointer | Chris Robinson | 2018-12-20 | 1 | -1/+1 |
| | |||||
* | Add index maps from 2D and 3D | Chris Robinson | 2018-12-20 | 1 | -17/+16 |
| | |||||
* | Use std::array in place of some C-style arrays | Chris Robinson | 2018-12-20 | 1 | -19/+18 |
| | |||||
* | Rename some conversion arrays | Chris Robinson | 2018-12-20 | 1 | -22/+22 |
| | |||||
* | Use inline methods for the device format sizes | Chris Robinson | 2018-12-19 | 1 | -3/+3 |
| | |||||
* | Use the AmbiUpsampler with higher order basic and custom panning | Chris Robinson | 2018-12-17 | 1 | -79/+47 |
| | | | | Also allocate the BFormatDec and AmbiUpsampler where they're (re)set. | ||||
* | Always use the transcode method with the AmbiUpsampler | Chris Robinson | 2018-12-16 | 1 | -14/+2 |
| | |||||
* | Put the ACN index map in a header | Chris Robinson | 2018-12-15 | 1 | -30/+16 |
| | | | | Also put it and the Ambisonic scales in a more appropriate header. | ||||
* | Reorder some math terms to help optimizations | Chris Robinson | 2018-12-15 | 1 | -6/+6 |
| | | | | | | | | | | | | | | | | | | | | | | | Because floating-point math is not associative ((a*b)*c does not necessarily give the same result as a*(b*c)), the ordering of terms can inhibit reuse of temporary values. For example, both coeffs[9] = 2.091650066f * y * (3.0f*x*x - y*y); and coeffs[15] = 2.091650066f * x * (x*x - 3.0f*y*y); contain x*x and y*y terms that could be calculated once, stored in temporary registers, and reused to multiply with 3. But since 3.0f*(x*x) would produce different results, the compiler is not allowed to make that optimization. If, however, the multiply with 3 is moved to the right side: coeffs[9] = 2.091650066f * y * (x*x*3.0f - y*y); and coeffs[15] = 2.091650066f * x * (x*x - y*y*3.0f); in both cases x*x and y*y are calculated first in their respective groups, guaranteeing the same results for both instances prior to the multiply with 3 and allowing the compiler to reuse those intermediate values. | ||||
* | Add encoding calculations for fourth-order ambisonics | Chris Robinson | 2018-12-15 | 1 | -1/+11 |
| | |||||
* | Make the AmbDec speaker and matrix arrays dynamic | Chris Robinson | 2018-12-15 | 1 | -11/+12 |
| | |||||
* | Clean up panning.cpp a bit | Chris Robinson | 2018-12-15 | 1 | -64/+51 |
| | |||||
* | Add macros for the ambisonic order masks | Chris Robinson | 2018-12-14 | 1 | -15/+18 |
| | |||||
* | Fix some MSVC conversion warnings | Chris Robinson | 2018-12-12 | 1 | -9/+9 |
| | |||||
* | Use helpers to get the Ambisonic scales and layout maps | Chris Robinson | 2018-12-10 | 1 | -10/+24 |
| | |||||
* | A bit more cleanup | Chris Robinson | 2018-12-10 | 1 | -44/+35 |
| | |||||
* | Clean up a few more loops | Chris Robinson | 2018-12-10 | 1 | -83/+84 |
| | |||||
* | Add missing header | Chris Robinson | 2018-12-10 | 1 | -0/+1 |
| | |||||
* | Put static methods into an anonymous namespace | Chris Robinson | 2018-12-10 | 1 | -131/+128 |
| | |||||
* | Avoid some more explicit loops | Chris Robinson | 2018-12-10 | 1 | -54/+41 |
| | |||||
* | Use std::accumulate to find the max channel count | Chris Robinson | 2018-12-09 | 1 | -15/+12 |
| | |||||
* | Avoid some more explicit loops | Chris Robinson | 2018-12-09 | 1 | -13/+21 |
| | |||||
* | Pass a reference to an array for a function parameter | Chris Robinson | 2018-12-09 | 1 | -1/+1 |
| | |||||
* | Avoid several uses of memset | Chris Robinson | 2018-12-08 | 1 | -23/+17 |
| |