Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Store more "active" listener and context properties separately | Chris Robinson | 2016-05-09 | 1 | -0/+6 |
| | | | | | This helps ensure async listener/context property changes affect all playing sources at the same time. | ||||
* | Start AL_SOFT_buffer_samples2 as a replacement for AL_SOFT_buffer_samples | Chris Robinson | 2016-04-25 | 3 | -17/+93 |
| | |||||
* | Remove unnecessary code for the now-unused write offset | Chris Robinson | 2016-04-25 | 1 | -53/+17 |
| | |||||
* | Add support for AL_EXT_SOURCE_RADIUS | Chris Robinson | 2016-04-25 | 1 | -6/+27 |
| | |||||
* | Drop support for AL_SOFT_buffer_samples and AL_SOFT_buffer_sub_data | Chris Robinson | 2016-04-24 | 1 | -49/+0 |
| | | | | | | Unfortunately they conflict with AL_EXT_SOURCE_RADIUS, as AL_SOURCE_RADIUS and AL_BYTE_RW_OFFSETS_SOFT share the same source property value. A replacement for AL_SOFT_buffer_samples will eventually be made. | ||||
* | Improve radius behavior with scaling of ambisonic coefficients | Chris Robinson | 2016-04-24 | 1 | -5/+6 |
| | |||||
* | Increase max output channels to 16 | Chris Robinson | 2016-04-19 | 1 | -1/+8 |
| | | | | This also enables fully periphonic 3rd order HQ decoding. | ||||
* | Avoid storing channel names for the dry buffer | Chris Robinson | 2016-04-16 | 1 | -2/+0 |
| | |||||
* | More directly map coefficients for ambisonic mixing buffers | Chris Robinson | 2016-04-15 | 2 | -7/+34 |
| | | | | | | 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 comments | Chris Robinson | 2016-04-15 | 1 | -4/+5 |
| | |||||
* | Avoid mixing all coefficients together when only some are used | Chris Robinson | 2016-04-15 | 2 | -1/+5 |
| | |||||
* | Shorten VECTOR_ITER_ macros to VECTOR_ | Chris Robinson | 2016-04-15 | 1 | -3/+3 |
| | |||||
* | Update a comment | Chris Robinson | 2016-04-15 | 1 | -2/+2 |
| | |||||
* | Avoid unnecessary loops for setting up effect slot b-format buffer mixing | Chris Robinson | 2016-04-14 | 3 | -1/+7 |
| | |||||
* | Move the InitRenderer method to panning.c | Chris Robinson | 2016-04-14 | 1 | -3/+13 |
| | |||||
* | Split aluInitPanning into separate functions for HRTF or UHJ | Chris Robinson | 2016-04-14 | 2 | -3/+7 |
| | |||||
* | Remove the old ringbuffer implementation | Chris Robinson | 2016-03-30 | 1 | -7/+0 |
| | |||||
* | Move the aligned malloc functions to the common lib | Chris Robinson | 2016-03-29 | 4 | -5/+6 |
| | |||||
* | Include any first-order scaling in the FOAOut coefficients | Chris Robinson | 2016-03-25 | 1 | -2/+0 |
| | |||||
* | Implement AL_EXT_STEREO_ANGLES support | Chris Robinson | 2016-03-25 | 2 | -0/+41 |
| | |||||
* | Allow second-order HQ decoding | Chris Robinson | 2016-03-23 | 1 | -1/+6 |
| | | | | | | | | 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 sources | Chris Robinson | 2016-03-22 | 1 | -0/+9 |
| | |||||
* | Store the effect's output buffer in the effect state | Chris Robinson | 2016-03-17 | 2 | -0/+5 |
| | |||||
* | Rename the BFormat channels to Aux | Chris Robinson | 2016-03-16 | 1 | -4/+4 |
| | |||||
* | Add config options to enable the hq ambisonic decoder | Chris Robinson | 2016-03-16 | 1 | -2/+1 |
| | |||||
* | Add a dual-band ambisonic decoder | Chris Robinson | 2016-03-15 | 2 | -1/+5 |
| | | | | | | | | | | 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. | ||||
* | Add a loader for ambdec files | Chris Robinson | 2016-03-14 | 1 | -1/+2 |
| | |||||
* | Use the real output's left and right channels with HRTF | Chris Robinson | 2016-03-11 | 1 | -2/+2 |
| | |||||
* | Generalize GetChannelIdxByName | Chris Robinson | 2016-03-10 | 1 | -6/+6 |
| | |||||
* | Keep track of the real output's channel names | Chris Robinson | 2016-03-10 | 1 | -0/+2 |
| | |||||
* | Organize the dry buffer properties into a struct | Chris Robinson | 2016-03-09 | 1 | -19/+25 |
| | |||||
* | Track the virtual and real output buffers ecplicitly | Chris Robinson | 2016-03-09 | 1 | -1/+12 |
| | |||||
* | Add an option for pair-wise stereo panning | Chris Robinson | 2016-02-26 | 1 | -5/+7 |
| | |||||
* | Use 2-channel UHJ for stereo output | Chris Robinson | 2016-02-26 | 1 | -0/+3 |
| | |||||
* | Remove an unused function | Chris Robinson | 2016-02-23 | 1 | -2/+0 |
| | |||||
* | Use an 8-channel cube for HRTF's virtual format. | Chris Robinson | 2016-02-20 | 1 | -0/+9 |
| | | | | | | 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. | ||||
* | Calculate HRTF stepping params right before mixing | Chris Robinson | 2016-02-14 | 3 | -10/+11 |
| | | | | | This means we track the current params and the target params, rather than the target params and the stepping. This closer matches the non-HRTF mixers. | ||||
* | Calculate channel gain stepping just before mixing | Chris Robinson | 2016-02-14 | 3 | -16/+16 |
| | |||||
* | Rename ComputeBFormatGains to ComputeFirstOrderGains | Chris Robinson | 2016-01-31 | 1 | -5/+5 |
| | |||||
* | Make the source's buffer queue a singly-linked list | Chris Robinson | 2016-01-31 | 2 | -31/+27 |
| | |||||
* | Mix to multichannel for effects | Chris Robinson | 2016-01-28 | 3 | -6/+25 |
| | | | | | | 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. | ||||
* | Pass a pointer to the input samples array for effect processing | Chris Robinson | 2016-01-27 | 1 | -2/+2 |
| | |||||
* | Separate calculating ambisonic coefficients from the panning gains | Chris Robinson | 2016-01-25 | 2 | -16/+36 |
| | |||||
* | Move a couple extern inline declarations to the others | Chris Robinson | 2016-01-23 | 1 | -3/+2 |
| | |||||
* | Reorder filterstate properties | Chris Robinson | 2016-01-23 | 2 | -49/+51 |
| | |||||
* | Inline a couple filterstate methods | Chris Robinson | 2016-01-23 | 2 | -27/+27 |
| | |||||
* | Use doubles for the constructed listener matrix | Chris Robinson | 2015-11-11 | 2 | -14/+39 |
| | | | | | | This helps the stability of transforms to local space for sources that are at or near the listener. With a single-precision matrix, even FLT_EPSILON might not be enough to detect matching positions. | ||||
* | Implement a band-limited sinc resampler | Chris Robinson | 2015-11-05 | 2 | -4/+32 |
| | | | | | | | | This is essentially a 12-point sinc resampler, unless it's resampling to a rate higher than the output, at which point it will vary between 12 and 24 points and do anti-aliasing to avoid/reduce frequencies going over nyquist. Code provided by Christopher Fitzgerald. | ||||
* | Pass in the Q parameter for setting the filter parameters | Chris Robinson | 2015-11-01 | 3 | -27/+41 |
| | | | | Also better handle the peaking filter gain. | ||||
* | Remove an unused struct field | Chris Robinson | 2015-11-01 | 1 | -1/+0 |
| |