Benefits of libsoundio over SDL2:
- Exposes backend support; API can choose which backends to connect to.
- Supports listing devices and choosing one.
- Supports capture devices.
- Supports channel layouts (also known as channel maps), important for surround sound applications.
- Exposes both device id and friendly name. id you could save in a config file because it persists between devices becoming plugged and unplugged, while friendly name is suitable for exposing to users.
- Callback function provides
frame_count_max to optimally leverage fixed-buffer backends such as JACK and CoreAudio, as well as flexible buffer backends such as ALSA and PulseAudio.
- Exposes extra API that is only available on some backends. For example you
can provide application name and stream names which is used by JACK and
- Ability to monitor devices and get an event when available devices change.
- Ability to get an event when the backend is disconnected, for example when the JACK server or PulseAudio server shuts down.
- Ability to connect to multiple backends at once. For example you could have an ALSA device open and a JACK device open at the same time.
- Lightweight; only does audio.
Benefits of SDL2 over libsoundio:
- Contains more functionality than just audio, it does input, windowing, and graphics.
- Supports older versions of Windows than Windows 7.