aboutsummaryrefslogtreecommitdiffstats
path: root/alc/effects
Commit message (Collapse)AuthorAgeFilesLines
* Avoid an unnecessary multiplierChris Robinson2020-11-091-15/+12
|
* Fix pitch shifter bin countChris Robinson2020-11-091-1/+1
|
* Simplify some pitch shifter scaling calculationsChris Robinson2020-11-081-8/+7
|
* Use a separate structure for the active effect slot propertiesChris Robinson2020-11-0715-65/+109
|
* Replace the mixer fraction macros with constexpr variablesChris Robinson2020-10-213-14/+14
|
* Replace some more macros with constexpr variablesChris Robinson2020-10-213-6/+6
|
* Support all buffer layouts for convolutionChris Robinson2020-09-221-22/+99
|
* Don't use direct channels with convolutionChris Robinson2020-09-181-19/+5
| | | | | It may come back as an effect property, but it's probably better to not try forcing it by default.
* Allow higher-order B-Format buffers for convolutionChris Robinson2020-09-181-6/+5
| | | | | Only the first-order channels will be used, but higher-order buffers will be allowed.
* Avoid extraneous buffers and buffer clearsChris Robinson2020-09-171-9/+9
|
* Use inline wrappers to clarify forward/inverse FFTsChris Robinson2020-09-132-5/+5
|
* Don't assume iterators are pointersChris Robinson2020-09-091-2/+2
|
* Apply the first convolution segment in the time domainChris Robinson2020-09-091-22/+86
| | | | | | | This avoids an inherent delay from the effect, at the cost of higher CPU use. Having a customizable user-specified delay (with said user ensuring a properly trimmed impulse response) could help alleviate the cost since once the delay exceeds the segment size, the initial FIR filter could be skipped.
* Don't leave the negative frequencies as 0 for inverse FFTChris Robinson2020-09-082-5/+10
|
* Avoid an extraneous ConvolutionFilter sub-objectChris Robinson2020-09-061-112/+90
|
* Rework effect slot buffer settingChris Robinson2020-09-052-27/+14
| | | | | | | | Rather than creating an effect-specific buffer that gets passed along as a property, the buffer is set the effect state when the effect state is created, the device is updated, or the buffer is changed. The buffer can only be set while the effect slot isn't playing, so it won't be changed or updated while the mixer is processing the effect state.
* Avoid confusing */*...*/ syntaxChris Robinson2020-09-051-3/+3
| | | | MSVC warns about */ being outside of a comment.
* Move more processing to the ConvolutionFilter structChris Robinson2020-08-311-108/+127
|
* Remove a couple unnecessary pointersChris Robinson2020-08-301-15/+8
|
* Dynamically allocate the convolution channel mixing dataChris Robinson2020-08-301-46/+46
|
* Reorganize some convolution fieldsChris Robinson2020-08-301-21/+18
|
* Calculate the correct number of convolution segmentsChris Robinson2020-08-281-1/+1
|
* Limit convolution processing to the output ambisonic orderChris Robinson2020-08-281-2/+3
|
* Don't dereference a null convolution filterChris Robinson2020-08-281-5/+7
|
* Support B-Format impulse responses for convolutionChris Robinson2020-08-281-17/+107
|
* Pass a BufferStorage to EffectState::createBufferChris Robinson2020-08-282-22/+23
|
* Rename buffer_formats to buffer_storageChris Robinson2020-08-271-1/+1
|
* Handle 0-length convolution buffersChris Robinson2020-08-271-0/+3
|
* De-duplicate LoadSampleArray and FmtTypeTraitsChris Robinson2020-08-261-129/+8
|
* Avoid copying the convolution filter history to shift itChris Robinson2020-08-251-10/+18
| | | | | Instead, the current/head/newest segment is tracked, and decremented with each process to overwrite the oldest.
* Initial implementation of the convolution effectChris Robinson2020-08-251-9/+400
| | | | | Currently limited to mono and stereo impulse responses, and stereo IRs try to use direct/real output rather than panning.
* Stub out a convolution effect stateChris Robinson2020-08-242-1/+157
|
* Add a method for effects to create persistent buffer dataChris Robinson2020-08-241-0/+13
|
* Use dual-biquad processing for the equalizer effectChris Robinson2020-05-261-9/+7
|
* Round the pitch shifter frequency bin targetsChris Robinson2020-05-221-1/+1
|
* Rename applyHfScale to processHfScaleChris Robinson2020-05-191-2/+2
|
* Revert "Fix the FFT half point for the shifter effects"Chris Robinson2020-05-091-6/+6
| | | | This reverts commit 12bb5a47cda0ef6ec1ced73ccf5d267a71f9e710.
* Fix the FFT half point for the shifter effectsChris Robinson2020-05-081-6/+6
|
* Slightly improve the Hann windowsChris Robinson2020-05-082-4/+4
| | | | | | There's no need to include the 0 terms on the ends since they'll never contribute a sample. So extend the width to have the 0 terms just outside the window where it wouldn't contribute anyway.
* Clear buffers right before useChris Robinson2020-05-031-3/+2
|
* Don't put the LFO on the stackChris Robinson2020-05-031-6/+6
|
* Use a helper to set an identity ambisonic panChris Robinson2020-05-035-25/+15
|
* Minor cleanup of reverb codeChris Robinson2020-04-241-16/+17
|
* Add a method to process two biquads at onceChris Robinson2020-04-231-4/+1
|
* Avoid an unnecessary out parameterChris Robinson2020-04-216-30/+24
|
* Precalculate some valuesChris Robinson2020-04-161-11/+17
| | | | | MSVC isn't as willing to precompute sqrt and log10 results from known input values.
* Simplify some reverb update codeChris Robinson2020-04-161-49/+36
|
* Remove another unnecessary return valueChris Robinson2020-04-1614-62/+34
|
* Remove an always-true return valueChris Robinson2020-04-161-8/+5
|
* Get rid of the specialized MixRow_ methodsChris Robinson2020-04-161-18/+41
|