Sound server
Encyclopedia
A sound server is software that manages the use of and access to audio devices, most notably, the soundcard. It usually runs as a background process. The term could also apply to a complete computer which is in a server
Server (computing)
In the context of client-server architecture, a server is a computer program running to serve the requests of other programs, the "clients". Thus, the "server" performs some computational task on behalf of "clients"...

 role, dedicated to audio streaming
Streaming media
Streaming media is multimedia that is constantly received by and presented to an end-user while being delivered by a streaming provider.The term "presented" is used in this article in a general sense that includes audio or video playback. The name refers to the delivery method of the medium rather...

 or a networked
Computer network
A computer network, often simply referred to as a network, is a collection of hardware components and computers interconnected by communication channels that allow sharing of resources and information....

 or stand-alone appliance for playing sound
Sound
Sound is a mechanical wave that is an oscillation of pressure transmitted through a solid, liquid, or gas, composed of frequencies within the range of hearing and of a level sufficiently strong to be heard, or the sensation stimulated in organs of hearing by such vibrations.-Propagation of...

s and sound files
Computer file
A computer file is a block of arbitrary information, or resource for storing information, which is available to a computer program and is usually based on some kind of durable storage. A file is durable in the sense that it remains available for programs to use after the current program has finished...

.

Sound server in an operating system


In a Unix-like
Unix-like
A Unix-like operating system is one that behaves in a manner similar to a Unix system, while not necessarily conforming to or being certified to any version of the Single UNIX Specification....

 operating system, the main task of a sound server is performing the mix of different data streams and send out a single unified audio output device of system. This mixture is usually done by software, or hardware if there is a supported sound card
Sound card
A sound card is an internal computer expansion card that facilitates the input and output of audio signals to and from a computer under control of computer programs. The term sound card is also applied to external audio interfaces that use software to generate sound, as opposed to using hardware...

.

Layers

The "sound stack" can be visualized as follows, with programs in the upper layers calling elements in the lower layers:
  • Applications (e.g. mp3 player, web video)
  • Sound server (e.g. aRts, ESD, JACK, PulseAudio)
  • Sound subsystem (described as kernel modules or drivers; e.g. OSS, ALSA)
  • Operating system kernel (e.g. Linux
    Linux
    Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...

    , Unix
    Unix
    Unix is a multitasking, multi-user computer operating system originally developed in 1969 by a group of AT&T employees at Bell Labs, including Ken Thompson, Dennis Ritchie, Brian Kernighan, Douglas McIlroy, and Joe Ossanna...

    )

Motivation

Sound servers appeared in Unix-like operating systems after limitations in Open Sound System
Open Sound System
The Open Sound System is an interface for making and capturing sound in Unix or Unix-like operating systems. It is based on standard Unix devices...

 were recognized. OSS is a basic sound interface that was incapable of playing multiple streams simultaneously, dealing with multiple sound cards, or streaming sound over the network.

A sound server can provide these features by running as a daemon
Daemon (computer software)
In Unix and other multitasking computer operating systems, a daemon is a computer program that runs as a background process, rather than being under the direct control of an interactive user...

. It receives calls from different programs and sound flows, mixes the streams, and sends raw audio out to the audio device.

With a sound server, users can also configure global and per-application sound preferences.

Diversification and problems

Currently, there are multiple sound servers; some are focused on providing very low latency while others concentrate on features suitable for general desktop systems. While diversification allows a user to choose just the features that are important to a particular application, it also forces developers to accommodate these options by necessitating code that is compatible with the various sound servers available. Consequently, this variety has resulted in a desire for a standard API to unify efforts.

List of sound servers

  • aRts
    ARts
    aRts, which stands for analog Real time synthesizer, is an audio framework that is no longer under development. It is best known for previously being used in KDE to simulate an analog synthesizer....

  • aucat - OpenBSD audio server
  • Bergen Sound Server
  • Enlightened Sound Daemon
    Enlightened Sound Daemon
    In computing, the Enlightened Sound Daemon is the sound server for Enlightenment and GNOME.ESD will mix together the simultaneous audio output of multiple running programs, and output the resulting stream to the sound card....

  • JACK
    JACK Audio Connection Kit
    JACK is a professional sound server daemon that provides real-time, low latency connections for both audio and MIDI data between applications that implement its API...

  • Network Audio System
    Network Audio System
    The Network Audio System is an open-source, network-transparent, client–server audio transport system. It can be described as the audio equivalent of the X Window System. NAS works on Unix and Microsoft Windows platforms. The project began in the early 1990s...

  • PulseAudio
    PulseAudio
    PulseAudio is a cross-platform, networked sound server commonly used on the Linux-based and FreeBSD operating systems.PulseAudio runs under Microsoft Windows, Mac OS X, and POSIX-compliant platforms, such as Linux and FreeBSD...


External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK