Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Find a valid source buffer before updating the voice | Chris Robinson | 2016-05-09 | 1 | -2/+3 |
| | |||||
* | Improve radius behavior with scaling of ambisonic coefficients | Chris Robinson | 2016-04-24 | 1 | -5/+6 |
| | |||||
* | More directly map coefficients for ambisonic mixing buffers | Chris Robinson | 2016-04-15 | 1 | -3/+22 |
| | | | | | | 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 | 1 | -1/+1 |
| | |||||
* | Avoid unnecessary loops for setting up effect slot b-format buffer mixing | Chris Robinson | 2016-04-14 | 1 | -0/+2 |
| | |||||
* | 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 | 1 | -0/+2 |
| | |||||
* | 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 | 1 | -1/+2 |
| | | | | | | | | | | 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 the real output's left and right channels with HRTF | Chris Robinson | 2016-03-11 | 1 | -2/+2 |
| | |||||
* | Calculate HRTF stepping params right before mixing | Chris Robinson | 2016-02-14 | 1 | -7/+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 | 1 | -9/+11 |
| | |||||
* | Rename ComputeBFormatGains to ComputeFirstOrderGains | Chris Robinson | 2016-01-31 | 1 | -5/+5 |
| | |||||
* | Mix to multichannel for effects | Chris Robinson | 2016-01-28 | 1 | -4/+6 |
| | | | | | | 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. | ||||
* | Separate calculating ambisonic coefficients from the panning gains | Chris Robinson | 2016-01-25 | 1 | -14/+34 |
| | |||||
* | Use doubles for the constructed listener matrix | Chris Robinson | 2015-11-11 | 1 | -12/+37 |
| | | | | | | 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 | 1 | -4/+30 |
| | | | | | | | | 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 | 1 | -12/+1 |
| | | | | Also better handle the peaking filter gain. | ||||
* | Fix a comment | Chris Robinson | 2015-11-01 | 1 | -1/+1 |
| | |||||
* | Use one send gain per buffer channel | Chris Robinson | 2015-10-23 | 1 | -1/+1 |
| | |||||
* | Use a constant value for the post-position padding | Chris Robinson | 2015-10-15 | 1 | -2/+5 |
| | |||||
* | Store the source's previous samples with the voice | Chris Robinson | 2015-10-15 | 1 | -0/+3 |
| | | | | | | This helps avoid different results when looping is toggled within a couple samples of the loop point, or when a processed buffer is removed while the source is only a couple samples into the next buffer. | ||||
* | Replace the sinc6 resampler with sinc8, and make SSE versions | Chris Robinson | 2015-10-11 | 1 | -4/+5 |
| | |||||
* | Implement a 6-point sinc-lanczos filter | Chris Robinson | 2015-09-29 | 1 | -2/+11 |
| | |||||
* | Replace the cubic resampler with a 4-point sinc/lanczos filter | Chris Robinson | 2015-09-27 | 1 | -3/+3 |
| | |||||
* | Don't keep selecting the mixer to use | Chris Robinson | 2015-09-27 | 1 | -1/+1 |
| | |||||
* | Increase the max pitch to 255 | Chris Robinson | 2015-09-26 | 1 | -1/+1 |
| | | | | | | | Note that this is the multiple above the device sample rate, rather than the source property limit. It could theoretically be increased to 511 by testing against UINT_MAX instead of INT_MAX, since the increment and positions are using unsigned integers. I'm just being paranoid about overflows. | ||||
* | Fix updating listener params when forcing updates | Chris Robinson | 2015-09-18 | 1 | -0/+2 |
| | |||||
* | Rename F_2PI to F_TAU | Chris Robinson | 2015-09-13 | 1 | -1/+1 |
| | |||||
* | Move HRTF params and state closer together | Chris Robinson | 2015-02-09 | 1 | -3/+3 |
| | |||||
* | Add missing alignas to CubicLUT declaration | Chris Robinson | 2015-01-13 | 1 | -1/+1 |
| | |||||
* | Remove some unnecessary restrict uses | Chris Robinson | 2014-12-24 | 1 | -7/+6 |
| | |||||
* | Use aluVector and aluMatrix in a couple more places | Chris Robinson | 2014-12-16 | 1 | -1/+1 |
| | |||||
* | Add explicit matrix and vector types to operate with | Chris Robinson | 2014-12-16 | 1 | -0/+38 |
| | |||||
* | Use a lookup table to do cubic resampling | Chris Robinson | 2014-12-15 | 1 | -9/+9 |
| | |||||
* | Transpose the cubic matrix op | Chris Robinson | 2014-12-15 | 1 | -6/+6 |
| | |||||
* | Remove IrSize from DirectParams | Chris Robinson | 2014-11-29 | 1 | -1/+0 |
| | |||||
* | Move the voice's last position and gain out of the Hrtf container | Chris Robinson | 2014-11-24 | 1 | -2/+3 |
| | |||||
* | Partially revert "Use a different method for HRTF mixing" | Chris Robinson | 2014-11-23 | 1 | -1/+9 |
| | | | | | | | | | | | | The sound localization with virtual channel mixing was just too poor, so while it's more costly to do per-source HRTF mixing, it's unavoidable if you want good localization. This is only partially reverted because having the virtual channel is still beneficial, particularly with B-Format rendering and effect mixing which otherwise skip HRTF processing. As before, the number of virtual channels can potentially be customized, specifying more or less channels depending on the system's needs. | ||||
* | Rename Voice's NumChannels to OutChannels | Chris Robinson | 2014-11-22 | 1 | -1/+1 |
| | |||||
* | Store the number of output channels in the voice | Chris Robinson | 2014-11-22 | 1 | -0/+1 |
| | |||||
* | Remove an unnecessary union container | Chris Robinson | 2014-11-22 | 1 | -3/+1 |
| | |||||
* | Use a different method for HRTF mixing | Chris Robinson | 2014-11-22 | 1 | -27/+1 |
| | | | | | | | | | | | | | | | | | | | | | | | This new method mixes sources normally into a 14-channel buffer with the channels placed all around the listener. HRTF is then applied to the channels given their positions and written to a 2-channel buffer, which gets written out to the device. This method has the benefit that HRTF processing becomes more scalable. The costly HRTF filters are applied to the 14-channel buffer after the mix is done, turning it into a post-process with a fixed overhead. Mixing sources is done with normal non-HRTF methods, so increasing the number of playing sources only incurs normal mixing costs. Another benefit is that it improves B-Format playback since the soundfield gets mixed into speakers covering all three dimensions, which then get filtered based on their locations. The main downside to this is that the spatial resolution of the HRTF dataset does not play a big role anymore. However, the hope is that with ambisonics- based panning, the perceptual position of panned sounds will still be good. It is also an option to increase the number of virtual channels for systems that can handle it, or maybe even decrease it for weaker systems. | ||||
* | Use a separate macro for the max output channel count | Chris Robinson | 2014-11-07 | 1 | -5/+5 |
| | |||||
* | Use a method to set omni-directional channel gains | Chris Robinson | 2014-11-04 | 1 | -14/+7 |
| | |||||
* | Support B-Format source rotation with AL_ORIENTATION | Chris Robinson | 2014-10-31 | 1 | -3/+4 |
| | |||||
* | Add preliminary AL_EXT_BFORMAT support | Chris Robinson | 2014-10-31 | 1 | -0/+8 |
| | | | | | Currently missing the AL_ORIENTATION source property. Gain stepping also does not work. | ||||
* | Make ComputeAngleGains use ComputeDirectionalGains | Chris Robinson | 2014-10-02 | 1 | -5/+5 |
| | |||||
* | Don't use ComputeAngleGains for SetGains | Chris Robinson | 2014-10-02 | 1 | -1/+5 |
| |