The convienence classes make those kinds of calls in openal.py, its fairly straightforward really. The listener for example:
class Listener(object):
def __init__(self):
#load device/context/listener
self.device = alc.alcOpenDevice(None)
self.context = alc.alcCreateContext(self.device, None)
alc.alcMakeContextCurrent(self.context)
alc.alcProcessContext(self.context)
Or for creating and loading sound buffers:
self.buf = al.ALuint(0)
al.alGenBuffers(1, self.buf)
#allocate buffer space to: buffer, format, data, len(data), and samplerate
al.alBufferData(self.buf, alformat, wavbuf, len(wavbuf), samplerate)
I've been digging into the OpenAL-Soft include headers and it seems there's some extra support for more dense audio formats like AL_MONO_FLOAT32 and AL_STEREO_FLOAT32, vorbis, etc. There's also a header with EFX environmental reverb presets for all sorts of environments like underwater, plains, mountains, cities, caves, etc. Interesting stuff, so some things left to mess around with and implement as time allows.
As for steam audio, maybe? It seems specifically designed to work with FMOD, Unity, or Unreal, so i'm not sure. Maybe using its Phonon bindings and using PyQt.Phonon?
-
BrushTone v1.3.3: Accessible Paint Tool
-
AudiMesh3D v1.0.0: Accessible 3D Model Viewer