Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Open Sound System
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Short description|Sound server for Unix-like operating systems}} {{Infobox software | name = Open Sound System | logo = | screenshot = | caption = | collapsible = | author = Hannu Savolainen | developer = [[NCR Corporation]] | latest release version = 4.2 build 2019 | latest release date = {{release date and age|2019|03|05}}<ref>{{citation |url=http://ossnext.trueinstruments.com/forum/viewtopic.php?f=19&t=5876 |title=OSS v4.2 build 2019 |access-date=2019-05-10 |archive-date=2022-09-25 |archive-url=https://web.archive.org/web/20220925110149/http://ossnext.trueinstruments.com/forum/viewtopic.php?f=19&t=5876 |url-status=dead }}</ref> | latest preview version = | latest preview date = | programming language = | operating system = [[Cross-platform]]<ref>{{Cite web|url=http://www.opensound.com/download.cgi|title = OSS Download Registration}}</ref> | platform = | size = | language = | genre = Audio | license = {{ubl|[[BSD License|BSD-2-Clause]]|[[Common Development and Distribution License|CDDL-1.0]]|[[GNU General Public License|GPL-2.0-only]]|[[Proprietary software|Proprietary]] (formerly)}} | website = {{URL|http://www.opensound.com/}} }} 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 [[device node|devices]] [[system call]]s (i.e. [[POSIX]] [[read (system call)|read]], [[write (system call)|write]], [[ioctl]], etc.). The term also sometimes refers to the software in a Unix kernel that provides the OSS interface; it can be thought of as a [[device driver]] (or a collection of device drivers) for [[sound card|sound controller]] hardware. The goal of OSS is to allow the writing of sound-based applications that are agnostic of the underlying sound hardware. OSS was created by [[Hannu Savolainen]] and is distributed under [[Multi-licensing|four license options]], three of which are [[free software licences]], thus making OSS [[free software]].<ref name="OSS-liberated-2007">{{citation|url=http://www.linuxpr.com/releases/9766.html |title=4Front technologies releases the source code for open sound system |publisher=Linux PR |access-date=2012-01-08 |url-status=usurped |archive-url=https://web.archive.org/web/20110725173831/http://www.linuxpr.com/releases/9766.html |archive-date=July 25, 2011 }}</ref> == API == The API is designed to use the traditional Unix framework of open(), read(), write(), and ioctl(), via [[device file]]s. For instance, the default device for sound input and output is '''/dev/dsp'''. Examples using the shell: cat [[/dev/random]] > /dev/dsp # plays [[white noise]] through the speaker cat /dev/dsp > a.a # reads data from the microphone and copies it to file a.a OSS implements the [[/dev/audio]] interface. Detailed access to individual sound devices is provided via the {{tt|/dev/oss}} directory. OSS also has MIDI support in {{tt|/dev/sequencer}}, {{tt|/dev/music}} (both legacy) and {{tt|/dev/mini}}.<ref>{{cite web |title=OSS v4.x API reference - OSS API basics |url=http://manuals.opensound.com/developer/ossapi.html |website=manuals.opensound.com}}</ref><ref>{{cite web |title=Open Sound System (3.x) Programmer's Guide |url=http://www.opensound.com/pguide/oss.pdf |access-date=22 February 2023 |date=2000}}</ref> On Linux, OSS4 is also able to emulate [[Advanced Linux Sound Architecture|ALSA]], its open-source replacement.<ref>{{cite web |title=Tips And Tricks - Open Sound System |url=http://www.opensound.com/wiki/index.php/Tips_And_Tricks#ALSA_Emulation |website=ossnext.trueinstruments.com}}</ref> == History == OSS was originally "VoxWare", a Linux kernel sound driver by Hannu Savolainen. Savolainen made the code available under [[free software]] licenses, GPL for Linux and BSD for BSD distributions. Between November 1993 (and Linux 1.00)<ref>{{Cite web |title=Linux 0.99 patchlevel 14 - Diff - 75bb5836a8a8c0ee44ffd60a51f357b9568f1381^! - pub/scm/linux/kernel/git/nico/archive - Git at Google |url=https://kernel.googlesource.com/pub/scm/linux/kernel/git/nico/archive/+/75bb5836a8a8c0ee44ffd60a51f357b9568f1381%5E!/ |access-date=2024-03-22 |website=kernel.googlesource.com}}</ref> and 1997, OSS was the sole choice of sound system in FreeBSD and Linux. This was changed when Luigi Rizzo wrote a new "pcm" driver for FreeBSD in 1997, and when Jaroslav Kysela started [[Advanced Linux Sound Architecture]] in 1998.<ref name=fbsd>{{cite web |title=Sound - FreeBSD Wiki |url=https://wiki.freebsd.org/Sound |website=wiki.freebsd.org}}</ref> In 2002, Savolainen was contracted by the company [[4Front Technologies]] and made the upcoming OSS 4, which includes support for newer sound devices and improvements, [[proprietary software|proprietary]]. In response, the Linux community abandoned the OSS/free implementation included in the kernel and development effort switched to the replacement [[Advanced Linux Sound Architecture]] (ALSA). FreeBSD by this time had switched to a "newpcm" project started in 1999 and was not affected.<ref name=fbsd/> In July 2007, 4Front Technologies released sources for OSS under [[Common Development and Distribution License|CDDL-1.0]] for [[OpenSolaris]] and [[GNU General Public License|GPL-2.0-only]] for [[Linux]]. Drivers for some soundcards remained closed-source and were not included in the release.<ref name="OSS-liberated-2007" /> In January 2008, 4Front Technologies released OSS for [[FreeBSD]] (and other [[BSD]] systems) under the [[BSD Licenses|BSD-2-Clause]].<ref name="OSS-BSD-2008">{{citation |url=http://www.opensound.com/press/2008/oss-bsd.txt |title=4Front Technologies releases OSS for FreeBSD under the BSD license |publisher=opensound.com |access-date=2012-01-08}}</ref> == Adoption status == === Code === OSS4 now exists mostly as a standalone piece of software, not integrated into the kernel source code. The exception is [[Solaris (operating system)|Solaris]] and [[OpenSolaris]], which use a fork of OSS4 called Boomer. It combines the OSS4 framework (audio and mixer) together with Sun's earlier SADA ([[/dev/audio]]) API.<ref>{{citation |url=http://4front-tech.com/hannublog/?page_id=17 |title=Hannu's Blog Β» Boomer |publisher=4front-tech.com |access-date=2012-01-08 |url-status=dead |archive-url=https://web.archive.org/web/20120316022034/http://4front-tech.com/hannublog/?page_id=17 |archive-date=2012-03-16 }}</ref> Although Linux distributions such as [[Ubuntu]] made OSS4 available as a software package after it was made free software, they have chosen to ignore any bugs filed against these packages.<ref>{{citation |url=https://help.ubuntu.com/community/OpenSound |title=Ubuntu Documentation: OpenSound |publisher=ubuntu.com |access-date=2012-01-08}}</ref> === API === The OSS API has remained influential despite the obscurity of the original library. NetBSD's documentation describes it as "the preferred API in FreeBSD and Solaris".<ref name="NetBSDman">{{cite web |title=ossaudio(3) - NetBSD Manual Pages |url=https://man.netbsd.org/NetBSD-10.0-STABLE/ossaudio.3 |website=man.netbsd.org}}</ref> [[FreeBSD]] contains an independently developed implementation of the OSS API, which includes, among other things, in-kernel resampling, [[Audio mixing (recorded music)|mixing]] (vchans), equalizer, surround sound, and independent volume control for each application. It also supports bit-perfect mode.<ref>{{citation |url=http://www.freebsd.org/cgi/man.cgi?sound |title=sound |publisher=Freebsd.org |date=2009-07-13 |access-date=2012-01-08}}</ref> It gradually evolved from the "newpcm" replacement written in 1999 and caught up with OSS4 API around 2005.<ref name=fbsd/> [[NetBSD]] supports a compatibility mode for the OSS API, by providing the <code>soundcard.h</code> header file and the <code>libossaudio</code> library, which internally operate using the native Sun-like audio interface. The replacement was first seen in NetBSD 1.3 of 1998.<ref name="NetBSDman"/> Linux had, as aforementioned, switched to [[Advanced Linux Sound Architecture]] since 2003 (kernel 2.6). ALSA provides an optional, in-kernel, OSS emulation mode that appears to programs as if it were OSS.<ref>{{citation|url=http://www.alsa-project.org/~tiwai/OSS-Emulation.html|title=OSS Emulation|access-date=2012-07-07|archive-url=https://web.archive.org/web/20120605094307/http://www.alsa-project.org/~tiwai/OSS-Emulation.html|archive-date=2012-06-05|url-status=dead}}</ref> ALSA also has a ''aoss'' userspace program that works by intercepting systems calls directed to the OSS device files.<ref>{{cite web |title=aoss(1) β Arch manual pages |url=https://man.archlinux.org/man/extra/alsa-oss/aoss.1.en |website=man.archlinux.org}}</ref> == OSS/3D == OSS/3D is a plugin for music players, which acts as an audio postprocessing engine. Supported players include [[Winamp]], [[Windows Media Player]] (9 or later), musicmatch, [[Sonique (media player)|Sonique]], [[Foobar2000]], [[JetAudio]], [[XMMS]]. It is ported to Windows and Linux platforms. Unlike the OSS, it is [[shareware]]. 4Front OSS3D was later renamed to Joesoft Hear.<ref>{{citation |url=http://www.yohng.com/obsolete.html |title=Β· Obsolete product reference |publisher=Yohng.com |access-date=2012-01-08}}</ref> == Criticism == OSS both as API and as software has been criticized by some developers, such as [[Paul Davis (programmer)|Paul Davis]] (of [[JACK Audio Connection Kit]]) and [[Lennart Poettering]] (of competing [[PulseAudio]]).<ref>{{Cite web|url=http://equalarea.com/paul/alsa-audio.html|title = A tutorial on using the ALSA Audio API}}</ref>{{Failed verification|date=May 2024}}<ref>{{Cite web|url=https://lwn.net/Articles/450299/|title=Interview with Lennart Poettering (LinuxFR.org) [LWN.net]|website=lwn.net}}</ref> == See also == {{Portal|Free and open-source software}} * [[Advanced Linux Sound Architecture]] β prevailing sound framework in the Linux kernel * [[PulseAudio]] β a sound server for desktop use, commonly used on Linux systems * [[JACK Audio Connection Kit]] β prevailing sound server for professional audio production on Linux == References == {{Reflist|30em}} == External links == * {{Official website|http://www.opensound.com/}} * [http://www.4front-tech.com/wiki/index.php/Building_OSSv4_from_source Building the Open Sound System From Source] * [http://insanecoding.blogspot.com/2009/06/state-of-sound-in-linux-not-so-sorry.html State of sound in Linux not so sorry after all] {{Linux kernel}} [[Category:Application programming interfaces]] [[Category:Audio libraries]] [[Category:Cross-platform software]] [[Category:Free audio software]] [[Category:Linux kernel features]] [[Category:Formerly proprietary software]] [[Category:Formerly open-source or free software]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:Citation
(
edit
)
Template:Cite web
(
edit
)
Template:Failed verification
(
edit
)
Template:Infobox
(
edit
)
Template:Infobox software
(
edit
)
Template:Linux kernel
(
edit
)
Template:Main other
(
edit
)
Template:Official website
(
edit
)
Template:Portal
(
edit
)
Template:Reflist
(
edit
)
Template:Short description
(
edit
)
Template:Template other
(
edit
)
Template:Tt
(
edit
)