Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Remove the SAFE_CONST macro | Chris Robinson | 2018-01-14 | 1 | -2/+2 |
| | | | | | Seems compilers are now allowing a pointer-to-type-array to implicitly convert to pointer-to-const-type-array. | ||||
* | Move the config function declarations to their own header | Chris Robinson | 2018-01-11 | 1 | -0/+1 |
| | | | | And rename alcConfig.c to alconfig.c for consistency. | ||||
* | Move the CPU capability flags to a separate header | Chris Robinson | 2018-01-11 | 1 | -0/+1 |
| | |||||
* | Avoid using macros to access anonymous structures | Chris Robinson | 2018-01-11 | 1 | -2/+2 |
| | |||||
* | Make a function pointer static | Chris Robinson | 2018-01-10 | 1 | -1/+1 |
| | |||||
* | Use one macro to handle both resample padding sizes | Chris Robinson | 2018-01-09 | 1 | -9/+9 |
| | |||||
* | Rename the device's temp buffer storage to be more generic | Chris Robinson | 2018-01-09 | 1 | -5/+10 |
| | |||||
* | Replace the sinc4 resampler with cubic | Chris Robinson | 2018-01-07 | 1 | -16/+4 |
| | | | | | | | Turns out the C version of the cubic resampler is just slightly faster than even the SSE3 version of the FIR4 resampler. This is likely due to not using a 64KB random-access lookup table along with unaligned loads, both offseting the gains from SSE. | ||||
* | Test the correct offset for the loop start range | Chris Robinson | 2018-01-04 | 1 | -1/+1 |
| | |||||
* | Use the correct start point when looping | Chris Robinson | 2018-01-04 | 1 | -2/+2 |
| | |||||
* | Reset CompLen when loading loop repeats in the mixer | Chris Robinson | 2018-01-02 | 1 | -0/+1 |
| | |||||
* | Update resampler padding checks | Chris Robinson | 2017-12-29 | 1 | -3/+3 |
| | |||||
* | Make MixSamples non-static global | Chris Robinson | 2017-12-17 | 1 | -2/+2 |
| | |||||
* | Mix multiple buffers in each buffer list item | Chris Robinson | 2017-12-16 | 1 | -64/+112 |
| | | | | Basically now this just relies on being able to specify composited buffers. | ||||
* | Pre-clear the source temp buffer and accumulate into it | Chris Robinson | 2017-12-16 | 1 | -18/+7 |
| | |||||
* | Rename SrcDataSize to be less confusing | Chris Robinson | 2017-12-16 | 1 | -25/+23 |
| | |||||
* | Allow storing multiple buffers in a ALbufferlistitem | Chris Robinson | 2017-12-15 | 1 | -3/+7 |
| | | | | | | | | | | | | | | | This will be to allow buffer layering, multiple buffers of the same format and sample rate that are mixed together prior to resampling, filtering, and panning. This will allow composing sounds from individual components that can be swapped around on different invocations (e.g. layer SoundA and SoundB on one instance and SoundA and SoundC on a different instance for a slightly different sound, then just SoundA for a third instance, and so on). The longest buffer within the list item determines the length of the list item. More work needs to be done to fully support it, namely the ability to specity multiple buffers to layer for static and streaming sources. Also the behavior of loop points for layered static sources should be worked out. Should also consider allowing each layer to have a sample offset. | ||||
* | Add a higher quality bsinc resampler using 24 sample points | Chris Robinson | 2017-08-27 | 1 | -0/+8 |
| | | | | | | | This improves the transition width, allowing more of the higher frequencies remain audible. It would be preferrable to have an upper limit of 32 points instead of 48, to reduce the overall table size and the CPU cost for down- sampling. | ||||
* | Rename the bsinc resampler to bsinc12 | Chris Robinson | 2017-08-25 | 1 | -2/+2 |
| | |||||
* | Store the sinc4 table in the filter state | Chris Robinson | 2017-08-16 | 1 | -14/+14 |
| | | | | Also rename the resampler functions to remove the unnecessary '32' token. | ||||
* | Check the source type once when mixing | Chris Robinson | 2017-08-14 | 1 | -2/+4 |
| | |||||
* | Add restrict to a few more parameters | Chris Robinson | 2017-08-10 | 1 | -2/+4 |
| | |||||
* | Use a macro to apply NFC filtered mixes instead of a loop | Chris Robinson | 2017-06-26 | 1 | -18/+16 |
| | |||||
* | Reduce the amount of variables that hold the same value | Chris Robinson | 2017-05-21 | 1 | -2/+2 |
| | |||||
* | Increase the HRTF transition to 128 samples | Chris Robinson | 2017-05-05 | 1 | -2/+2 |
| | |||||
* | Add a mixing function to blend HRIRs | Chris Robinson | 2017-05-03 | 1 | -20/+20 |
| | | | | | | This is a bit more efficient than calling the normal HRTF mixing function twice, and helps solve the problem of the values generated from convolution not being consistent with the new HRIR. | ||||
* | Remove a duplicate check | Chris Robinson | 2017-05-02 | 1 | -1/+1 |
| | |||||
* | Rename VOICE_IS_HRTF to VOICE_HAS_HRTF | Chris Robinson | 2017-05-02 | 1 | -1/+1 |
| | |||||
* | Rename 'moving' flag to 'fading' | Chris Robinson | 2017-05-02 | 1 | -2/+2 |
| | |||||
* | Fade HRTF coefficients over 64 samples at most | Chris Robinson | 2017-04-28 | 1 | -40/+69 |
| | | | | | | This greatly improves HRTF performance since the dual-mix only applies to the 64-sample coefficient transition. So rather than doubling the full mix, it only doubles 64 samples out of the full mix. | ||||
* | Skip mixing the fade out step when starting silent | Chris Robinson | 2017-04-25 | 1 | -12/+19 |
| | | | | | Unfortunately it can't skip mixing the fade in when going to silence because the history needs to be up to date. | ||||
* | Store the resampler as part of the source | Chris Robinson | 2017-04-21 | 1 | -3/+1 |
| | |||||
* | Make the default resampler a variable | Chris Robinson | 2017-04-20 | 1 | -8/+9 |
| | |||||
* | Try NEON mixers before SSE | Chris Robinson | 2017-04-20 | 1 | -9/+8 |
| | |||||
* | Make the buffer list next pointer atomic | Chris Robinson | 2017-04-19 | 1 | -3/+5 |
| | |||||
* | Store the source queue head in the voice to signify looping | Chris Robinson | 2017-04-18 | 1 | -12/+9 |
| | | | | | This removes the need to access a couple more source fields in the mixer, and also makes the looping and queue fields non-atomic. | ||||
* | Add a sample converter | Chris Robinson | 2017-04-10 | 1 | -10/+1 |
| | | | | | | | | | | This is intended to do conversions for interleaved samples, and supports changing from one DevFmtType to another as well as resampling. It does not handle remixing channels. The mixer is more optimized to use the resampling functions directly. However, this should prove useful for recording with certain backends that won't do the conversion themselves. | ||||
* | Handle the source offset fraction as an ALsizei | Chris Robinson | 2017-04-08 | 1 | -2/+2 |
| | |||||
* | Pre-compute the sinc4 resampler coefficient table | Chris Robinson | 2017-04-08 | 1 | -92/+0 |
| | |||||
* | Remove another reference to the sinc8 resampler | Chris Robinson | 2017-04-07 | 1 | -1/+1 |
| | |||||
* | Convert integer samples to float using a power-of-2 divisor | Chris Robinson | 2017-03-31 | 1 | -2/+2 |
| | | | | | | | This should cut down on unnecessary quantization noise (however minor) for 8- and 16-bit samples. Unfortunately a power-of-2 multiple can't be used as easily for converting float samples to integer, due to integer types having a non- power-of-2 maximum amplitude (it'd require more per-sample clamping). | ||||
* | Fix HRTF interpolated gain calculation | Chris Robinson | 2017-03-26 | 1 | -2/+2 |
| | |||||
* | Use a loop to apply NFC filters | Chris Robinson | 2017-03-25 | 1 | -30/+15 |
| | |||||
* | Make DataPosInt an ALsizei | Chris Robinson | 2017-03-20 | 1 | -15/+16 |
| | |||||
* | Use proper bools for boolean states | Chris Robinson | 2017-03-20 | 1 | -12/+11 |
| | |||||
* | Check usability of MixHrtf_Neon before MixHrtf_SSE | Chris Robinson | 2017-03-14 | 1 | -4/+4 |
| | |||||
* | Store the HRIR coeff pointer and delays directly in MixHrtfParams | Chris Robinson | 2017-03-12 | 1 | -4/+10 |
| | |||||
* | Rework HRTF coefficient fading | Chris Robinson | 2017-03-11 | 1 | -35/+52 |
| | | | | | | | | | | | | | | | This improves fading between HRIRs as sources pan around. In particular, it improves the issue with individual coefficients having various rounding errors in the stepping values, as well as issues with interpolating delay values. It does this by doing two mixing passes for each source. First using the last coefficients that fade to silence, and then again using the new coefficients that fade from silence. When added together, it creates a linear fade from one to the other. Additionally, the gain is applied separately so the individual coefficients don't step with rounding errors. Although this does increase CPU cost since it's doing two mixes per source, each mix is a bit cheaper now since the stepping is simplified to a single gain value, and the overall quality is improved. | ||||
* | Make the voice's 'moving' state a bitflag | Chris Robinson | 2017-03-11 | 1 | -2/+2 |
| | |||||
* | Dynamically allocate the device's HRTF state | Chris Robinson | 2017-03-10 | 1 | -1/+1 |
| |