Asound serverissoftwarethat manages the use of and access toaudiodevices (usually asound card). It commonly runs as abackground process.

Sound server in an operating system

edit
Description of layers that uses a Sound Server

In aUnix-likeoperating system, a sound server mixes different data streams (usually rawPCM audio) and sends out a single unified audio to an output device. The mixing is usually done by software, or by hardware if there is a supportedsound card.

Layers

edit

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

edit

Sound servers appeared in Unix-like operating systems after limitations inOpen Sound Systemwere 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 adaemon.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

edit

As of 2012there are multiple sound servers; some focus 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

edit

Streaming

edit

References

edit


edit