mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2025-10-29 05:40:23 -04:00
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@239 fefdeb5f-60dc-0310-8127-8f9354f1896f
245 lines
12 KiB
XML
245 lines
12 KiB
XML
<?xml version="1.0" encoding="iso-8859-1"?> <!-- -*-html-helper-*- -->
|
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
|
|
|
<head>
|
|
<title>polypaudio @PACKAGE_VERSION@</title>
|
|
<link rel="stylesheet" type="text/css" href="style.css" />
|
|
</head>
|
|
|
|
<body>
|
|
<h1><a name="top">polypaudio @PACKAGE_VERSION@</a></h1>
|
|
|
|
<p><i>Copyright 2004 Lennart Poettering <@PACKAGE_BUGREPORT@></i></p>
|
|
|
|
<ul class="toc">
|
|
<li><a href="#license">License</a></li>
|
|
<li><a href="#news">News</a></li>
|
|
<li><a href="#overview">Overview</a></li>
|
|
<li><a href="#status">Status</a></li>
|
|
<li><a href="#documentation">Documentation</a></li>
|
|
<li><a href="#requirements">Requirements</a></li>
|
|
<li><a href="#installation">Installation</a></li>
|
|
<li><a href="#acks">Acknowledgements</a></li>
|
|
<li><a href="#download">Download</a></li>
|
|
</ul>
|
|
|
|
<h2><a name="license">License</a></h2>
|
|
|
|
<p>This program is free software; you can redistribute it and/or
|
|
modify it under the terms of the GNU General Public License as
|
|
published by the Free Software Foundation; either version 2 of the
|
|
License, or (at your option) any later version.</p>
|
|
|
|
<p>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
|
|
General Public License for more details.</p>
|
|
|
|
<p>You should have received a copy of the GNU General Public License
|
|
along with this program; if not, write to the Free Software
|
|
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.</p>
|
|
|
|
<p><i>Exception: The client libraries are licensed under LGPL, the Lesser GNU General Plublic License.</i></p>
|
|
|
|
<h2><a name="news">News</a></h2>
|
|
|
|
<div class="news-date">Mon Sep 24 2004: </div> <p class="news-text"><a
|
|
href="@PACKAGE_URL@polypaudio-0.5.1.tar.gz">Version 0.5.1</a> released;
|
|
changes include: improve esound protocol compatibility; fix
|
|
autospawning via <tt>libesd</tt>; make use of POSIX capabilities;
|
|
allow <tt>SCHED_FIFO</tt> scheduling only for users in group
|
|
<tt>realtime</tt>; minor build system fix.</p>
|
|
|
|
<div class="news-date">Mon Sep 20 2004: </div> <p class="news-text"><a
|
|
href="@PACKAGE_URL@polypaudio-0.5.tar.gz">Version 0.5</a> released;
|
|
changes include: extensive API improvements, new module
|
|
<tt>module-combine</tt> for combining multiple sound cards into one,
|
|
gcc 2.95 compatibility, configuration files, add "lazy" samples,
|
|
support for source and network latency measurements, add
|
|
<tt>module-pipe-source</tt>, many other fixes and improvements.</p>
|
|
|
|
<div class="news-date">Wed Sep 8 2004: </div> <p class="news-text"><a
|
|
href="@PACKAGE_URL@polypaudio-0.4.tar.gz">Version 0.4</a> released;
|
|
changes include: daemon auto spawning, support for <tt>SCHED_FIFO</tt> scheduling, three new modules, proper logging, CPU load watchdog, many fixes.</p>
|
|
|
|
<div class="news-date">Fri Aug 27 2004: </div> <p class="news-text"><a
|
|
href="@PACKAGE_URL@polypaudio-0.3.tar.gz">Version 0.3</a> released;
|
|
changes include: support for both glib 2.0 and glib 1.2, future cancellation, API updates, many fixes, relicense client library to LGPL.</p>
|
|
|
|
<div class="news-date">Fri Aug 20 2004: </div> <p class="news-text"><a
|
|
href="@PACKAGE_URL@polypaudio-0.2.tar.gz">Version 0.2</a> 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.</p>
|
|
|
|
<div class="news-date">Sat Jul 17 2004: </div> <p class="news-text"><a
|
|
href="@PACKAGE_URL@polypaudio-0.1.tar.gz">Version 0.1</a> released</p>
|
|
|
|
<h2><a name="overview">Overview</a></h2>
|
|
|
|
<p><tt>polypaudio</tt> is a sound server for Linux and other Unix like
|
|
operating systems. It is intended to be an improved drop-in
|
|
replacement for the <a
|
|
href="http://www.tux.org/~ricdude/apps.html">Enlightened Sound
|
|
Daemon</a> (ESOUND). In addition to the features ESOUND provides
|
|
<tt>polypaudio</tt> has:</p>
|
|
|
|
<ul>
|
|
<li>Extensible plugin architecture (by loading dynamic loadable modules with <tt>dlopen()</tt>)</li>
|
|
<li>Support for more than one sink/source</li>
|
|
<li>Better low latency behaviour</li>
|
|
<li>Embedabble into other software (the core is available as C library)</li>
|
|
<li>Completely asynchronous C API</li>
|
|
<li>Simple command line interface for reconfiguring the daemon while running</li>
|
|
<li>Flexible, implicit sample type conversion and resampling</li>
|
|
<li>"Zero-Copy" architecture</li>
|
|
<li>Module autoloading</li>
|
|
<li>Very accurate latency measurement for playback and recordin.</li>
|
|
<li>May be used to combine multiple sound cards to one (with sample rate adjustment)</li>
|
|
</ul>
|
|
|
|
<p>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
|
|
<tt>glib</tt>/<tt>gtk</tt> mainloop. Since the asynchronous API
|
|
available through <tt>polyplib</tt> is quite difficult to use there is
|
|
a simplified synchronous API wrapper <tt>polyplib-simple</tt>
|
|
available. A simple main loop implementation is available as well.</p>
|
|
|
|
<p>The following modules are currently available:</p>
|
|
|
|
<ul>
|
|
<li><tt>module-oss</tt>: driver for Open Sound System audio sinks and sources.</li>
|
|
<li><tt>module-oss-mmap</tt>: same as above, but uses <tt>mmap()</tt> access to the audio buffer. Not as compatible</li>
|
|
<li><tt>module-alsa-sink</tt>, <tt>module-alsa-source</tt>: drivers for ALSA sinks and sources</li>
|
|
<li><tt>module-pipe-sink</tt>, <tt>module-pipe-source</tt>: demonstration module providing UNIX fifos backed sinks/sources</li>
|
|
<li><tt>module-combine</tt>: combine multiple sinks into one.</li>
|
|
<li><tt>module-sine</tt>: a sine generate sink input.</li>
|
|
<li><tt>module-x11-bell</tt>: play a sample from the sample cache on every X11 bell event.</li>
|
|
<li><tt>module-esound-protocol-tcp</tt>, <tt>module-esound-protocol-unix</tt>: ESOUND compatibility modules (for TCP/IP resp. UNIX domain sockets)</li>
|
|
<li><tt>module-native-protocol-tcp</tt>, <tt>module-native-protocol-unix</tt>: Native polypaudio protocol (for TCP/IP resp. UNIX domain sockets)</li>
|
|
<li><tt>module-simple-protocol-tcp</tt>, <tt>module-simple-protocol-unix</tt>: Simplistic protocol for playback/capture for usage with tools like <tt>netcat</tt> (for TCP/IP resp. UNIX domain sockets)</li>
|
|
<li><tt>module-cli-protocol-tcp</tt>, <tt>module-cli-protocol-unix</tt>, <tt>module-cli</tt>: Expose polypaudio's internals whith a simple command line interface. (for TCP/IP resp. UNIX domain sockets resp. STDIN/STDOUT)</li>
|
|
</ul>
|
|
|
|
<p><tt>polypaudio</tt> is the successor of my previous, ill-fated
|
|
attempt to write a sound server, <a
|
|
href="http://asd.sf.net/">asd</a>.</p>
|
|
|
|
<p>A GTK GUI manager application for polypaudio is the <a
|
|
href="http://0pointer.de/lennart/projects/paman/">Polypaudio
|
|
Manager</a>. Another GTK GUI tool for Polypaudio is the <a
|
|
href="http://0pointer.de/lennart/projects/pavumeter">Polypaudio Volume
|
|
Meter</a>. There are output plugins for <a
|
|
href="http://0pointer.de/lennart/projects/xmms-polyp/">XMMS</a> and <a
|
|
href="http://0pointer.de/lennart/projects/libao-polyp/">libao</a>. Drivers
|
|
for <a href="http://gstreamer.net">gstreamer</a> and <a
|
|
href="http://mplayerhq.hu">MPlayer</a> will be released shortly.</p>
|
|
|
|
<h2><a name="status">Status</a></h2>
|
|
|
|
<p>Version @PACKAGE_VERSION@ is quite usable. It matches and supersedes ESOUND's feature set in nearly all areas.</p>
|
|
|
|
<p><b>Warning:</b> 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 <tt>0.0.0</tt>.</p>
|
|
|
|
<h2><a name="documentation">Documentation</a></h2>
|
|
|
|
<p>There is some preliminary documentation available: <a
|
|
href="modules.html"><tt>modules.html</tt></a>, <a
|
|
href="cli.html"><tt>cli.html</tt></a>, <a
|
|
href="daemon.html"><tt>daemon.html</tt></a>, <a href="FAQ.html"><tt>FAQ.html</tt></a>, .</p>
|
|
|
|
<h3>First Steps</h3>
|
|
|
|
<p>Simply start the polypaudio daemon with the argument <tt>-nC</tt></p>
|
|
|
|
<pre>polypaudio -nC</pre>
|
|
|
|
<p>This will present you a screen like this:</p>
|
|
|
|
<pre>Welcome to polypaudio! Use "help" for usage information.
|
|
>>> </pre>
|
|
|
|
<p>Now you can issue CLI commands as described in <a
|
|
href="cli.html"><tt>cli.html</tt></a>. Another way to start
|
|
<tt>polypaudio</tt> is by specifying a configuration script like that one included in the distribution on the
|
|
command line :</p>
|
|
|
|
<pre>polypaudio -nF polypaudio.pa</pre>
|
|
|
|
<p>This will load some drivers and protocols automatically.</p>
|
|
|
|
<p>The best idea is to configure your daemon in <tt>/etc/polypaudio/daemon.conf</tt> and <tt>/etc/polypaudio/default.pa</tt> and to run polypaudio without any arguments.</p>
|
|
|
|
<h3>Developing polypaudio Clients</h3>
|
|
|
|
<p>You may browse the <a href="http://www.doxygen.org/">Doxygen</a> generated <a
|
|
href="http://0pointer.de/lennart/projects/polypaudio/doxygen/">programing
|
|
documentation</a> for the client API. (Run <tt>make doxygen</tt> to generate this documentation from the source tree)</p>
|
|
|
|
<h3>Developing polypaudio Modules</h3>
|
|
|
|
<p>There are several reasons for writing loadable modules for polypaudio:</p>
|
|
|
|
<ul>
|
|
<li>Device driver support in addition to ALSA/OSS</li>
|
|
<li>Protocol support beyond ESOUND's protocol and the native protocol. (such as NAS or a subset of aRts)</li>
|
|
<li>New programming interfaces such as XMLRPC or DBUS for controlling the daemon.</li>
|
|
<li>Hooking audio event sources directly into polypaudio (similar to <tt>module-x11-bell</tt>)</li>
|
|
<li>For low latency applications such as VOIP: load the VOIP core directly into polypaudio and have a slim GUI frontend to control it.</li>
|
|
</ul>
|
|
|
|
<p>There is currently no documentation how to write loadable modules
|
|
for polypaudio. <i>Read the source, Luke!</i> If you are interested in
|
|
writing new modules feel free to contact the author in case you have any
|
|
questions.</p>
|
|
|
|
<h2><a name="requirements">Requirements</a></h2>
|
|
|
|
<p>Currently, <tt>polypaudio</tt> is tested on Linux only. It requires an OSS or ALSA compatible soundcard.</p>
|
|
|
|
<p><tt>polypaudio</tt> was developed and tested on Debian GNU/Linux
|
|
"testing" from July 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.</p>
|
|
|
|
<p><tt>polypaudio</tt> needs <a
|
|
href="http://www.mega-nerd.com/SRC/">Secret Rabbit Code (aka
|
|
<tt>libsamplerate</tt>)</a>, <a href="http://www.mega-nerd.com/libsndfile"><tt>libsndfile</tt></a>, <a
|
|
href="http://www.alsa-project.org/">alsa-lib</a> and <a href="http://www.gtk.org/">GLIB</a>. (The latter is required for building the GLIB main loop integration module only.)</p>
|
|
|
|
<h2><a name="installation">Installation</a></h2>
|
|
|
|
<p>As this package is made with the GNU autotools you should run
|
|
<tt>./configure</tt> inside the distribution directory for configuring
|
|
the source tree. After that you should run <tt>make</tt> for
|
|
compilation and <tt>make install</tt> (as root) for installation of
|
|
<tt>polypaudio</tt>.</p>
|
|
|
|
<h2><a name="acks">Acknowledgements</a></h2>
|
|
|
|
<p>Eric B. Mitchell for writing ESOUND</p>
|
|
|
|
<h2><a name="download">Download</a></h2>
|
|
|
|
<p>The newest release is always available from <a href="@PACKAGE_URL@">@PACKAGE_URL@</a></p>
|
|
|
|
<p>The current release is <a href="@PACKAGE_URL@polypaudio-@PACKAGE_VERSION@.tar.gz">@PACKAGE_VERSION@</a></p>
|
|
|
|
<p>Get <tt>polypaudio</tt>'s development sources from the <a href="http://subversion.tigris.org/">Subversion</a> <a href="svn://seth.intheinter.net/polypaudio/">repository</a> (<a href="http://0pointer.de/cgi-bin/viewcvs.cgi/?root=polypaudio">viewcvs</a>): </p>
|
|
|
|
<pre>svn checkout svn://seth.intheinter.net/polypaudio/trunk polypaudio</pre>
|
|
|
|
<p>If you want to be notified whenever I release a new version of this software use the subscription feature of <a href="http://freshmeat.net/projects/polypaudio/">Freshmeat</a>.</p>
|
|
|
|
<p><b>New!</b> There is a general discussion <a href="https://seth.intheinter.net/mailman/listinfo/polypaudio-discuss">mailing list for polypaudio</a> available.</p>
|
|
|
|
<hr/>
|
|
<address class="grey">Lennart Poettering <@PACKAGE_BUGREPORT@>, September 2004</address>
|
|
<div class="grey"><i>$Id$</i></div>
|
|
|
|
</body>
|
|
</html>
|