aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Add some more ASSUMEsChris Robinson2018-12-231-6/+13
|
* Repack some AmbiUpsampler fields for better access patternsChris Robinson2018-12-232-16/+18
|
* Properly rebalance the HF scale with ambisonic upsamplingChris Robinson2018-12-231-5/+32
|
* Mix effect slot output to the effect target if it's setChris Robinson2018-12-2313-61/+181
|
* Dynamically sort the effect slots when mixingChris Robinson2018-12-224-8/+51
| | | | | | | | | This is to be able to support effects that output to other effects. When an effect outputs to another effect, the former needs to process first, so the former mixes to the latter's buffer before the latter is processed. This sorting needs to happen in the mixer because the effect slot's "Target" property changes asynchronously.
* Fix narrowing conversion from double to floatChris Robinson2018-12-221-2/+2
|
* Cleanup definitions and declarations in reverb.cppChris Robinson2018-12-221-253/+221
|
* Constify a parameterChris Robinson2018-12-2213-25/+25
|
* Clean up some math stuffChris Robinson2018-12-2210-80/+70
|
* 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-227-82/+81
|
* 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-205-19/+19
|
* 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
|
* 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
|