aboutsummaryrefslogtreecommitdiffstats
path: root/alc/effects/convolution.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Rework effect property handlingChris Robinson2023-12-241-5/+4
| | | | To nake EffectProps a variant instead of a union, and avoid manual vtables.
* Remove DEF_NEWDELChris Robinson2023-12-161-2/+0
| | | | | C++17 provides alignment-aware allocators for us, so we don't need to use our own to make sure classes/structs are properly aligned.
* Finish cleanup for effectsChris Robinson2023-12-111-54/+61
|
* Much more clang-tidy cleanupChris Robinson2023-12-101-1/+1
|
* Be less messy with PFFFTChris Robinson2023-12-091-14/+8
| | | | | Remove a 1-element array for an over-allocated struct array. Also add a wrapper struct for C++.
* Clean up some more clang-tidy warningsChris Robinson2023-12-081-5/+5
|
* Support 32-bit int sample storageChris Robinson2023-11-151-0/+1
|
* Avoid some unique and wrapper typesChris Robinson2023-10-151-58/+33
|
* Use the same stereo angles in convolution as normal mixingChris Robinson2023-10-151-19/+15
|
* Use a span for a known array length instead of a raw pointerChris Robinson2023-10-151-3/+3
|
* Ensure some variables are the sameChris Robinson2023-10-151-21/+21
| | | | And clean up some comments
* Avoid an extra copy to calculate the convolution FFTChris Robinson2023-10-141-6/+5
|
* Read the correct half-frequency binChris Robinson2023-10-141-1/+1
|
* Add convolution effect properties to rotate ambisonic responsesChris Robinson2023-10-121-3/+23
|
* Attenuate the convolution filter instead of the filter resultChris Robinson2023-10-111-9/+8
|
* Make and use a separate zconvolve method without scalingChris Robinson2023-10-111-8/+7
| | | | | | When you're doing hundreds or thousands of separate zconvolve calls into the same buffer, it's more efficient to do the multiply once at the end instead of in each call.
* Use PFFFT for the convolution effectChris Robinson2023-10-061-40/+92
|
* Replace some more unnecessary angles with vectorsChris Robinson2023-09-181-47/+77
|
* Use inline variables instead of functions with static variablesChris Robinson2023-06-141-12/+12
|
* Use deduction guides instead of helper functions for spansChris Robinson2023-05-051-3/+3
|
* Use std::byte instead of a custom al::byteChris Robinson2023-05-041-2/+1
|
* Simplify effect state buffer handling someChris Robinson2023-04-041-23/+21
|
* Use macros for the likely/unlikely attributesChris Robinson2023-03-011-2/+2
| | | | | The syntax parser for GCC 8 (and earlier?) fails when these attributes are in certain places.
* Support MSADPCM samples in the mixerChris Robinson2023-02-141-0/+1
|
* Support IMA4 ADPCM as a mixing voice formatChris Robinson2023-02-141-0/+4
|
* Handle UHJ better with convolution reverbChris Robinson2023-01-011-44/+66
| | | | | | It's now decoded to B-Format while being FFT'd, and processed as B-Format. Again, not that UHJ should really ever be used for convolution, but it's a valid format someone may want to use despite the overhead from converting it.
* Avoid some explicit casts and referencesChris Robinson2023-01-011-2/+1
|
* Avoid manually specifying FFT template parametersChris Robinson2022-12-141-3/+3
|
* Use complex floats for convolution reverb FFTsChris Robinson2022-11-241-22/+21
|
* Track if doing 2D mixing onlyChris Robinson2022-09-041-1/+2
| | | | And use it to select the proper HF scales
* Allow different HF scales for 2D mixing/outputChris Robinson2022-09-041-1/+1
| | | | | Not actually used yet, the device needs to track whether it's using 2D or 3D mixing.
* Use the difference in HF scale for upsampling ambisonicsChris Robinson2022-09-031-1/+1
|
* Revert "Don't apply the HF scaling for "upsampling" ambisonics"Chris Robinson2022-09-021-0/+13
| | | | This reverts commit bf3f63fb4c5faa45784d7433d68b7013e29ee2c1.
* Don't apply the HF scaling for "upsampling" ambisonicsChris Robinson2022-08-311-13/+0
| | | | | | | | | | | | Not sure if this is best, but it fixes the issue of upsampling lower orders to higher orders multiple times (mixing lower order to higher order, cutting back to lower order by dropping the extra channels, then upsampling again, applying the HF scale multiple times and messing up the high frequencies/energy vector), as well as having too-strong high frequencies of upsampled content in general. As it is, with the new upsampling method, the lower order signal contributes to some higher order channels, which helps offset the high frequency scaling difference (except first- to second-order, which adds nothing).
* Create and use 2D upsampling matricesChris Robinson2022-08-251-1/+1
|
* Inline a function and remove an unnecessary parameterChris Robinson2022-08-161-1/+1
|
* Remove math_defs.hChris Robinson2022-01-271-2/+5
|
* Start and use a standard-like numbers headerChris Robinson2022-01-271-2/+4
|
* Move the effects base and effectslot to coreChris Robinson2021-12-171-1/+1
|
* Make an inline function to check for 2D ambisonic formatsChris Robinson2021-12-121-1/+1
|
* Add an internal Super Stereo formatChris Robinson2021-12-111-0/+1
| | | | | | | It's not available as an AL buffer format (yet) since I'm not sure how to expose it. Internally it seems fine as a separate channel configuration, but because OpenAL combines the channel configuration and sample type, a flag may work better there.
* Add a UHJ-specific coefficient scaling arrayChris Robinson2021-07-131-2/+7
|
* Update include headersChris Robinson2021-04-271-2/+2
| | | | Don't add alc/ to the include paths.
* Update includesChris Robinson2021-04-271-2/+1
|
* Move BufferStorage and Voice to coreChris Robinson2021-04-271-1/+1
|
* Move GetChannelIdxByName and clean up some more includesChris Robinson2021-04-261-1/+0
|
* Move some functions to coreChris Robinson2021-04-251-1/+17
| | | | And clean up more includes
* Move GetHFOrderScales to a more appropriate placeChris Robinson2021-04-241-2/+1
|
* Create a base the ALCdevice and ALCcontext structsChris Robinson2021-04-241-6/+6
| | | | | A base that contains the API-agnostic data, with ALCdevice and ALCcontext being for AL-specific data.
* Add support for 4-channel UHJChris Robinson2021-03-311-1/+2
| | | | Also add the SOFT moniker to the new macros