aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Fix the type used for subtractionChris Robinson2018-12-201-1/+1
|
* Clean up most of the compressor loopsChris Robinson2018-12-202-202/+171
|
* Add an assume_aligned helperChris Robinson2018-12-201-0/+15
|
* 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-1917-104/+78
|
* Don't hardcode the channel count from the device ambisonic orderChris Robinson2018-12-192-15/+16
|
* Don't allow FuMa ordering or normalization above third-orderChris Robinson2018-12-191-2/+14
|
* Combine handling of attribute processingChris Robinson2018-12-182-208/+145
|
* 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-156-47/+58
|
* 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-143-26/+41
|
* Cleanup bformatdec.cpp a bitChris Robinson2018-12-131-81/+30
|
* Add POPCNT32 and CTZ32 macrosChris Robinson2018-12-131-13/+41
|
* Add more casts for MSVCChris Robinson2018-12-125-12/+20
|
* Fix some MSVC conversion warningsChris Robinson2018-12-1214-58/+61
|
* Fix an MSVC warningChris Robinson2018-12-121-1/+1
|
* Remove an unused sourceChris Robinson2018-12-122-5/+0
|
* Use proper classes for Vector and Matrix typesChris Robinson2018-12-1210-190/+199
|
* 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-104-132/+113
|
* Clean up a few more loopsChris Robinson2018-12-102-85/+97
|
* 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-092-4/+4
|
* 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-087-163/+53
|
* Add a cmake option to specify prebuilt native toolsChris Robinson2018-12-081-17/+25
| | | | | | This should only be used with automated build systems that guarantee the native tools' binaries are up-to-date. Otherwise it's best to leave it alone so it can automatically rebuild them as needed.
* Rename a member variable and inline a functionChris Robinson2018-12-082-9/+6
|
* Avoid several uses of memsetChris Robinson2018-12-0813-46/+38
|
* Add missing includeChris Robinson2018-12-081-0/+1
|
* Increase GAIN_MIX_MAXChris Robinson2018-12-081-1/+1
|