aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Remove unnecessary macro parameter listsChris Robinson2023-12-1510-15/+15
|
* Properly check if size_t is larger than uint32_tChris Robinson2023-12-151-1/+1
|
* Add some noexcept for free functionsChris Robinson2023-12-152-17/+20
|
* Fix clang-tidy warnings from the examples and utilitiesChris Robinson2023-12-1312-372/+360
|
* Don't fail alcDevicePauseSOFT for disconnected devicesChris Robinson2023-12-131-6/+0
| | | | | | | | | | | The device playback is stopped so the function doesn't technically fail. This primarily just allows the device state to be flagged as paused for a subsequent reset or reopen, which covers a potential issue where a device is disconnected, the app pauses it due to something like an incoming call or being put into the background, then successfully resets or reopens the device before playback should resume. Without this, the device will (try to) start immediately upon being reset or reopened, which would either fail (and disconnect again) or start playing again prematurely before it can be stopped.
* Properly check that the device was playing before restarting itChris Robinson2023-12-121-7/+4
|
* Track the device state for being properly configuredChris Robinson2023-12-124-41/+81
| | | | And don't allow resuming if the backend device isn't properly set up.
* Remove void from empty parameter listsChris Robinson2023-12-1210-66/+71
| | | | Also convert some functions to trailing return types and remove (void) casts.
* Mostly finish cleanup for backendsChris Robinson2023-12-1113-91/+116
| | | | Except CoreAudio and Solaris backends
* Fix size checkChris Robinson2023-12-111-2/+2
|
* Finish cleanup for effectsChris Robinson2023-12-1114-249/+265
|
* 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
|