public sealed class OpenALBackendOpenAL, used as a sink and nothing else.
No guide page documents this yet — the page shows what the code says about itself.
Remarks
What this backend does not do is the interesting part. OpenAL will spatialise, attenuate, apply a distance model and — with EFX — reverberate. None of that is used. Vixen mixes in software (see Core/Vixen.Audio/Mixing/AudioMixer.cs for why), so what arrives here is a finished interleaved stereo signal, and the whole backend is one source with a queue of buffers and a thread that keeps it full.
That is not a waste of OpenAL. It is what makes OpenAL replaceable: the browser's audio API cannot be driven the way OpenAL's can, and a backend that had leaned on either one's mixer would have had to be written twice and would still have sounded different.
OpenAL Soft travels with the game. Unlike Vulkan, where the loader and the driver come from the platform, there is no OpenAL on a stock Windows or Linux install and macOS's is a deprecated 1.1 shim. The Silk.NET.OpenAL.Soft.Native package puts the implementation in runtimes/<rid>/native, which is where the .NET host looks first.
Fields and properties (4)
public static string? LibraryPathWhich file OpenAL was loaded from, for a log line at boot and for a bug report.
public string NameWhat to call it in a log — OpenAL, WebAudio, Null.
public bool IsAvailableWhether this process could actually open a device through it.
public bool SupportsCapture
Methods (6)
public OpenALBackend(ILogger? logger = null)A backend, loading the OpenAL library.
public IReadOnlyList<AudioDeviceInfo> EnumerateDevices()public IAudioDevice OpenDevice(in AudioDeviceOptions options)Opens one.
public IReadOnlyList<AudioDeviceInfo> EnumerateCaptureDevices()Every microphone it can see, default first if it knows which one that is.
public IAudioCaptureDevice OpenCaptureDevice(in AudioCaptureOptions options)Opens one.
public void Dispose()Nothing. The library is loaded once and shared, like the Vulkan loader.
Used by (3)
- GameSoundsThirdPersonShooter
- VideoGameVideoPlayback
- OpenALBackendTestsVixen.Audio.Backend.OpenAL.Tests