OpenAL (or better labeled, OpenAL-Soft) is an audio playback API that is LGPL licensed, (see here)
While it has been using OpenAL for quite some time with no issues, we are presented with a couple of problems:
- Any kind of software/game that compiles to native targets (mostly affecting Windows/Mac/Linux) cannot do a clean static link executable if it uses any kind of audio
- OpenAL lacks and/or does not have an intuitive implementation of certain features such as stereo audio panning[1] or audio buffer editing[2] that the original Flash could provide within events, like
SampleDataEvent.SAMPLE_DATA[3]
miniaudio, on the other hand, falls back on the same principle and solves some of the main concerns regarding previously, such as:
- it is Mit-0 licensed or even Unlicensed, so static linking could be doable
- As far as documentation goes, miniaudio supports StereoPanning and Pitching and Spatialization is also supported
- Since it’s a low-level API, there could be a way to add audio, it can also be open to implement streaming, and therefore implement samplingData events, that people could use to create their own effects like delay, reverb, pitch shifting without having to rely on a centric EFX plugin to implement what’s closest to the developer, or be exposed to a poor or unoptimized implementation that would lead to a loss of performance that could be avoided.
While, obviously this kind of API can be very liberating to implement, this also means rewriting the entire audio API aside from OpenAL (if the intended goal is to keep backwards compatibility for older games) and possibly implementing audio stuff from groundup, like audio mixing, volume, so on and so forth.
I thought it’d be discussed somewhere but I didn’t see an instance of it here, so might aswell “open” it?
