Chris Robinson
2012-12-05 00:47:43 UTC
Meant to have this out yesterday, but some last-minute fix-ups snuck in.
http://kcat.strangesoft.net/openal.html
This release has quite a few under-the-hood changes, particularly for
the mixer, which should hopefully help performance. It also adds
SSE-based mixing functions.
PulseAudio will attempt to spawn a server by default, now that it won't
risk conflicting with the ALSA backend. It also has an added option to
allow streams to move between devices (this is, unfortunately, disabled
by default since the ALCdevice specifier doesn't get updated to reflect
the move; so only enable it when you're aware of that potential issue).
ALSA capture was improved as well, to avoid an extra ring buffer if the
requested size can be handled by the device.
Bugs with OSS enumeration and DirectSound float32 output have been fixed.
The new AL_SOFT_source_latency[1] extension is implemented. The
PulseAudio, ALSA, and MMDevAPI backends currently provide proper latency
information.
The pkg-config file (openal.pc) had its CFLAGS updated so code can
include "al.h", "alc.h", etc, without the AL/ prefix, for compatibility
with Windows and CMake's FindOpenAL.cmake module.
The sample config file is now installed by default, and placed in the
{prefix}/share/openal directory instead of /etc/openal (note this does
not affect where it looks for the config files).
The binary package includes Win64 binaries this time around, too. The
binaries were built with the MinGW-W64 cross-compiler, using GCC 4.7.2.
Be aware, though, I haven't been able to personally test them.
[1]
http://kcat.strangesoft.net/openal-extensions/SOFT_source_latency.txt
The current agenda for future updates is to (hopefully) finally get the
listener matrix extension done up. Also a new extension to allow EFX
effects to be chained together, though the library still needs a bit
more work internally to generalize mixing input/outputs. Getting the
other backends to report latency information is planned, as is adding
proper device enumeration for backends that lack it (OSS, Solaris,
SoundIO, and PortAudio).
A compressor, of sorts, to prevent samples from clipping has also been
requested a few times recently, so that's something I'll be looking
into. Maybe pair it up with being able to specify source priorities.
That would also go well with allowing unlimited sources, as
lower-priority sources could be skipped when too many are played at once.
No doubt some other things will get my interest to toy with. I've also
probably forgotten something.
Thanks for looking! :) Comments and questions and such are welcome.
- Chris
http://kcat.strangesoft.net/openal.html
This release has quite a few under-the-hood changes, particularly for
the mixer, which should hopefully help performance. It also adds
SSE-based mixing functions.
PulseAudio will attempt to spawn a server by default, now that it won't
risk conflicting with the ALSA backend. It also has an added option to
allow streams to move between devices (this is, unfortunately, disabled
by default since the ALCdevice specifier doesn't get updated to reflect
the move; so only enable it when you're aware of that potential issue).
ALSA capture was improved as well, to avoid an extra ring buffer if the
requested size can be handled by the device.
Bugs with OSS enumeration and DirectSound float32 output have been fixed.
The new AL_SOFT_source_latency[1] extension is implemented. The
PulseAudio, ALSA, and MMDevAPI backends currently provide proper latency
information.
The pkg-config file (openal.pc) had its CFLAGS updated so code can
include "al.h", "alc.h", etc, without the AL/ prefix, for compatibility
with Windows and CMake's FindOpenAL.cmake module.
The sample config file is now installed by default, and placed in the
{prefix}/share/openal directory instead of /etc/openal (note this does
not affect where it looks for the config files).
The binary package includes Win64 binaries this time around, too. The
binaries were built with the MinGW-W64 cross-compiler, using GCC 4.7.2.
Be aware, though, I haven't been able to personally test them.
[1]
http://kcat.strangesoft.net/openal-extensions/SOFT_source_latency.txt
The current agenda for future updates is to (hopefully) finally get the
listener matrix extension done up. Also a new extension to allow EFX
effects to be chained together, though the library still needs a bit
more work internally to generalize mixing input/outputs. Getting the
other backends to report latency information is planned, as is adding
proper device enumeration for backends that lack it (OSS, Solaris,
SoundIO, and PortAudio).
A compressor, of sorts, to prevent samples from clipping has also been
requested a few times recently, so that's something I'll be looking
into. Maybe pair it up with being able to specify source priorities.
That would also go well with allowing unlimited sources, as
lower-priority sources could be skipped when too many are played at once.
No doubt some other things will get my interest to toy with. I've also
probably forgotten something.
Thanks for looking! :) Comments and questions and such are welcome.
- Chris