Sound server

From Wikipedia, the free encyclopedia
Jump to: navigation, search

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.

Contents

[edit] Sound server in an operating system

Description of layers that uses a Sound Server

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.

[edit] 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)

[edit] 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.

A sound server can provide these features by running as a daemon. 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.

[edit] 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.

[edit] List of sound servers

[edit] Streaming

[edit] References

  1. ^ EVL.uic.edu
  2. ^ Openbsd.org

[edit] External links

Personal tools
Namespaces
Variants
Actions
Navigation
Interaction
Toolbox
Print/export
Languages