There will be a Linux/Gnome Sound BOF on Friday, 4:00 p.m. I will be there, promoting PulseAudio, as will be Marc-Andre of GSmartMix frame. Everyone interested in the future of audio in Gnome is welcome to join us!
Due to the generosity of the GNOME Foundation I have been able to get to the GUADEC 2006 this year. I'd like to thank Jeff Waugh and Quim Gil for the "last-minute" funding of my trip to Vilanova, and all the sponsors who actually are providing the funds. If anyone wants to talk to me about Avahi and/or PulseAudio (aka Polypaudio) (or any of my other projects), just try to find and speak to me. (Bungalow 870)
In related news, the new PulseAudio homepage will be "inaugurated" soon, becoming the official new home of PulseAudio/Polypaudio as soon as we release 0.9.2, which hopefully will be pretty soon.
It came to our attention that some people really disliked the name of Polypaudio, because it reminded them of that medical condition, though the software was actually named after the sea dweller. I actually liked that double entendre, but many did not and expressed concerns that the name would hinder Polypaudio's adoption. After a long discussion on #polypaudio we came to the conclusion that a name change is a good idea in this case. Name changes are usually a bad idea, but this time it's worth it, we think.
The new name we agreed on is PulseAudio, or shorter just Pulse. It has the nice advantage that it abbreviates to pa, just as Polypaudio did. This allows us to keep source code compatiblity (and binary compatibility to a certain degree) with the current releases of Polypaudio, because the symbol prefix can stay pa_. In addition the auxiliary tools paman, pavucontrol, pavumeter need not to be renamed.
We will try to make the transition as smooth as possible and would like to apologize to all the packagers, who need to rename their packages now.
The next release of Polypaudio (0.9.2) will be a bugfix release and be the first to bear the new name: PulseAudio 0.9.2.
Polypaudio is dead. Long live PulseAudio!
The current issue of the Linux Weekly News features a short article about Polypaudio. (The article is not (yet) accessible for free, come back in a week if you aren't an LWN subscriber.)
Quoting:
With its support for a wide variety of popular audio utilities, actively developed code, and broad capabilities, the Polypaudio project fills an important role in Linux-based audio development.
Polypaudio needs a logo! If you have some time to spare and graphic talent please send us your suggestions! Perhaps something in a nice Tango design? See Wikipedia to for an explanation what a polyp is.
Please send your suggestions to lennart (at) poettering (dot) net or join #polypaudio on freenode.
I opened an RFP for Polypaudio 0.9.0 in the Debian BTS. Anyone interested?
Update: We have found a volunteer in Franz Pletz.
We are proud to announce Polypaudio 0.9.0. This is a major step ahead since we decided to freeze the current API. From now on we will maintain API compability (or at least try to). To emphasize this starting with this release the shared library sonames are properly versioned. While Polypaudio 0.9.0 is not API/ABI compatible with 0.8 it is protocol compatible.
Other notable changes beyond bug fixing, bug fixing and bug fixing are: a new Open Sound System /dev/dsp wrapper named padsp and a module module-volume-restore have been added.
padsp works more or less like that ESOUND tool known as esddsp. However, it is much cleaner in design and thus works with many more applications than the original tool. Proper locking is implemented which allows it to work in multithreaded applications. In addition to mere /dev/dsp emulation it wraps /dev/sndstat and /dev/mixer. Proper synchronization primitives are also available, which enables lip-sync movie playback using padsp on mplayer. Other applications that are known to work properly with padsp are aumix, libao, XMMS, sox. There are some things padsp doesn't support (yet): that's most notably recording, and mmap() wrapping. Recording will be added in a later version. mmap() support is available in esddsp but not in padsp. I am reluctant to add support for this, because it cannot work properly when it comes to playback latency handling. However, latency handling this the primary reasoning for using mmap(). In addition the hack that is included in esddsp works only for Quake2 and Quake3, both being Free Software now. It probably makes more sense to fix those two games than implementing a really dirty hack in padsp. Remember that you can always use the original esddsp tools since Polypaudio offers full protocol compatibility with ESOUND.
module-volume-restore is a small module that stores the volume of all playback streams and restores them when the applications which created them creates a new stream. If this module is loaded, Polypaudio will make sure that you Gaim sounds are always played at low volume, while your XMMS music is always played at full volume.
Besides the new release of Polypaudio itself we released a bunch of other packages to work with the new release:
- gst-polyp 0.9.0, a Polypaudio plugin for GStreamer 0.10. The plugin is quite sophisticated. In fact it is probably the only sink/source plugin for GStreamer that reaches the functionality of the ALSA plugin that is shipped with upstream. It implements the GstPropertyProbe and GstImplementsInterface interfaces, which allow gnome-volume-meter and other GStreamer tools to control the volume of a Polypaudio server. The sink element listens for GST_EVENT_TAG events, and can thus use ID3 tags and other meta data to name the playback stream in the Polypaudio server. This is useful to identify the stream in the Polypaudio Volume Control. In short: Polypaudio 0.9.0 now offers first class integration into GStreamer.
- libao-polyp 0.9.0, a simple plugin for libao, which is used for audio playback by tools like ogg123 and Gaim, besides others.
- xmms-polyp 0.9.0, an output plugin for XMMS. As special feature it uses the currently played song name for naming the audio stream in Polypaudio.
- Polypaudio Manager 0.9.0, updated for Polypaudio 0.9.0
- Polypaudio Volume Control 0.9.0, updated for Polypaudio 0.9.0
- Polypaudio Volume Meter 0.9.0, updated for Polypaudio 0.9.0
A screenshot showing most of this in action:
This screenshot shows: the Polypaudio Manager, the Polypaudio Volume Control, the Polypaudio Volume Meter, the XMMS plugin, the GStreamer plugin used by Rhythmbox and gstreamer-properties, pacat playing some noise from /dev/urandom, padsp used on MPlayer. (This screenshot actually shows some post-0.9.0 work, like the icons used by the application windows)
Scott Herscher decided to cease development of HOWL. That means only Avahi and Bonjour are left as widely known mDNS/DNS-SD implementations.
Scott, your work on HOWL has not been in vain. Many Linux/Free Software people (including me) learned to know Zeroconf with your software. Without the troubles surrounding the licensing, I would never have started what is now known as Avahi, and HOWL would still be the number one of the Linux mDNS/DNS-SD implementations.
The HOWL legacy will live on, since Avahi includes a HOWL compatibility layer which will be kept around for a while.
A year and a few weeks ago Trent and I decided to merge our efforts and form Avahi from our seperate works. I wonder how much time it will take us until we see a similar R.I.P. note from the Bonjour camp, on our route to AVAHI WORLD DOMINATION. ;-)
In contrast to what Scott wrote in his announcement, Avahi is far from being strictly Linux. Avahi has been ported to FreeBSD, OpenBSD, MacOSX and recently (not yet official) Solaris. (However, he's right with what he writes about me.)


