HOME

TheInfoList



OR:

sndio is the software layer of the
OpenBSD OpenBSD is a security-focused, free and open-source, Unix-like operating system based on the Berkeley Software Distribution (BSD). Theo de Raadt created OpenBSD in 1995 by forking NetBSD 1.0. According to the website, the OpenBSD project em ...
operating system that manages
sound cards A sound card (also known as an audio card) is an internal expansion card that provides input and output of audio signals to and from a computer under the control of computer programs. The term ''sound card'' is also applied to external aud ...
and MIDI ports. It provides an optional sound server and a documented
application programming interface An application programming interface (API) is a way for two or more computer programs to communicate with each other. It is a type of software interface, offering a service to other pieces of software. A document or standard that describes how t ...
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.


Features

The 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: * perform re-sampling and format conversions; for instance to allow a program that requires 44.1 kHz sample frequency to use a device that supports 48 kHz only. * mix and route the sound of multiple programs; this allows multiple programs to use the audio device concurrently. * split an audio device into sub-devices, for instance allowing one program to use the front speakers and another program to use the rear speakers as they were independent simple stereo devices. * allow one program to record what other programs play. * control the volume. * route audio and MIDI data through the network; this allows programs running on one computer to use the sound card of another computer. * route MIDI data between programs, allowing one program to send MIDI data to another program as it was a hardware MIDI port. For instance for a MIDI sequencer to control a soft synthesizer. * start, stop and relocate synchronously a group of audio programs allowing multiple small programs to work together. This can be controlled through standard MIDI Machine Control (MMC) protocol, for instance from within a MIDI sequencer. * expose the sound card clock as MIDI timecode (MTC), allowing MIDI programs (e.g. sequencers) or MIDI hardware to be synchronized to audio streams. 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 A computer is a machine that can be programmed to Execution (computing), carry out sequences of arithmetic or logical operations (computation) automatically. Modern digital electronic computers can perform generic sets of operations known as C ...
.


History

Minimal server capabilities were added to —an audio stream manipulation tool and predecessor to —in October 2008, shipping with OpenBSD 4.5. In December 2011, was renamed to and later shipped with OpenBSD 5.1 as the default sound server started at operating system boot.


Similar frameworks

* Advanced Linux Sound Architecture * JACK Audio Connection Kit * Open Sound System * PulseAudio
FreeBSD PCM audio device infrastructure


References


External links

* * * * {{OpenBSD BSD software OpenBSD Application programming interfaces 2008 software Audio libraries Free audio software OpenBSD software using the ISC license