aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Fix a pointer castChris Robinson2023-12-101-2/+2
|
* Much more clang-tidy cleanupChris Robinson2023-12-1053-651/+659
|
* Refactor FlexArrayChris Robinson2023-12-1012-117/+124
| | | | | This avoids using an array of 1 as a flexible array member, and instead uses a span to reference the memory after itself.
* More clang-tidy cleanupChris Robinson2023-12-108-124/+151
| | | | And suppress some warnings
* Be less messy with PFFFTChris Robinson2023-12-095-56/+82
| | | | | Remove a 1-element array for an over-allocated struct array. Also add a wrapper struct for C++.
* More clang-tidy fixesChris Robinson2023-12-0913-212/+224
|
* Simplify handling the cluster sizesChris Robinson2023-12-081-13/+15
|
* Remove some long dead codeChris Robinson2023-12-081-68/+0
| | | | It's unlikely to ever get fixed/revived now with Oboe
* Use a fixed array for fixed-size clustersChris Robinson2023-12-083-46/+54
|
* Clean up some more clang-tidy warningsChris Robinson2023-12-0832-174/+184
|
* Try to work around a compiler issue with HexPrinterChris Robinson2023-12-081-6/+7
|
* Fix some clang-tidy warningsChris Robinson2023-12-0839-284/+281
|
* Improve the room rolloff factor hanldingChris Robinson2023-12-071-79/+100
| | | | | | | | | | Testing with Generic Software shows that the reverb room rolloff factor applies to the currently selected distance model, not necessarily an inverse distance model as described in the EFX docs. Though it should be noted, Generic Software completely ignores AL_EFFECTSLOT_AUXILIARY_SEND_AUTO, never applies the cones to the wet gain, and doesn't clamp to AL_MIX_GAIN and AL_MAX_GAIN for the wet gains. It's unclear if the reverb or source room rolloff factors, or the initial decay, should be imfluenced by the min or max gain properties.
* Add missing include for examples to have a UTF-8 mainChris Robinson2023-12-068-0/+16
|
* Don't apply the reverb room rolloff with a 0 ref distanceChris Robinson2023-12-061-2/+3
|
* Don't throw from the pipewire backend stop methodChris Robinson2023-12-061-4/+2
|
* Make sure the size is large enough for allocating a structChris Robinson2023-12-051-1/+2
|
* Clean up some variables for clang-tidyChris Robinson2023-12-041-13/+10
|
* Assert that a value is in the expected rangeChris Robinson2023-12-041-0/+2
|
* Remove a dead storeChris Robinson2023-12-041-1/+0
|
* Check for a valid alignment with callback buffersChris Robinson2023-12-041-0/+4
|
* Use RAII to handle writing under the mixer seqlockChris Robinson2023-12-046-32/+42
|
* Remove some unnecessary atomic wrappersChris Robinson2023-12-0314-33/+34
|
* Replace a global function with a member functionChris Robinson2023-12-039-18/+12
|
* Make the device clock members atomicChris Robinson2023-12-035-25/+55
| | | | | | Even though they're protected by a SeqLock of sorts, it's still UB to read and write non-atomic vars from different threads. It's fine to do relaxed reads and writes given the lock though, to help alleviate the cost.
* fix printf format for MinGW (#942)Rosen Penev2023-12-037-14/+14
| | | | | | With gcc, mingw uses gnu_printf. With clang, printf is used as it does not support gnu_printf. Use the internal header to match this properly. Signed-off-by: Rosen Penev <[email protected]>
* Adjust the secondary early reflectionsChris Robinson2023-12-021-6/+7
| | | | | | | | | | | | | | This reduces the delay to provide a direct (no delay) line from the early reflections to the late reverb delay buffer. This also reduces the early reflection output gain by half. The reasoning here is that EFX seems to expect only one set of initial reflections, while we use two. And being close enough in time, nearly doubles the amount of output energy. This does seem to improve the "harshness" of certain reverbs, smoothing the difference between reverbs, and makes it more like other implementations (still some work to do on late reverb, though).
* Avoid extra multipliesChris Robinson2023-12-011-3/+3
|
* Rename the extension for 32-bit buffer formatsChris Robinson2023-12-011-15/+15
|
* feat(openal-info): Add values related to sources inside openal-info.c (#940)MathiusD2023-12-021-0/+11
| | | | | | | * feat(openal-info): Add values related to sources inside openal-info.c * fix(openal-info): Update display of nb of sources CF following comment : https://github.com/kcat/openal-soft/pull/940#discussion_r1409659608
* Update some in-progress format enumsChris Robinson2023-11-251-15/+15
|
* Cleanup the event support reportingChris Robinson2023-11-251-15/+9
|
* 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
|