sndio
   HOME

TheInfoList



OR:

sndio is the software layer of the OpenBSD 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 audio ...
and
MIDI MIDI (; Musical Instrument Digital Interface) is a technical standard that describes a communications protocol, digital interface, and electrical connectors that connect a wide variety of electronic musical instruments, computers, and ...
ports. It provides an optional
sound server A sound server is software that manages the use of and access to sound reproduction, audio devices (usually a sound card). It commonly runs as a background process. Sound server in an operating system In a Unix-like operating system, a sound ...
and a documented application programming interface to access either the server or the audio and
MIDI MIDI (; Musical Instrument Digital Interface) is a technical standard that describes a communications protocol, digital interface, and electrical connectors that connect a wide variety of electronic musical instruments, computers, and ...
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 MIDI (; Musical Instrument Digital Interface) is a technical standard that describes a communications protocol, digital interface, and electrical connectors that connect a wide variety of electronic musical instruments, computers, and ...
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 An operating system (OS) is system software that manages computer hardware, software resources, and provides common services for computer programs. Time-sharing operating systems schedule tasks for efficient use of the system and may also i ...
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 MIDI (; Musical Instrument Digital Interface) is a technical standard that describes a communications protocol, digital interface, and electrical connectors that connect a wide variety of electronic musical instruments, computers, and ...
data through the network; this allows programs running on one computer to use the
sound card 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 audio ...
of another computer. * route
MIDI MIDI (; Musical Instrument Digital Interface) is a technical standard that describes a communications protocol, digital interface, and electrical connectors that connect a wide variety of electronic musical instruments, computers, and ...
data between programs, allowing one program to send
MIDI MIDI (; Musical Instrument Digital Interface) is a technical standard that describes a communications protocol, digital interface, and electrical connectors that connect a wide variety of electronic musical instruments, computers, and ...
data to another program as it was a hardware
MIDI MIDI (; Musical Instrument Digital Interface) is a technical standard that describes a communications protocol, digital interface, and electrical connectors that connect a wide variety of electronic musical instruments, computers, and ...
port. For instance for a
MIDI MIDI (; Musical Instrument Digital Interface) is a technical standard that describes a communications protocol, digital interface, and electrical connectors that connect a wide variety of electronic musical instruments, computers, and ...
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 MIDI Machine Control, or MMC, a subset of the MIDI specification, provides specific commands for controlling recording equipment such as multi-track recorders. MMC messages can be sent along a standard MIDI cable for remote control of such functions ...
(MMC) protocol, for instance from within a
MIDI sequencer A music sequencer (or audio sequencer or simply sequencer) is a device or application software that can record, edit, or play back music, by handling Musical note, note and performance information in several forms, typically CV/Gate, MIDI, or O ...
. * expose the
sound card 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 audio ...
clock as
MIDI timecode MIDI time code (MTC) embeds the same timing information as standard SMPTE timecode as a series of small 'quarter-frame' MIDI messages. There is no provision for the user bits in the standard MIDI time code messages, and SysEx messages are used t ...
(MTC), allowing
MIDI MIDI (; Musical Instrument Digital Interface) is a technical standard that describes a communications protocol, digital interface, and electrical connectors that connect a wide variety of electronic musical instruments, computers, and ...
programs (e.g. sequencers) or
MIDI MIDI (; Musical Instrument Digital Interface) is a technical standard that describes a communications protocol, digital interface, and electrical connectors that connect a wide variety of electronic musical instruments, computers, and ...
hardware to be synchronized to audio streams. The last few points are hooks in the
sound server A sound server is software that manages the use of and access to sound reproduction, audio devices (usually a sound card). It commonly runs as a background process. Sound server in an operating system In a Unix-like operating system, a sound ...
aiming to improve interoperability between audio and
MIDI MIDI (; Musical Instrument Digital Interface) is a technical standard that describes a communications protocol, digital interface, and electrical connectors that connect a wide variety of electronic musical instruments, computers, and ...
programs. The use of standard
MIDI MIDI (; Musical Instrument Digital Interface) is a technical standard that describes a communications protocol, digital interface, and electrical connectors that connect a wide variety of electronic musical instruments, computers, and ...
protocols for volume and synchronization control enables interoperability with
MIDI MIDI (; Musical Instrument Digital Interface) is a technical standard that describes a communications protocol, digital interface, and electrical connectors that connect a wide variety of electronic musical instruments, computers, and ...
software or hardware connected to a computer.


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 A sound server is software that manages the use of and access to sound reproduction, audio devices (usually a sound card). It commonly runs as a background process. Sound server in an operating system In a Unix-like operating system, a sound ...
started at
operating system An operating system (OS) is system software that manages computer hardware, software resources, and provides common services for computer programs. Time-sharing operating systems schedule tasks for efficient use of the system and may also i ...
boot.


Similar frameworks

*
Advanced Linux Sound Architecture Advanced Linux Sound Architecture (ALSA) is a software framework and part of the Linux kernel that provides an application programming interface (API) for sound card device drivers. Some of the goals of the ALSA project at its inception w ...
*
JACK Audio Connection Kit JACK Audio Connection Kit (or JACK; a recursive acronym) is a professional sound server API and pair of daemon implementations to provide real-time, low-latency connections for both audio and MIDI data between applications. JACK was developed by ...
*
Open Sound System The Open Sound System (OSS) is an interface for making and capturing sound in Unix and Unix-like operating systems. It is based on standard Unix devices system calls (i.e. POSIX read, write, ioctl, etc.). The term also sometimes refers to th ...
*
PulseAudio PulseAudio is a network-capable sound server program distributed via the freedesktop.org project. It runs mainly on Linux, various BSD distributions such as FreeBSD and OpenBSD, macOS, as well as Illumos distributions and the Solaris operat ...

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