[Openal-devel] openal-soft

Chris Robinson chris.kcat at gmail.com
Wed Feb 6 13:02:09 PST 2008


On Wednesday 06 February 2008 12:00:49 pm Lukasz Pawelczyk wrote:
> Are you and in what aspect at the current state of developing interested
> in bug reports?

I'm always interested in handling problems people have with the lib. :)

> As I'm not very into sound programming I can only 
> provide some very general problems I've run into, but can provide
> everything thats necessary to reproduce them.
> 1. Totally no sound in one old icculus port of a windows game.

Which game? Some extensions have been dropped (particularly those for playing 
MP3 and Vorbis, and the callback extension), so if it relies on them, there 
will be issues. I won't mind adding some of the extensions back, but ones 
like the aforementioned likely won't.

> 2. Only front speakers playing on other game where on old OpenAL rear
> were playing as well (I'm 99% sure rear were just a copy of front ones,
> but still, sound was present).

You can try forcing the default alsa device to a hardware voice (by default it 
uses the 'default' device, which is kinda touchy in what it does). You can 
also try to enable full 4 or 5.1-channel mixing. Using OpenAL Soft 1.2, you 
can create ~/.alsoftrc and add the lines:

[general]
format = AL_FORMAT_QUAD16 # or AL_FORMAT_51CHN16 for 5.1

[alsa]
device = surround40 # or surround51, or hw:0,0 for a hardware voice

Just note that the capitalizations for AL_FORMAT_* and surround* are 
important.

> I dont know if that matters but there is no alext.h in your source package.

I suppose it might be useful to add one, with proper extension guards like 
glext.h typically has. The original alext.h was quite messy and rather 
unuseable, though.

> Also it would be nice to make static version as well during compilation.

Generally speaking, I'm opposed to having a static version of OpenAL. It 
prevents upgrading of the lib, and prevents users from using their own, 
possibly accelerated, version. If it's because you want to have a 
known-working version bundled with an app, the general method is to place it 
in a subdirectory of the executable and add that path to the LD_LIBRARY_PATH 
environment variable in the app's startup script.

So for instance you'd have ./myapp, ./myapp.x86, and ./lib/libopenal.so.1, and 
have ./myapp be a shell script:

#!/bin/sh
export LD_LIBRARY_PATH=./lib:"$LD_LIBRARY_PATH"
./myapp.x86 $@

Then when your app loads OpenAL, it will be the one in the lib subdirectory. 
If a user wants to use a different/their own version, all they need to do is 
rename the provided libopenal.so.1 and it'll then pick the system-installed 
one (and if you want to update it, all you need to do is provide the new AL 
binary, instead of recompiling and redistributing a full executable).


That said, I won't mind listening if you have an argument for static-linking.

> And by all means, please, don't stop developing it. Its really sad to
> see that the library that was made for Linux is in such a bad shape (in
> many cases barely usable) while Creative and Apple happily took it over
> and closed its development.

No plans to stop it yet. :) Although isn't Apple's OpenAL still open source 
(in the SVN repo)? Or is that an old version like the Windows one?


More information about the Openal-devel mailing list