Abstract:
Sndio is an enhancement of OpenBSD audio and MIDI subsystems. It features an audio and MIDI server and provides a new library-based API.
The proposed framework, attempts to meet most requirements of desktop applications, but pays special attention to synchronization mechanisms required by music applications. The current implementation supports conversions, resampling, mixing, channel mapping, device splitting, and synchronization of audio streams. Additionally, per-application volume and synchronization are controlled by standard MIDI protocols, allowing interoperability not only with MIDI applications but also with MIDI hardware connected to the machine. Simplicity and robustness of the architecture, the design and the implementation are part of the requirements; thus certain complicated or non-essential features are not provided (e.g., effects, monitoring, network transparency).