Sndio is a small audio and MIDI framework part of the OpenBSD project and ported to FreeBSD, Linux and NetBSD. It provides a lightweight audio & MIDI server and a fully documented user-space API to access either the server or the hardware directly 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. Reliability through simplicity are part of the project goals.
This source code builds on any OpenBSD, Linux, and FreeBSD systems with no modifications. Patches to make sndio build on NetBSD are available in the ports tree.
Binaries are available for the following operating systems:
Porting sndio consists of writing a module for the sndio library; it takes around a thousand lines of C. The sndio daemon itself uses this library for audio I/O so it requires virtually no porting efforts.
Many open-source programs, including major media-players, web-browsers, audio libraries and utilities have native sndio support. Other programs have patches in the OpenBSD ports tree waiting for upstream integration.
Refer to installation instructions for more details.
git clone https://caoua.org/git/sndio
The complete documentation is part of the OpenBSD project:
A mailing-list dedicated to non-OpenBSD-related discussions is available (archives are here).
Copyright (c) 2013 Alexandre Ratchov
Last updated July 16, 2022