Pyglet and OpenAL on Tiger

I'm still not getting any sound from Pyglet on MacOSX. Previously I thought this was because my AVBin installation wasn't working, but it turns out it's because OpenAL isn't working.
>>> import
  File "/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/ctypes/", line 330, in __getitem__
    func = self._FuncPtr((name_or_ordinal, self))
AttributeError: dlsym(0x10d4e0, alListener3i): symbol not found
Looking at /System/Library/Frameworks/OpenAL.framework/Headers/al.h, it appears that the following six variants of alListener are supposed to exist:
alListenerf( ALenum param, ALfloat value );
alListener3f( ALenum param, ALfloat value1, ALfloat value2, ALfloat value3 );
alListenerfv( ALenum param, const ALfloat* values ); 
alListeneri( ALenum param, ALint value );
alListener3i( ALenum param, ALint value1, ALint value2, ALint value3 );
alListeneriv( ALenum param, const ALint* values );
However, according to nm, only four of them actually exist in the dylib:
9b20d9cc T _alListener3f
9b20dcf0 T _alListenerf
9b20db54 T _alListenerfv
9b20f0e8 T _alListeneri
I'm not sure what to make of this. Maybe my MacOSX has an older version of OpenAL installed? But then why do these functions appear in the header, but not the library?

Has anyone else successfully got sound out of Pyglet on MacOSX? What version? Mine is 10.4.4.

(log in to comment)


I've certainly got Pyglet sound out of OS X 10.4.11, and various versions of 10.5. I did notice a problem with a friend's 10.3 machine though.
Interesting. This is easy for me to workaround if you send me the complete nm dump. Also, out of interest if you could send the output of "python -m", which will contain the vendor information for your OpenAL framework (it doesn't seem to be the Apple one).
I think I've figured out some of what's going on. The mismatched header file seems to have been put there by the XCode 2.4.1 update that I installed a while back. I extracted the relevant header file from the installer and compared, and they're identical.

As for the library, I dug out the one from my MacOSX 10.4.4 installation disk. Curiously, they're not byte-for-byte identical, but they are exactly the same size, and they share the characteristic of having only 4 variants of alListener().

I also found something called OpenALSDKInstaller lying around on my system, so I think I may have tried to install a later version of OpenAL at some time in the past, and ended up with something slightly different from the original 10.4.4 version, but not much.

So my guess is that Apple upgraded the version of OpenAL that they supply in some later version of Tiger, and installing the XCode update gave me the header for that, but not the actual library.

Anyhow, I'll mail you the info you asked for.