|Original author(s)||Alexandre Ratchov and Jacob Meuser|
|Developer(s)||The OpenBSD Project|
|Initial release||October 2008|
|Operating system||OpenBSD, FreeBSD, NetBSD, Linux|
sndio is the software layer of the OpenBSD operating system that manages sound cards and MIDI ports. It provides an optional sound server and a documented application programming interface to access either the server or the audio and MIDI hardware in a uniform way. sndio is designed to work for desktop applications, but pays special attention to synchronization mechanisms and reliability required by music applications.
The sndiod audio and MIDI server is the main component of sndio. It aims to fill the gap between programs requirements and the bare hardware as exposed by operating system device drivers. This includes:
The last few points are hooks in the sound server aiming to improve interoperability between audio and MIDI programs. The use of standard MIDI protocols for volume and synchronization control enables interoperability with MIDI software or hardware connected to a computer.
Minimal server capabilities were added to aucat—an audio stream manipulation tool and predecessor to sndiod—in October 2008, shipping with OpenBSD 4.5. In December 2011, aucat was renamed to sndiod and later shipped with OpenBSD 5.1 as the default sound server started at operating system boot.