aboutsummaryrefslogtreecommitdiffstats
path: root/Alc
Commit message (Collapse)AuthorAgeFilesLines
* 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
|
* Rename a couple global variablesChris Robinson2018-12-093-17/+17
| | | | Avoid clashing with an enum name
* Add default construction to HrtfEntryChris Robinson2018-12-091-3/+1
|
* Use a vector for LoadedHrtfsChris Robinson2018-12-091-67/+65
|
* Avoid static global initialization functionsChris Robinson2018-12-086-160/+50
|
* Rename a member variable and inline a functionChris Robinson2018-12-082-9/+6
|
* Avoid several uses of memsetChris Robinson2018-12-0810-39/+33
|
* Add missing includeChris Robinson2018-12-081-0/+1
|
* A bit more cleanupChris Robinson2018-12-081-21/+15
|
* Use member functions for BFormatDec and AmbiUpsamplerChris Robinson2018-12-084-129/+122
|
* Clean up some more loopsChris Robinson2018-12-083-53/+55
|
* Inline a simple methodChris Robinson2018-12-082-8/+1
|
* Avoid using the deprecated mem_fun_ref methodChris Robinson2018-12-071-1/+1
|
* Add fourth-order methods to the NFC filterChris Robinson2018-12-072-118/+119
| | | | Unused, but it finishes out the currently possible implementations.
* Use a constructor instead of a macro to initialize AsyncEventChris Robinson2018-12-062-4/+4
|
* Remove some more explicit loopsChris Robinson2018-12-051-19/+21
|
* Use class methods for BandSplitter and SplitterAllpass filtersChris Robinson2018-12-056-65/+60
|
* Use class methods for the NFC filtersChris Robinson2018-12-055-140/+139
|
* Use class methods for the biquad filterChris Robinson2018-12-049-153/+146
|
* Avoid using AL types with the filtersChris Robinson2018-12-044-48/+48
|