Adding support for SoLoud audio library in panda3d

hi all,
SoLoud is a library for audio in games which i think is good for panda3d
liberal license (zlib/png), support for filters and having ability to implement new filters, cross platform support, fade-in/out support (which might become useful in panda3d as well) at least for my game but it might become useful for others as well, etc.
although it is a little bit new and people might not know it, but it is great and it is under active development.
GitHub link:


Of the audio backends that Panda currently supports (FMod, Miles, OpenAL), only OpenAL is open source. I would certainly like to see more options here, and I have heard good things about SoLoud in the past. While, I do not foresee any of the main engine devs working on this, pull requests are always welcome. If this is something you are interested in implementing, it would be good to first start a discussion on IRC, Discord, or GitHub to make sure other devs are receptive to including such a change.

Looks like worth looking into; Panda has pluggable audio back-ends so this would be a great addition to the supported set, especially as OpenAL Soft is LGPL. Just glancing at the documentation, though, it does not seem to have a pulseaudio back-end; can it be used with systems that use pulseaudio?

I can report that there is another way to get sound in the panda. I use Pyo, because of the great flexibility of working with sound, based on Portaudio. Does not require integration, works as a server. Restrictions: some dependencies are only 32 bits.

first, how can i start working on it? since i’m not so much familiar with panda3d’s codebase.
by using the portaudio, sdl backends, yes.
it is possible to write another backend for it from scratch which might seem more logical and better and makes it less dependent on portaudio and/or sdl, so if then implemented in panda3d, the games which are written for it will be less dependent to different libraries

The first step is to study the OpenAL and FMOD implementations in panda/src/audiotraits, and then I’d copy-paste and rename the classes and reimplement the contents of the various functions.