aboutsummaryrefslogtreecommitdiffstats
path: root/Alc/bformatdec.c
Commit message (Collapse)AuthorAgeFilesLines
* Remove the SAFE_CONST macroChris Robinson2018-01-141-8/+4
| | | | | Seems compilers are now allowing a pointer-to-type-array to implicitly convert to pointer-to-const-type-array.
* Replace some freq_mult variable names with f0normChris Robinson2018-01-131-4/+4
| | | | | | The latter is a bit more descriptive as f0 is often used to denote the reference frequency of a filter, so f0norm indicates the normalized reference frequency (ref_freq / sample_rate).
* Fix up some types for MSVCChris Robinson2018-01-111-4/+4
|
* Avoid using macros to access anonymous structuresChris Robinson2018-01-111-1/+1
|
* Add an all-pass filter that replicates the band splitter's phase shiftChris Robinson2017-07-191-0/+39
|
* Remove an unneeded functionChris Robinson2017-02-281-22/+6
|
* Remove an unused functionChris Robinson2017-02-231-5/+0
|
* Avoid duplicating device buffer layout logicChris Robinson2017-02-201-0/+1
|
* Apply distance compensation when writing to the outputChris Robinson2017-02-191-103/+12
|
* Don't use periphonic FOA when the HOA decoder is not periphonicChris Robinson2017-02-191-13/+9
|
* Replace more ALuint with ALsizeiChris Robinson2017-01-291-10/+10
|
* Improve the ambisonic upscaling methodsChris Robinson2017-01-241-100/+116
| | | | | | | | This now takes advantage of the differences seen in generated decoder matrices for first-order compared to second- and third-order, such that with the appropriate frequency-dependent scaling applied to first-order content, the result is identical with a higher-order decoder matrix compared to a first- order matrix for the same layout.
* Small update for the "virtual" Ambi2DDecoder coefficientsChris Robinson2017-01-171-5/+5
|
* More ALsizei, with the B-Format decoderChris Robinson2017-01-161-13/+13
|
* Use ALsizei in a few more placesChris Robinson2017-01-161-2/+2
|
* Use a function to generate the up-sampler transcode matrixChris Robinson2016-11-241-54/+56
|
* Make some pointer-to-array parameters constChris Robinson2016-10-041-21/+14
|
* 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.