aboutsummaryrefslogtreecommitdiffstats
path: root/Alc/bformatdec.c
Commit message (Collapse)AuthorAgeFilesLines
* Make the SelectMixer function sharableChris Robinson2016-09-061-2/+2
|
* Rename some variables for clarityChris Robinson2016-09-061-28/+30
|
* Use more correct cube decoder matricesChris Robinson2016-09-051-8/+8
|
* Rename MatrixMixerFunc to RowMixerFuncChris Robinson2016-09-021-2/+2
|
* Use MixMatrixRow to upsample the split frequency bands to the outputChris Robinson2016-09-011-30/+12
|
* Simplify the ambisonic up-samplerChris Robinson2016-08-301-65/+99
| | | | | It still behaves the same, although now combines the separate decode+encode matrices into a transcode matrix (one per frequency band).
* Band-split the HRIRs when building the ambisonic decoder filtersChris Robinson2016-08-211-10/+10
| | | | | This allows each HRIR to contribute a frequency-dependent response, essentially acting like a dual-band decoder playing over the cube speaker array.
* Add a stand-alone upsampler for higher-order ambisonic oputputChris Robinson2016-07-301-8/+77
|
* Make a MAX_AMBI2D_COEFFS macro instead of a magic numberChris Robinson2016-07-171-4/+4
|
* Repack the ambisonic dual-band decoder matricesChris Robinson2016-07-171-94/+105
| | | | | | The decoders use a row of the HF decoder matrix followed by a row of the LF decoder matrix, for each given output channel in turn. Packing the two matrices accordingly results in less memory hopping.
* Implement a Neon-enhanced MixRowChris Robinson2016-06-011-0/+4
|
* Use a macro to specify the ambisonic periphonic channel maskChris Robinson2016-06-011-1/+1
|
* Use SSE for applying the HQ B-Format decoder matricesChris Robinson2016-05-311-27/+29
|
* Don't access the band splitter fields in the processing loopsChris Robinson2016-05-311-9/+16
| | | | | | perf shows a 5% drop in relative execution time on the alffplay example with an audio-only file (20% to 15%). Kinda figured the optimizer would handle it better, but I guess not.
* Improve radius behavior with scaling of ambisonic coefficientsChris Robinson2016-04-241-13/+13
|
* Use frequency-dependent processing for the ambisonic up-samplerChris Robinson2016-04-091-3/+37
|
* Move the aligned malloc functions to the common libChris Robinson2016-03-291-0/+1
|
* Skip unused output channels for the HQ decodeChris Robinson2016-03-281-0/+13
|
* Align the ChannelMix buffer and use it for up-samplingChris Robinson2016-03-271-9/+9
|
* Include the distance gain compensation in the decoder matrixChris Robinson2016-03-261-56/+56
|
* Add a config option for distance compensationChris Robinson2016-03-261-2/+2
|
* Add distance compensation to the HQ decoderChris Robinson2016-03-261-4/+107
| | | | | | This only compensates for timing and gain differences caused by differences in the physical speaker distances. It's not near-field compensation. This also relies on having proper distance values defined in the ambdec definition file.
* Skip height-related ambisonic channels for 2D renderingChris Robinson2016-03-251-17/+78
|
* Up-sample first-order content when using a higher order HQ decoderChris Robinson2016-03-231-0/+88
|
* Add a specific output for first-order sourcesChris Robinson2016-03-221-0/+8
|
* Simplify setting the matrix coeffsChris Robinson2016-03-221-42/+14
|
* Properly handle negative matrix values and fix decoder initializationChris Robinson2016-03-151-1/+1
|
* Add a dual-band ambisonic decoderChris Robinson2016-03-151-0/+286
This uses a virtual B-Format buffer for mixing, and then uses a dual-band decoder for improved positional quality. This currently only works with first- order output since first-order input (from the AL_EXT_BFROMAT extension) would not sound correct when fed through a second- or third-order decoder. This also does not currently implement near-field compensation since near-field rendering effects are not implemented.