Copyright 2004 Lennart Poettering <@PACKAGE_BUGREPORT@>
This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
Version 0.7 released; changes include: IPv6 support; PID file support; publish credentials in X11 root window (module-x11-publish; new tool pacmd; ESOUND backend; new command load-sample-dir-lazy; many, many minor fixes.
Version 0.6 released; changes include: TCP wrappers support; don't load the complete sound file into memory when playing back using pa_play_file(); autoload API change; don't load all sound files as FLOAT32; shorten default buffers; client-side latency interpolation; add new user volume metrics; add module-tunnel, module-null-sink, module-match and new tool paplay; new API version macros; many client API improvements; correctly lock cookie file generation; correctly lock daemon autospawning; print daemon layout to STDERR on SIGHUP; new options for pacat: allow sample type specification.
Version 0.5.1 released; changes include: improve esound protocol compatibility; fix autospawning via libesd; make use of POSIX capabilities; allow SCHED_FIFO scheduling only for users in group realtime; minor build system fix.
Version 0.5 released; changes include: extensive API improvements, new module module-combine for combining multiple sound cards into one, gcc 2.95 compatibility, configuration files, add "lazy" samples, support for source and network latency measurements, add module-pipe-source, many other fixes and improvements.
Version 0.4 released; changes include: daemon auto spawning, support for SCHED_FIFO scheduling, three new modules, proper logging, CPU load watchdog, many fixes.
Version 0.3 released; changes include: support for both glib 2.0 and glib 1.2, future cancellation, API updates, many fixes, relicense client library to LGPL.
Version 0.2 released; changes include: added sample cache, introspection API, client API documentation, module autoloading, glib support, a module for intercepting X11 bell events, and much more.
Version 0.1 released
polypaudio is a sound server for Linux and other Unix like operating systems. It is intended to be an improved drop-in replacement for the Enlightened Sound Daemon (ESOUND). It is my ultimate ambition to get Polypaudio into Gnome as a replacement for ESOUND. In addition to the features ESOUND provides polypaudio has:
Both the core and the client API are completely asynchronous making use of a simple main loop abstraction layer. This allows easy integration with asynchronous applications using the glib/gtk mainloop. Since the asynchronous API available through polyplib is quite difficult to use there is a simplified synchronous API wrapper polyplib-simple available. A simple main loop implementation is available as well.
The following modules are currently available:
polypaudio is the successor of my previous, ill-fated attempt to write a sound server, asd.
A GTK GUI manager application for polypaudio is the Polypaudio Manager. Another GTK GUI tool for Polypaudio is the Polypaudio Volume Meter.
There are output plugins for XMMS, libao (merged in libao SVN) and gstreamer (merged in gstreamer-plugins CVS), MPlayer (merged in MPlayer CVS) and Xine (merged in Xine CVS). Drivers for PortAudio will be released shortly.
Version @PACKAGE_VERSION@ is quite usable. It matches and supersedes ESOUND's feature set in nearly all areas.
Warning: polypaudio's client API and protocol are not stable yet. The client interface is still a moving target and changes from release to release. The client API's library version number is currently fixed to 0.0.0.
There is some preliminary documentation available: modules.html, cli.html, daemon.html, FAQ.html, .
Simply start the polypaudio daemon with the argument -nC
polypaudio -nC
This will present you a screen like this:
Welcome to polypaudio! Use "help" for usage information. >>>
Now you can issue CLI commands as described in cli.html. Another way to start polypaudio is by specifying a configuration script like that one included in the distribution on the command line :
polypaudio -nF polypaudio.pa
This will load some drivers and protocols automatically.
The best idea is to configure your daemon in /etc/polypaudio/daemon.conf and /etc/polypaudio/default.pa and to run polypaudio without any arguments.
Beware! Unless you pass the option --sysconfdir=/etc to configure, the directory /etc/polypaudio/ is really /usr/local/etc/polypaudio/.
You may browse the Doxygen generated programing documentation for the client API. (Run make doxygen to generate this documentation from the source tree)
There are several reasons for writing loadable modules for polypaudio:
There is currently no documentation how to write loadable modules for polypaudio. Read the source, Luke! If you are interested in writing new modules feel free to contact the author in case you have any questions.
Currently, polypaudio is tested on Linux and FreeBSD only. It requires an OSS or ALSA compatible soundcard.
polypaudio was developed and tested on Debian GNU/Linux "testing" from November 2004, it should work on most other Linux distributions (and maybe Unix versions) since it uses GNU autoconf and GNU libtool for source code configuration and shared library management.
polypaudio needs libwrap, Secret Rabbit Code (aka libsamplerate), libsndfile, alsa-lib and GLIB. (The latter is required for building the GLIB main loop integration module only.)
As this package is made with the GNU autotools you should run ./configure inside the distribution directory for configuring the source tree. After that you should run make for compilation and make install (as root) for installation of polypaudio.
Eric B. Mitchell for writing ESOUND
Jeff Waugh for creating Ubuntu packages (and hopefully soon Debian)
Miguel Freitas for writing a Polypaudio driver for Xine
Joe Marcus Clarke for porting Polypaudio to FreeBSD
The newest release is always available from @PACKAGE_URL@
The current release is @PACKAGE_VERSION@
Get polypaudio's development sources from the Subversion repository (viewcvs):
svn checkout svn://seth.intheinter.net/polypaudio/trunk polypaudio
If you want to be notified whenever I release a new version of this software use the subscription feature of Freshmeat.
New! There is a general discussion mailing list for polypaudio available.
New! There is now a Polypaudio wiki (based on trac) available.