Enlightened Sound Daemon
   HOME

TheInfoList



OR:

In
computing Computing is any goal-oriented activity requiring, benefiting from, or creating computer, computing machinery. It includes the study and experimentation of algorithmic processes, and the development of both computer hardware, hardware and softw ...
, the Enlightened Sound Daemon (ESD or EsounD) was the
sound server A sound server is software that manages the use of and access to audio devices (usually a sound card). It commonly runs as a background process. Sound server in an operating system In a Unix-like operating system, a sound server mixes differen ...
for
Enlightenment Enlightenment or enlighten may refer to: Age of Enlightenment * Age of Enlightenment, period in Western intellectual history from the late 17th to late 18th century, centered in France but also encompassing (alphabetically by country or culture): ...
and
GNOME A gnome () is a mythological creature and diminutive spirit in Renaissance magic and alchemy, introduced by Paracelsus in the 16th century and widely adopted by authors, including those of modern fantasy literature. They are typically depict ...
. Esound is a small sound daemon for both Linux and UNIX. ESD was created to provide a consistent and simple interface to the audio device, so applications do not need to have different driver support written per architecture. It was also designed to enhance capabilities of audio devices such as allowing more than one application to share an open device. ESD accomplishes these things while remaining transparent to the application, meaning that the application developer can simply provide ESD support and let it do the rest. On top of this, the API is designed to be very similar to the current audio device API, making it easy to port to ESD. ESD will mix the simultaneous audio output of multiple running programs, and output the resulting stream to the sound card. ESD can also manage
network Network, networking and networked may refer to: Science and technology * Network theory, the study of graphs as a representation of relations between discrete objects * Network science, an academic field that studies complex networks Mathematics ...
- transparent
audio Audio most commonly refers to sound, as it is transmitted in signal form. It may also refer to: Sound *Audio signal, an electrical representation of sound *Audio frequency, a frequency in the audio spectrum *Digital audio, representation of sound ...
. As such, an application that supports ESD can output audio over the network, to any connected computer that is running an ESD server. ESD support must be specifically written and added into applications, as ESD does not emulate normal audio hardware
API An application programming interface (API) is a connection between computers or between computer programs. It is a type of software interface, offering a service to other pieces of software. A document or standard that describes how to build ...
s. Since ESD has been around for over a decade, earlier than almost any other sound server, a very large number of Unix applications have support for ESD output built-in, or available as add-ons. ESD was maintained as part of the GNOME project, but as of April 2009, all ESD modules in GNOME have been ported to libcanberra for event sounds or
GStreamer GStreamer is a Pipeline (computing), pipeline-based multimedia framework that links together a wide variety of media processing systems to complete complex workflows. For instance, GStreamer can be used to build a system that reads files in one f ...
/
PulseAudio PulseAudio is a network-capable sound server program distributed via the freedesktop.org project. It runs mainly on Linux, including Windows Subsystem for Linux on Microsoft Windows and Termux on Android; various BSD distributions such as ...
for everything else. PulseAudio 2.0 completely drops ESounD support.


Architecture Overview

Esound (ESD) is a stand-alone sound daemon that abstracts the system sound device to multiple clients. Under Linux using the
Open Sound System The Open Sound System (OSS) is an interface for making and capturing sound in Unix and Unix-like operating systems. It is based on standard Unix devices system calls (i.e. POSIX read, write, ioctl, etc.). The term also sometimes refers to ...
(OSS), as well as other UNIX systems, typically only one process may open the sound device. This is not acceptable in a desktop environment like
GNOME A gnome () is a mythological creature and diminutive spirit in Renaissance magic and alchemy, introduced by Paracelsus in the 16th century and widely adopted by authors, including those of modern fantasy literature. They are typically depict ...
, as it is expected that many applications will be making sounds (music decoders, event based sounds, video conferencing, etc.). The ESD daemon connects to the sound device and accepts connections from multiple clients, mixing the incoming audio streams and sending the result to the sound device. Connections are only allowed to clients that can authenticate successfully, alleviating the concern that unauthorized users can eavesdrop via the sound device. In addition to accepting client connections from the local machine, ESD can be configured to accept client connections from remote hosts that authenticate successfully. Applications wanting to contact the ESD daemon do so using the libesd library. Much like with file i/o, an ESD connection is first opened. The ESD daemon will be spawned automatically by libesd if a daemon is not already present. Data is then either read or written to the ESD daemon. For an ESD client local to the machine that the ESD daemon is running on, the data is transferred through a local socket, then written to the sound device by the ESD daemon. For a client on a remote machine, the data is sent by libesd on the remote machine over the network to the ESD daemon. The process is completely transparent to the application using ESD.


See also

*
PulseAudio PulseAudio is a network-capable sound server program distributed via the freedesktop.org project. It runs mainly on Linux, including Windows Subsystem for Linux on Microsoft Windows and Termux on Android; various BSD distributions such as ...
– prevailing sound server for Linux desktop use *
Sndio sndio is the software layer of the OpenBSD operating system that manages sound cards and MIDI ports. It provides an optional sound server and a documented application programming interface to access either the server or the audio and MIDI hard ...
- sound server from OpenBSD *
JACK Audio Connection Kit JACK Audio Connection Kit (or JACK; a recursive acronym) is a professional sound server API and pair of daemon implementations to provide real-time, low-latency connections for both audio and MIDI data between applications. JACK was developed by ...
– prevailing sound server for professional audio production *
PipeWire PipeWire is a low-level server and multimedia framework for handling audio and video streams on Linux. Created by Wim Taymans at Red Hat, it aims to unify audio and video processing by providing low-latency capture and playback functionality. Pi ...
- new, in development, unified sound and video server which aims to be able to replace PulseAudio, JACK and
GStreamer GStreamer is a Pipeline (computing), pipeline-based multimedia framework that links together a wide variety of media processing systems to complete complex workflows. For instance, GStreamer can be used to build a system that reads files in one f ...


References


External links


Current Gnome EsounD source archive
(current Gnome releases)



{{GNOME GNOME Free audio software Enlightenment Foundation Libraries Audio libraries Audio software for Linux