aboutsummaryrefslogtreecommitdiffstats
path: root/Alc/effects
Commit message (Collapse)AuthorAgeFilesLines
* 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
|
* 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-171-2/+0
|
* Update flanger with the same changes as chorusChris Robinson2017-12-151-44/+55
|
* Use a separate LFO offset in the chorus effectChris Robinson2017-12-151-10/+19
| | | | | Given that the LFO range is not a power-of-two, it won't correctly wrap on overflow.
* Use linear interpolation for the chorus delay outputChris Robinson2017-12-151-37/+39
|
* Add an option to ignore the app's speed of sound for reverb decayChris Robinson2017-09-221-2/+2
|
* Use the app-specified speed of sound for reverb decayChris Robinson2017-09-211-4/+7
| | | | | Specifically, the initial reverb decay as determined by the source distance, and the reverb decayhf limit from air absorption.
* Pass the context to the auxiliary effect update methodChris Robinson2017-09-2110-41/+50
|
* Use sqrtf for single-precision square rootsChris Robinson2017-06-291-1/+1
|
* Remove the fastf2u conversion functionChris Robinson2017-06-273-9/+9
|
* Calculate chorus and flanger mod delays separately from feedbackChris Robinson2017-06-072-135/+118
|
* Make the late lines' delay the delay average for modulationChris Robinson2017-06-071-59/+36
| | | | | | | | | Similar to the recent chorus and flanger changes, the modulation delay now swings between -n to +n, where n is less than the delay length. This brings up a slight issue with the linear interpolation, as modff doesn't produce the correct fraction value for interpolation (it's inverted, with 0 being closer to the next sample and 1 being closer to the base). So it's using nearest interpolation for now.
* Fix handling chorus and flanger LFO displacement offsetChris Robinson2017-05-262-2/+8
| | | | | The phase offset is modulo-wrapped rather than masked, so it's best to avoid negative offsets.
* Properly handle the chorus and flanger LFOsChris Robinson2017-05-262-24/+30
| | | | | The effects' specified delay is the average delay time, meaning the delay offset should move between -n and +n relative to the delay, where n <= delay.
* Add a method to copy a filter's coefficientsChris Robinson2017-05-212-39/+6
|
* Avoid unnecessary doublesChris Robinson2017-05-211-2/+2
|
* Use a macro to specify the decay target gainChris Robinson2017-05-211-2/+2
|
* Reduce the main reverb filter gain limit to match the restChris Robinson2017-05-161-4/+4
|
* Make reverb delay line structs use interleaved floatsChris Robinson2017-05-151-68/+73
|
* Make the reverb's early and late feedback lines interleavedChris Robinson2017-05-141-42/+47
|
* Update a couple comments about the reverb modulationChris Robinson2017-05-131-12/+13
|
* Replace 4 separate all-passes with one vector all-passChris Robinson2017-05-131-53/+47
| | | | | | Each 4 related all-passes now share a structure with one delay line, which uses an interleaved sample history. Also fixes some potential rounding problems for delay lines with interleaved samples.
* Apply reverb modulation to the late feedback linesChris Robinson2017-05-121-104/+71
| | | | | | | | This seems to be more in-line with the intended behavior, to allow build-up and overlap within the reverb decay, rather than a pitch-shift on input. Unfortunately there's no readily available implementation of this reverb model that includes modulation to compare with, so a low depth coefficient is used to keep it very subtle.
* Remove the 0.5 gain on the reverb outputChris Robinson2017-05-111-6/+2
| | | | | Turns out to be unnecessary, as it reduced the volume below what other reverb implementations provide with the same presets.
* Restore the previous reverb B2A and A2B matricesChris Robinson2017-05-111-12/+12
| | | | Also, untranspose the A2B matrix.
* Update reverb conversion matrices and output gainChris Robinson2017-05-081-10/+12
|
* Add a slight bit of attenuation to the reverb outputChris Robinson2017-05-021-2/+4
|
* Change some ALuint parameters to ALsizeiChris Robinson2017-05-0210-75/+74
|
* Don't do more reverb samples than there are to fade.Chris Robinson2017-04-281-2/+6
| | | | This avoids having to clamp the fade value when incrementing it.
* Combine mostly duplicate functionsChris Robinson2017-04-271-121/+50
|
* Properly update the delay line offsets when fading is doneChris Robinson2017-04-271-28/+44
|
* Reverb code updateChris Robinson2017-04-261-824/+1213
| | | | | | | | | | | | | | This update modifies the reverb in numerous ways. The 3-series, 4-parallel all-pass is replaced with a Gerzon vector all-pass. The vector all-pass is also applied to the early reflections, to help with the initial diffusion in the late reverb. The late reverb filter and feedback attenuation has been replaced with a dual first-order equalization filter, which controls the low and high frequencies with individual low-pass/high-shelf and high-pass/low-shelf filters with gain control. Additionally, delay lines now have the ability to blend the output between two offsets, to help smooth out the transition for when the delay changes (without such, it could result in undesirable clicks and pops).
* Use ALsizei for more index lookupsChris Robinson2017-03-241-15/+15
|
* Properly calculate the echo dampingChris Robinson2017-03-241-1/+1
|