aboutsummaryrefslogtreecommitdiffstats
path: root/Alc
Commit message (Collapse)AuthorAgeFilesLines
* Move the polymorphic/inheritance macros to a separate headerChris Robinson2018-01-111-0/+108
|
* Reorder some loops in the equalizer and use MixSamplesChris Robinson2018-01-111-61/+43
|
* Use MixSamples for the dedicated and ring modulator effect outputChris Robinson2018-01-112-57/+40
|
* Apply the distortion gain to the mixing gainsChris Robinson2018-01-111-6/+3
|
* Move some HRTF structures to hrtf.hChris Robinson2018-01-111-0/+31
|
* Avoid using macros to access anonymous structuresChris Robinson2018-01-1113-46/+52
|
* Don't return whether the bsinc filter cuts or notChris Robinson2018-01-101-22/+8
|
* Make a function pointer staticChris Robinson2018-01-101-1/+1
|
* Use one macro to handle both resample padding sizesChris Robinson2018-01-094-22/+22
|
* Combine the chorus and flanger processing functionsChris Robinson2018-01-092-436/+164
| | | | | | | Given that they're nearly identical, it should be relatively simple to use the same effect state to process either of them, similar to the reverbs. The big differences seem to be the delay range (much shorter with flanger) and the defaults.
* Rename the device's temp buffer storage to be more genericChris Robinson2018-01-092-7/+11
|
* Remove standard reverb specific processing functionsChris Robinson2018-01-072-116/+35
|
* Move the UNEXPECTED macro to the main header and rename itChris Robinson2018-01-072-7/+2
|
* Ensure the chorus delay and depth leave enough padding for resamplingChris Robinson2018-01-072-14/+26
| | | | Also use cubic resampling for the modulated tap. Applies to flanger too.
* Use a separate function to get the cubic valueChris Robinson2018-01-072-9/+2
|
* Remove the sinc4 tableChris Robinson2018-01-071-5/+0
|
* Replace the sinc4 resampler with cubicChris Robinson2018-01-077-290/+21
| | | | | | | 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 rangeChris Robinson2018-01-041-1/+1
|
* Use the correct start point when loopingChris Robinson2018-01-041-2/+2
|
* Use separate outputs for the vector reverse and scatter functionsChris Robinson2018-01-041-29/+23
|
* Avoid the modulated output tap for late reverbChris Robinson2018-01-041-28/+14
| | | | | | And fix the output filtering. The modulation code is still there since it's (probably) technically correct, but the interaction with the feedback loop and filtering on the output caused improper behavior which needs to be sorted out.
* Don't offset the reverb modulation sinusChris Robinson2018-01-021-1/+1
|
* Use a float literal for float mathChris Robinson2018-01-021-2/+2
|
* Reset CompLen when loading loop repeats in the mixerChris Robinson2018-01-021-0/+1
|
* Avoid dereferencing a NULL pointerChris Robinson2017-12-311-1/+2
| | | | | | Even though it's taking the address of a member, it's still technically a derefernce and thus undefined behavior. sizeof doesn't "execute" the expression, so derefering in it instead is fine.
* Update resampler padding checksChris Robinson2017-12-291-3/+3
|
* Fix up a commentChris Robinson2017-12-241-7/+5
|
* Don't make a pass-through macro for FadedDelayLineOutChris Robinson2017-12-241-8/+7
|
* Use linear interpolation for reverb modulationChris Robinson2017-12-241-76/+130
| | | | | | The core LateReverb_* functions are explicitly written out now, since the tapping and blending done by the Faded version is a bit more complex and it's not so easy to ensure proper optimizing on the Unfaded version.
* Don't offset the chorus/flanger delay and LFOChris Robinson2017-12-242-36/+22
| | | | | The delay being added to the scaled LFO will ensure a proper positive result regardless.
* Fade between depths in the reverb modulatorChris Robinson2017-12-241-48/+26
|
* Use a separate unmodulated feedback tap for reverbChris Robinson2017-12-241-18/+20
|
* Clarify some reverb valuesChris Robinson2017-12-231-7/+6
|
* Reorder some global variablesChris Robinson2017-12-231-188/+188
|
* Cleanup reverb modulation scalingChris Robinson2017-12-231-14/+17
|
* Add missing integer queriesChris Robinson2017-12-211-23/+65
|
* Fix the lfo_offset for a 0-rate flangerChris Robinson2017-12-191-1/+1
|
* Use MixSamples for the echo outputChris Robinson2017-12-191-30/+20
|
* Update the chorus and flanger state struct less oftenChris Robinson2017-12-192-8/+8
|
* Make the echo effect only apply feedback to repeated samplesChris Robinson2017-12-191-11/+16
|
* Fade gains in the chorus and flanger outputChris Robinson2017-12-192-16/+20
|
* Use a single delay line for chorus feedback on a fixed tapChris Robinson2017-12-182-92/+118
| | | | | | The outputs themselves use a variale-delay tap, but using a separate fixed- delay tap on the feedback helps improve the perceived "wobble" with sustained notes. This also applies to the flanger effect.
* Apply chorus and flanger feedback on the tapped re-feedChris Robinson2017-12-172-6/+6
|
* Use the selected mixer for chorus and flanger outputChris Robinson2017-12-172-50/+22
|
* Make MixSamples non-static globalChris Robinson2017-12-172-4/+2
|
* Fix some types to make MSVC happyChris Robinson2017-12-172-6/+6
|
* Mix multiple buffers in each buffer list itemChris Robinson2017-12-161-64/+112
| | | | Basically now this just relies on being able to specify composited buffers.
* Pre-clear the source temp buffer and accumulate into itChris Robinson2017-12-161-18/+7
|
* Rename SrcDataSize to be less confusingChris Robinson2017-12-161-25/+23
|
* Allow storing multiple buffers in a ALbufferlistitemChris Robinson2017-12-152-4/+8
| | | | | | | | | | | | | | | 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.