Jump to content

Sound server

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Beland (talk | contribs) at 06:36, 20 March 2010 ({{unreferenced}}, +Network Audio System, make external links better conform to policy (mostly defer to linked articles)). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

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 role, dedicated to audio streaming or a networked or stand-alone appliance for playing sounds and sound files.

Sound server in an operating system

In a Unix-like 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.

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, Unix)

Motivation

Sound servers appeared in Unix-like operating systems after limitations in Open Sound System 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.

Sound servers add these features by running as a daemon system working in the background. They receive calls from different programs and sound flows, mix the streams, and send out to the audio device raw audio. Users can also use these calls to configure global and per-application sound preferences. These servers take advantage of features provided by generic sound card programming interfaces, such as ALSA.

Diversification and problems

Currently, there are multiple sound servers, some are focused on providing very low latency, and others, offer general features for desktop systems. This variety has resulted in some arguing that a standard API is necessary to focus efforts on a single server sound. With the diversification of servers, a user can choose which option to use. Developers must attempt to accommodate these options by writing code compatible with the various sound servers available.

List of sound servers

Streaming

References