In a Unix-like operating system, a sound server mixes different data streams (usually raw PCM 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 supported sound card.
As of 2012[update] there 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.