aboutsummaryrefslogtreecommitdiffstats
path: root/Alc/panning.c
Commit message (Collapse)AuthorAgeFilesLines
* Avoid function calls to get the HRTF sample rate and IR sizeChris Robinson2016-07-071-2/+2
|
* Avoid using memcpy to copy a single structChris Robinson2016-07-061-4/+4
|
* Use a macro to specify the ambisonic periphonic channel maskChris Robinson2016-06-011-2/+2
|
* Recognize AUX0...AUX15 for decoder speaker labelsChris Robinson2016-05-121-3/+11
|
* Improve radius behavior with scaling of ambisonic coefficientsChris Robinson2016-04-241-5/+52
|
* Increase max output channels to 16Chris Robinson2016-04-191-11/+14
| | | | This also enables fully periphonic 3rd order HQ decoding.
* Combine two if checks into oneChris Robinson2016-04-191-5/+3
|
* Remove unneeded ChannelMaps for BFormat formatsChris Robinson2016-04-171-14/+2
|
* Avoid storing channel names for the dry bufferChris Robinson2016-04-161-22/+10
|
* Reorganize a bit of aluInitRenderer codeChris Robinson2016-04-161-46/+30
|
* Silence possible out-of-bounds warning againChris Robinson2016-04-161-1/+1
|
* More directly map coefficients for ambisonic mixing buffersChris Robinson2016-04-151-71/+95
| | | | | | Instead of looping over all the coefficients for each channel with multiplies, when we know only one will have a non-0 factor for ambisonic mixing buffers, just index the one with a non-0 factor.
* Update some commentsChris Robinson2016-04-151-3/+3
|
* Avoid mixing all coefficients together when only some are usedChris Robinson2016-04-151-34/+38
|
* Fix possible out-of-bounds warningChris Robinson2016-04-151-2/+2
|
* Avoid unnecessary loops for setting up effect slot b-format buffer mixingChris Robinson2016-04-141-12/+28
|
* Prepare the custom decoder in aluInitRendererChris Robinson2016-04-141-200/+193
|
* Move the InitRenderer method to panning.cChris Robinson2016-04-141-3/+168
|
* Split aluInitPanning into separate functions for HRTF or UHJChris Robinson2016-04-141-245/+234
|
* Allow dual-band decoders for basic renderingChris Robinson2016-03-301-8/+2
| | | | | Since the basic renderer does not do frequency-dependent processing, the high- frequency matrix is used for panning.
* Use the same option for decoder configsChris Robinson2016-03-261-1/+5
|
* Don't use custom decoder configurations with mono or stereoChris Robinson2016-03-261-0/+13
| | | | | | | | | | By default, stereo outputs using UHJ, which renders to a B-Format buffer that gets run through a UHJ encoder for output. It may also output using pair-wise panning, which pans between -30 and +30 degrees with the speakers at the two ends. In both cases, the stereo coefficients are ignored. Mono, having only one output channel, can realistically only attenuate its channel. Turning the volume up and down accomplishes the same result.
* Add a config option for distance compensationChris Robinson2016-03-261-2/+8
|
* Allow up to third-order for horizontal-only renderingChris Robinson2016-03-261-16/+26
|
* Include any first-order scaling in the FOAOut coefficientsChris Robinson2016-03-251-15/+32
|
* Skip height-related ambisonic channels for 2D renderingChris Robinson2016-03-251-2/+16
|
* Use the "decoder" config section instead of "ambisonics"Chris Robinson2016-03-251-1/+1
|
* Trace the HQ decoder orderChris Robinson2016-03-231-1/+4
|
* Simplify setting a custom channel map configurationChris Robinson2016-03-231-17/+7
|
* Up-sample first-order content when using a higher order HQ decoderChris Robinson2016-03-231-2/+0
|
* Allow second-order HQ decodingChris Robinson2016-03-231-9/+21
| | | | | | | | Could really do with some optimizations to the mixing gain calculations. For ambisonic targets, the coefficients will only have 1 non-0 entry for each output, so the double loop in unnecessarily wasteful. Similarly, most uses won't need a full height encoding either, so a horizontal-only or mixed-order target could reduce the number of channels.
* Add a specific output for first-order sourcesChris Robinson2016-03-221-0/+10
|
* Rename the BFormat channels to AuxChris Robinson2016-03-161-20/+20
|
* Add config options to enable the hq ambisonic decoderChris Robinson2016-03-161-36/+46
|
* Properly handle negative matrix values and fix decoder initializationChris Robinson2016-03-151-1/+1
|
* Replace the custom layout options with an ambdec loaderChris Robinson2016-03-151-129/+87
| | | | | The ambisonic layout options were never very good for clarity or flexibility. Hopefully using ambdec files will prove to be better.
* Add a dual-band ambisonic decoderChris Robinson2016-03-151-1/+130
| | | | | | | | | | 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.
* Use second-order coefficients for 5.1Chris Robinson2016-03-131-16/+16
| | | | | Since the panning only drives 5 speakers, it shouldn't use more than 5 ambisonic channels (9 total in second order, minus 4 for unused height).
* Generalize GetChannelIdxByNameChris Robinson2016-03-101-1/+1
|
* Keep track of the real output's channel namesChris Robinson2016-03-101-0/+3
|
* Organize the dry buffer properties into a structChris Robinson2016-03-091-20/+20
|
* Use 2-channel UHJ for stereo outputChris Robinson2016-02-261-1/+21
|
* Use an 8-channel cube for HRTF's virtual format.Chris Robinson2016-02-201-12/+39
| | | | | | There were phase issues caused by applying HRTF directly to the B-Format channels, since the HRIR delays were all averaged which removed the inter-aural time-delay, which in turn removed significant spatial information.
* Don't pass the channel count to GetBFormatHrtfCoeffsChris Robinson2016-02-091-1/+1
| | | | Since it's hard-coded anyway, there's no need to specify it.
* Rename ComputeBFormatGains to ComputeFirstOrderGainsChris Robinson2016-01-311-1/+1
|
* Mix to multichannel for effectsChris Robinson2016-01-281-2/+20
| | | | | | This mixes to a 4-channel first-order ambisonics buffer. With ACN ordering and N3D scaling, this makes it easy to remain compatible with effects that only care about mono input since channel 0 is an unattenuated mono signal.
* Avoid passing the device to SetChannelMapChris Robinson2016-01-271-24/+31
|
* Separate calculating ambisonic coefficients from the panning gainsChris Robinson2016-01-251-33/+40
|
* Use more accurate floating point literalsChris Robinson2015-11-061-34/+34
|
* Use ALuint instead of size_t for a loop iteratorChris Robinson2015-11-061-2/+3
|