aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* 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
|
* 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
|