EsounD - alpha version - 0.2.1
So you've got your (insert sound playing program here) cruising
at full tilt, and you want to check out this cool Monty Python
quote, but you don't want to kill the original sound? This is
just the fix, with a little tweaking, of course. =P
The Enlightened Sound Daemon can mix several audio streams
into one sound device. It will mix in pre-loaded samples, too.
Want to play a frightening sound whenever the user presses the
"go" button? No problem, just cache it, and play it
back by sample id number.
Caveats
This is hot off the presses software, get it while it's
still hot. Seriously, don't download this unless you're willing
to help debug, test thoroughly, port other players, etc. It's
still got a ways to go yet. Be prepared for a bumpy ride. Any
and all reasonable patches and improvements accepted.
Requirements
The Enlightened Sound Daemon requires the following:
Linux, version 2.??? or higher. I run 2.0.33, but I don't think
the sound API has significantly changed recently. If you find
it to be incompatible with different kernel/OSS revs, let me know.
The incompatability with recent 2.1.xx kernels has been fixed.
And of course, a sound device.
Currently, this only runs under Linux. I will work on porting
to SGI/Irix soon. Ports to other platforms are requested.
Known Problems, Deficiencies, and Possible Workarounds:
This should probably have some documentation as to the API, but
for now it's still in development (i.e. subject to change).
See the sample command line driver utilities (esd?*) for usage.
Any other pressing issues or patches may be directed to
ericmit@ix.netcom.com.
Please mention "EsounD v0.2.1" in the subject line.
I occasionally hang out in the #E irc channel as ricdude
.
New Features
Version 0.2.1
- the configure style installation now works if you don't already
have a previous version installed. Evil gnu automake >=P
- better handling of "dead" time: should use 0% cpu if it's
not actually doing anything
Version 0.2
- a configure style installation is now available.
- added network support
- optional /dev/dsp fallback for stream play and record
- other forgotten features and bug fixes
Downloading, Compiling, and Installing
Simply download the EsounD archive from
ftp://ftp.enlightenment.org/pub/ricware/esound-0.2.1.tar.gz -
(Alternate)
and extract the contents of the archive.
To compile the package, change to the newly created
"esound-0.2.1" directory, and type
"configure ; make".
The sound daemon, and the command line toolset should build as is.
All executables should run fine from the source directory.
You may need to "export LD_LIBRARY_PATH=`pwd`" (for sh/bash)
or "setenv LD_LIBRARY_PATH `pwd`" (for csh/tcsh), for the
dynamically linked libs to link properly.
As root, type "make install". This should copy all
relevant files to useful/accessible places.
Running EsounD
- esd
- the Enlightened Sound Daemon.
* options for esd - -port <port> = accept connections on port
(default=5001)
- esdctl
controls certain aspects of the sound daemon.
options are lock, unlock, standby, resume.
- lock - only the "owner" of the daemon can play sounds. the first
key (16 bytes) submitted to the daemon identified the owner.
- unlock - anyone can play sounds through the daemon.
- standby - frees the audio device for use by other programs. all sounds
are ignored until the daemon is resumed.
- resume - brings daemon out of standby mode
more than one option may be listed on the command line
* in addition, "kill -HUP <esd-pid>" resets ownership of the daemon.
* the file, ~/.esd-auth, is used to determine identity, and is created at random if needed.
- esdcat
- plays a raw audio stream through the daemon
- esdmon
- outputs the mixed stream from the daemon
- esdrec
- outputs from the sound device's current input
* options for cat,mon,rec - default to 16 bit signed short, stereo, 44.1kHz
* -b = 8 bit unsigned char, -m = mono, -r <rate> = sample rate of rate Hz.
- esdsample
- test scaffolding for sample cache, play back, and free.
- esdloop
- test scaffolding for sample cache, loop, and free.
* options for esdsample, esdloop
- same as above, but must specify a file on command line.
** all client programs can connect to remote hosts via the ESPEAKER environment
variable: export ESPEAKER=inet.addr.of.host:port
for bash;
setenv ESPEAKER inet.addr.of.host:port
for tcsh. The client will
connect to EsounD running on the specified host on the specified port.
Planned Development and Top Suggestions So Far...
Porting of sound playing applications. It shouldn't be *too* hard.
Anyone willing to lend a hand in this effort will be duly appreciated.
Planned Feature Additions:
- See the TODO file for unorganized thoughts about where to go from here
Potentially Useful Links
[ Ric's Home ] -
[ Ric's E Page ] -
[ Econfig ] -
[ EsounD ] -
[ Links ]
brave souls have dared to view this page's evil content.
Page created by:
ericmit@ix.netcom.com
Changes last made on: April 29, 1998