sndio
Original author(s) |
|
---|---|
Developer(s) | The OpenBSD Project |
Initial release | October 2008 |
Repository | |
Written in | C |
Operating system | OpenBSD, FreeBSD, NetBSD, Linux |
Type | Sound server |
License | ISC |
Website | www |
sndio is the software layer of the
Features
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.[3] This includes:[4]
- 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 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.[5] The use of standard MIDI protocols for volume and synchronization control enables interoperability with MIDI software or hardware connected to a computer.[6]
History
Minimal server capabilities were added to aucat—an audio stream manipulation tool and predecessor to sndiod—in October 2008,[7] shipping with OpenBSD 4.5.[8][9] In December 2011, aucat was renamed to sndiod[10] and later shipped with OpenBSD 5.1 as the default sound server started at operating system boot.[11]
Similar frameworks
- Advanced Linux Sound Architecture
- JACK Audio Connection Kit
- Open Sound System
- PulseAudio
- FreeBSD PCM audio device infrastructure
References
- ^ "sndio interface to audio devices". OpenBSD manual pages. Retrieved August 3, 2016.
- ^ Ratchov, Alexandre (2010). "OpenBSD audio & MIDI framework for music and desktop applications" (PDF). AsiaBSDCon. Retrieved September 16, 2012.
- ^ Arons, Barry (March 1991). "The Design of Audio Servers and Toolkits for Supporting Speech in the User Interface" (PDF). Journal of the American Voice I/O Society. Retrieved September 16, 2012.
- ^ "OpenBSD manual pages". man.openbsd.org. Retrieved May 14, 2016.
- ISBN 9780634020834.
- Undeadly. Retrieved September 16, 2012.
- Undeadly. Retrieved September 16, 2012.
- ^ "The OpenBSD 4.5 Release". OpenBSD. May 1, 2009. Retrieved September 16, 2012.
- ^ Biancuzzi, Federico (June 15, 2009). "PuffyTron recommends OpenBSD 4.5". O'Reilly Media. Retrieved September 16, 2012.
- ^ "src/etc/rc.conf". OpenBSD CVS. December 9, 2011. Retrieved May 14, 2016.
- ^ "The OpenBSD 5.1 Release". OpenBSD. May 1, 2012. Retrieved September 16, 2012.
External links
- Official website
- "13 – Multimedia". OpenBSD FAQ. Retrieved September 16, 2012.
- OpenBSD Miscellaneous Information Manual –
- OpenBSD System Manager's Manual –