aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Fix some unused parameter and unhandled enum warningsChris Robinson2023-11-256-59/+62
|
* Fix some commentsChris Robinson2023-11-251-3/+2
|
* Add query fonction in ALC_SOFT_system_events unreleased extension (#938)MathiusD2023-11-2615-18/+184
| | | | | | | | | | | | | | | | | | | * feat(ALC_SOFT_system_events): Add alcEventIsSupportedSOFT method in ALC_SOFT_system_events unreleased extension The purpose of this addition (to my collection) are allow to retrieve which events are supported and if events are fully supported or if some case isn't managed for some reason For exemple only some backends provide system events: * pipewire -> Full support of extension * wasapi -> Full support of extension * pulseaudio -> Support of add and remove devices events only * coreaudio -> Support of default device change only * feat(ALC_SOFT_system_events): Fix typo in alext.h Cf following review : https://github.com/kcat/openal-soft/pull/938#discussion_r1404509828 * feat(ALC_SOFT_system_events): Remove ALC_EVENT_NOT_SUPPORTED_SOFT token Cf following discussions between this comment : https://github.com/kcat/openal-soft/pull/938#issuecomment-1825876452 to this comment : https://github.com/kcat/openal-soft/pull/938#issuecomment-1826419406
* Do proper spatial reflection in reverbChris Robinson2023-11-221-16/+55
| | | | | | Instead of "bouncing" the lines by indexing backwards for a not-quite-spatial- opposite, do a proper mix that moves each line response to its true spatial opposite position.
* Compensate the late delay tap by the early delay bufferChris Robinson2023-11-221-1/+5
|
* Don't combine both early reflection taps for the late reverbChris Robinson2023-11-211-2/+3
| | | | | | | | | | | | | | | | | | | It doesn't make much sense to include both early reflections to feed the late reverb, since it increases the total energy in the reverb decay. This better fits with the design described in papers for this type of reverb, and seems to better match volume levels of hardware EAX/EFX reverb (though there are still some apparent differences). Note that this adds a bit more delay to the late reverb, specifically EARLY_LINE_LENGTHS[0] * density_mult. This can be compensated for somewhat by reducing the late reverb delay by that amount (clamping to a minimum of 0). Alternatively, adjust the delay lines for the second early tap to have a zero- delay pass-through line with 3 delay lines (as opposed to the current 4 delay lines), as suggested by the paper "ADAPTING ARTIFICIAL REVERBERATION ARCHITECTURES FOR B-FORMAT SIGNAL PROCESSING". Although doing so may require additional adjustments to the delay lengths and gains to avoid the 0-length lines accumulating unattenuated copies of the signal for the early reflection output.
* Handle systems that don't support std::cyl_bessel_iChris Robinson2023-11-182-4/+89
|
* Fix definition typesChris Robinson2023-11-181-7/+7
|
* Start a 32-bit sample format extensionChris Robinson2023-11-184-119/+181
| | | | | This ultimately is to properly distinguish and clarify formats being 32-bit integer and 32-bit float.
* Support 32-bit int sample storageChris Robinson2023-11-156-0/+14
|
* Make a couple global values/variables inlineChris Robinson2023-11-112-8/+6
|
* Remove some explicit template parametersChris Robinson2023-11-102-125/+124
|
* Use the C++ standard's regular modified Bessel functionChris Robinson2023-11-082-62/+6
|
* Precompute a value used multiple timesChris Robinson2023-11-071-19/+9
|
* Remove an unnecessary struct memberChris Robinson2023-11-042-5/+7
|
* Don't apply the UHJ all-pass's first segment in the time domainChris Robinson2023-10-282-57/+33
| | | | | Increases the delay by 128 samples, but replaces a time-domain convolution with a frequency-domain one.
* Remove unnecessary extra macrosChris Robinson2023-10-261-55/+37
|
* Slightly simplify calculating the minimum phase outputChris Robinson2023-10-261-4/+1
|
* Don't make a float version of complex_fftChris Robinson2023-10-252-26/+19
|
* Use PFFFT for the pitch shifterChris Robinson2023-10-251-13/+36
|
* Print the HRTF used in openal-infoChris Robinson2023-10-231-2/+17
|
* Don't inline a destructorChris Robinson2023-10-222-0/+6
|
* Use a byte for the channel indexChris Robinson2023-10-224-21/+21
|
* Update the downmix tablesChris Robinson2023-10-211-66/+53
|
* Use a dynamically resizing spa_pod_builderChris Robinson2023-10-211-14/+47
| | | | Rather than relying on a fixed-size buffer
* Remove an outdated commentChris Robinson2023-10-201-3/+0
|
* Don't keep setting and reloading a struct member in a loopChris Robinson2023-10-201-2/+3
|
* Don't log failed config option lookupsChris Robinson2023-10-191-5/+2
|
* Use a more appropriate type trait to remove a pointerChris Robinson2023-10-191-1/+1
|
* Remove the output delay on the UHJ and SuperStereo IIR decodersChris Robinson2023-10-182-38/+53
|
* Remove an unnecessary getterChris Robinson2023-10-171-11/+3
|
* Combine some more VADD(VMUL(... into VMADD(...Chris Robinson2023-10-171-48/+44
|
* Mark some output buffer pointers as RESTRICTChris Robinson2023-10-161-15/+17
|
* Fix WFX channel matching in uhjencoderChris Robinson2023-10-161-1/+1
|
* Replace some function-like macros with real functionsChris Robinson2023-10-161-117/+136
|
* Avoid some macros that use inputs multiple timesChris Robinson2023-10-161-25/+57
|
* Constify some parametersChris Robinson2023-10-162-19/+24
|
* Remove an unnecessary c_str() callChris Robinson2023-10-161-1/+1
|
* Properly align a buffer given to PFFFTChris Robinson2023-10-151-4/+5
|
* 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-1511-36/+35
|
* Ensure some variables are the sameChris Robinson2023-10-152-41/+46
| | | | And clean up some comments
* Avoid an extra copy to calculate the convolution FFTChris Robinson2023-10-141-6/+5
|
* Don't use an iterator where a pointer is expectedChris Robinson2023-10-141-1/+1
|
* Use a split filter for the FIR-based UHJ encodersChris Robinson2023-10-143-13/+204
| | | | | | | | This applies the all-pass filter in two steps, first as a relatively short time-domain FIR filter, then as a series of frequency domain convolutions (using complex multiplies). Time-domain convolution scales poorly, so larger convolutions benefit from being done in the frequency domain (though the first part is still done in the time domain, to avoid longer delays).
* Read the correct half-frequency binChris Robinson2023-10-141-1/+1
|
* Add missing includeChris Robinson2023-10-121-0/+2
|
* Rename the convolution reverb effect to just convolutionChris Robinson2023-10-127-27/+27
| | | | | While the common use case, convolution can do more than just reverb, and it nicely shortens the name.
* Add an orientation property for convolution reverbChris Robinson2023-10-122-5/+28
| | | | Only affects ambisonic (B-Format and UHJ) formats