aboutsummaryrefslogtreecommitdiffstats
path: root/Alc
Commit message (Collapse)AuthorAgeFilesLines
* Constify a parameterChris Robinson2018-12-2212-24/+24
|
* Clean up some math stuffChris Robinson2018-12-226-38/+47
|
* Fix for C++11 compatibilityChris Robinson2018-12-221-4/+4
| | | | std::array::operator[] isn't constexpr until C++14.
* Use a normal delete instead of ll_ringbuffer_freeChris Robinson2018-12-2212-169/+119
| | | | And use RingBufferPtr in more places
* A bit of cleanup for CalcPanningAndFiltersChris Robinson2018-12-221-24/+30
|
* Rename a couple HRTF structsChris Robinson2018-12-226-79/+78
|
* Try to help GetHrtfCoeffs vectorizeChris Robinson2018-12-211-21/+19
|
* Small cleanup for BuildBFormatHrtfChris Robinson2018-12-211-35/+39
|
* Don't convert the HRTF decoder virtual speaker positions to radiansChris Robinson2018-12-213-33/+32
|
* Use a dodecahedron for the ambisonic HRTF decodeChris Robinson2018-12-211-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 pointerChris Robinson2018-12-204-17/+17
|
* Fix the type used for another subtractionChris Robinson2018-12-201-1/+1
|
* Silence some MSVC warningsChris Robinson2018-12-201-4/+4
|
* Fix the type used for subtractionChris Robinson2018-12-201-1/+1
|
* Clean up most of the compressor loopsChris Robinson2018-12-202-202/+171
|
* Use std::accumulate to get the max composited buffer length loadedChris Robinson2018-12-201-36/+35
|
* Add index maps from 2D and 3DChris Robinson2018-12-203-25/+30
|
* Use std::array in place of some C-style arraysChris Robinson2018-12-203-31/+32
|
* Rename some conversion arraysChris Robinson2018-12-203-31/+31
|
* Use inline methods for the device format sizesChris Robinson2018-12-1916-102/+77
|
* Don't hardcode the channel count from the device ambisonic orderChris Robinson2018-12-191-7/+5
|
* Don't allow FuMa ordering or normalization above third-orderChris Robinson2018-12-191-2/+14
|
* Combine handling of attribute processingChris Robinson2018-12-181-208/+143
|
* Use the AmbiUpsampler with higher order basic and custom panningChris Robinson2018-12-172-96/+47
| | | | Also allocate the BFormatDec and AmbiUpsampler where they're (re)set.
* Avoid hard-coded scale factors in BFormatDec's upsamplerChris Robinson2018-12-171-23/+36
|
* Mix each frequency band individually for ambisonic upsamplingChris Robinson2018-12-162-8/+7
|
* Always use the transcode method with the AmbiUpsamplerChris Robinson2018-12-163-63/+23
|
* Avoid extraneous alignment requirementsChris Robinson2018-12-161-2/+2
|
* Put the ACN index map in a headerChris Robinson2018-12-154-82/+88
| | | | Also put it and the Ambisonic scales in a more appropriate header.
* Reorder some math terms to help optimizationsChris Robinson2018-12-151-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 ambisonicsChris Robinson2018-12-151-1/+11
|
* Move some ambisonic-related macros to a separate headerChris Robinson2018-12-154-10/+56
|
* Make the AmbDec speaker and matrix arrays dynamicChris Robinson2018-12-154-70/+76
|
* Avoid some explicit loop countsChris Robinson2018-12-152-43/+27
|
* Clean up panning.cpp a bitChris Robinson2018-12-151-64/+51
|
* Add macros for the ambisonic order masksChris Robinson2018-12-142-23/+30
|
* Cleanup bformatdec.cpp a bitChris Robinson2018-12-131-81/+30
|
* Add more casts for MSVCChris Robinson2018-12-125-12/+20
|
* Fix some MSVC conversion warningsChris Robinson2018-12-127-38/+37
|
* Use proper classes for Vector and Matrix typesChris Robinson2018-12-127-148/+109
|
* Cleanup alu.cpp someChris Robinson2018-12-121-301/+237
|
* Use helpers to get the Ambisonic scales and layout mapsChris Robinson2018-12-102-14/+32
|
* A bit more cleanupChris Robinson2018-12-103-130/+111
|
* Clean up a few more loopsChris Robinson2018-12-101-83/+84
|
* Add missing headerChris Robinson2018-12-101-0/+1
|
* Put static methods into an anonymous namespaceChris Robinson2018-12-101-131/+128
|
* Avoid some more explicit loopsChris Robinson2018-12-102-55/+42
|
* Use std::accumulate to find the max channel countChris Robinson2018-12-091-15/+12
|
* Avoid some more explicit loopsChris Robinson2018-12-091-13/+21
|
* Pass a reference to an array for a function parameterChris Robinson2018-12-091-1/+1
|