[openal] OpenAL Soft 1.20.0 released!
Chris Robinson
chris.kcat at gmail.com
Thu Nov 28 05:41:51 EST 2019
OpenAL Soft 1.20.0 is now available:
https://openal-soft.org/
This release presents one of the bigger changes for the codebase, as it
switched from C to C++11 (NOTE: the library is still a drop-in
replacement, it does not break API or ABI). As a result, building now
requires a properly conforming compiler, such as GCC5, Clang 3.8, or
MSVC 2015. Older versions of these compilers may claim C++11
compatibility, but they may also have certain deficiencies that prevent
building the library. If you're having an issue with a compiler that
should otherwise work, please let me know or file an issue on GitHub
<https://github.com/kcat/openal-soft> and I'll look into it.
In terms of actual features and improvements, this release improves
efficiency for the bsinc resamplers and HRTF mixing, and adds an option
for further improving the performance of HRTF at the cost of some
quality (see the hrtf-mode config option). The quality of the bsinc
resamplers is also improved to help reduce distortion peaks.
Additionally, the makemhr utility (formerly called mnakehrtf) now
supports standard SOFA files, as described here
<https://www.sofaconventions.org/>. Support for this depends on
libMySOFA, available in various distro repositories or here
<https://github.com/hoene/libmysofa/>. Note that not all SOFA files will
work, as OpenAL Soft's HRTF currently depends on uniform HRIR layouts.
The makemhr tool will try to work out a uniform layout if the given
input isn't uniform, but not all datasets will have one and may fail.
For this release, there is also the addition of pop-prevention for
sources that end prematurely on non-0 amplitude, multi-field HRTF
support, a partial Vocal Morpher implementation, and more. See the
ChangeLog for a more complete list of changes.
Following this release, there are a couple changes I intend on doing
soon, including load-time HRTF resampling so you don't need an HRTF
dataset for each playback sample rate (presuming it don't cause any
loading performance problems). Similarly, I intend on making the HRIR
"truncation" a load-time option, so as to not need multiple datasets to
alter performance vs. quality with the filter size. I actually wanted
that for this release, but I didn't want to put it off even more, so
they'll be in an upcoming point release.
Further along, I'm going to continue trying to separate the library into
a lower-level reusable component that the OpenAL API layer sits on top
of. There's also ideas for a callback-based source streaming, allowing
lower-latency output where such a thing is possible. The ability to move
an opened device to a different output may also be considered.
Additionally, I can hopefully finish up effect chaining extension and
the event callback extension, after getting enough feedback for what
exactly it can or should provide.
Thanks for reading! If there are any questions, concerns, or comments,
please feel free to bring it up.
More information about the openal
mailing list