Upgrade to the audio system?

I’m at the stage in my development where I had to implement basic audio in my game, and I’ve found the system we’ve got in Flax to be rudimentary and almost too basic.
There are no audio channels, so theres no built-in way of controlling the volumes of different audio groups or more complex things like mixing.
There is no DSP, so forget thinking about reverb, delay, effects or filters.
No AudioSource.PlayOneShot equivalent.

Not having a DSP makes everything feel flat or virtual, and not having built-in channels makes controlling audio a hassle.

Audio channels I can build my self inside of Flax, same with oneshots, but the DSP is trickier.

I tried looking around for different solutions that might remedy this snag. Fmod is too expensive, so is Wwise, so onto FOSS solutions we go (preferably one with C# bindings).
I wasn’t sure about OpenAL, but SoLoud looked fun and it had C# bindings “”“built in”"".
So I went with SoLoud, and after an hour or two of finagling I got it loaded up in Flax.
Then I realized SoLoud has really basic and poor documentation, and I’d have to write my own audio system anyway in order to even play sound from files.
I’d have to store buffers, information about the buffers like samplerate and format, and then set up all the channels properly, and then implement SoLouds audio sources as Actors to make it easier for myself… and on top of all that the reverb was broken and crashes Flax.
So now I’m back to square one again.

Maybe I’ll look into OpenAL at some point, which is something I should have started with instead of SoLoud. But at that point we’ve probably got an upgrade to the audio system in Flax.

Upgrading the audio is on the roadmap, but no progress.
Audio is one of those things that seem like a luxury, and not too important… until you actually have to use it and when it’s lacking you REALLY feel it.

If anyone wants it, I can share the SoLoud dll with C# bindings so that they can play around with it inside Flax themselves.
Somewhat easy to get started, but after that it’s anything but.
It has text-to-speech, and sound synthesizers, so you could use it for something other than wav/mp3/ogg playback.

Edit: Can be found here along with an example script.

3 Likes