Tag Archives: PulseAudio

Conferences: UDS, FOMS and LCA

Post Syndicated from Lennart Poettering original http://0pointer.net/blog/projects/conferences.html

To my surprise I have been invited to the Ubuntu Developers Summit in
Mountain View early next month (as a “ROCKSTAR”, to quote Mark), to promote PulseAudio. And that although I am not an
Ubuntu developer, nor even much of an Ubuntu user. I’ll be available for
discussing everything Multimedia/PulseAudio related. While I’ve not been
invited because of my involvement in Avahi/Zeroconf I will, of course, also be
available for discussion of these topics. As it appears, Canonical is not
resentful
, or maybe it’s just their way to bribe me into registering with
Launchpad? 😉

After UDS I plan to stay a few more days in San Francisco to visit the city.
Can anyone point me to cheap accomodation in SF, or perhaps even lives in SF and
has room where I could sleep?

In addition my PulseAudio presentation has been accepted at linux.conf.au 2007. At GNOME.conf.au I hope to give
another presentation, together with Trent Lloyd about Avahi, everyone’s favourite Zeroconf
implementation. And finally I plan to give yet another presentation, again about
PulseAudio, at FOMS 2007, the Foundations of Open Media Software
conference, which happens shortly before linux.conf.au, also in Sydney. FOMS
is still looking for more people to speak at the conference, so, please go to
their CFP page
and send in your proposal if you have something to talk about!

Updates

Post Syndicated from Lennart Poettering original http://0pointer.net/blog/projects/stuff.html

Various, unrelated news:

Thanks to Marvin Stark my project syrep is now
available in Debian. As you might know all the cool kids have written their
own distributed revision control systems. This is my contribution on this
topic. Although I started to work on it four years ago syrep is still unrivaled
and unbeaten in its specific feature set. (Which is admittedly very different
from the feature set of most other software in this area.)

Thanks to CJ van den Berg and Sjoerd Simons (and a few others from
#pulseaudio) PulseAudio is now available in
Debian
, the auxiliary GUI tools like pavucontrol seem to
be still missing. Nonetheless: it’s now easier then ever to try PulseAudio:

sudo aptitude install pulseaudio
pulseaudio-module-hal
pulseaudio-esound-compat
pulseaudio-utils
libgstreamer-plugins-pulse0.10-0
pulseaudio-module-gconf
pulseaudio-module-x11
pulseaudio-module-zeroconf

For the next months I will focus on my Diplomarbeit (German equivalent of a master thesis). Due to this I passed maintainership of Avahi to Trent Lloyd and of PulseAudio to Pierre Ossman. I hope to resume maintainership of both projects in January.

My first non-trivial kernel patch has been merged into Linus’ kernel, although the 2.6.19 merge window was already closed. I take this as birthday present from Linus.

If you have a laptop (such as the MSI S270) with Ricoh SD/MMC
interface (not one of the new controllers which are SDHCI compatible, but the
old ones where the SD/MMC is a virtual PCMCIA slot identifying itself as
Bay1Controller), then please support me in writing a Linux driver for
it and request the necessary documentation and datasheets from Ricoh. For more
information on this issue see this
posting on the s270-linux mailing list
, and this followup.

That’s all for now.

Updates

Post Syndicated from Lennart Poettering original http://0pointer.net/blog/projects/stuff.html

Various, unrelated news:

Thanks to Marvin Stark my project syrep is now
available in Debian. As you might know all the cool kids have written their
own distributed revision control systems. This is my contribution on this
topic. Although I started to work on it four years ago syrep is still unrivaled
and unbeaten in its specific feature set. (Which is admittedly very different
from the feature set of most other software in this area.)

Thanks to CJ van den Berg and Sjoerd Simons (and a few others from
#pulseaudio) PulseAudio is now available in
Debian
, the auxiliary GUI tools like pavucontrol seem to
be still missing. Nonetheless: it’s now easier then ever to try PulseAudio:

sudo aptitude install pulseaudio \
    pulseaudio-module-hal \
    pulseaudio-esound-compat \
    pulseaudio-utils \
    libgstreamer-plugins-pulse0.10-0 \
    pulseaudio-module-gconf \
    pulseaudio-module-x11 \
    pulseaudio-module-zeroconf

For the next months I will focus on my Diplomarbeit (German equivalent of a master thesis). Due to this I passed maintainership of Avahi to Trent Lloyd and of PulseAudio to Pierre Ossman. I hope to resume maintainership of both projects in January.

My first non-trivial kernel patch has been merged into Linus’ kernel, although the 2.6.19 merge window was already closed. I take this as birthday present from Linus.

If you have a laptop (such as the MSI S270) with Ricoh SD/MMC
interface (not one of the new controllers which are SDHCI compatible, but the
old ones where the SD/MMC is a virtual PCMCIA slot identifying itself as
Bay1Controller), then please support me in writing a Linux driver for
it and request the necessary documentation and datasheets from Ricoh. For more
information on this issue see this
posting on the s270-linux mailing list
, and this followup.

That’s all for now.

A few updates on PulseAudio

Post Syndicated from Lennart Poettering original http://0pointer.net/blog/projects/pulse-news.html

Thanks to Marc-Andre Lureau there’s now a jhbuild file
for PulseAudio
. And there is this (little bit chaotic)
Wiki page
in GNOME Live! about the relation of PulseAudio and
GNOME.

A few weeks ago I wrote a new page for our Wiki where I tried to
describe the steps necessary to get the most out of PulseAudio. It’s
called the Perfect
Setup
.

A few minutes ago I released PulseAudio 0.9.5 and new versions of the auxiliary tools. The changelog:

Add module-hal-detect, a module that detects all local sound hardware using HAL and loads the necessary modules. Handles hot-plug and hot-removal of audio devices. (Contributed by Shahms E. King)
Add shared memory transfer method for local clients
Update module-volume-restore to automatically restore the output device last used by an application in addition to the volume it last used
Add a new module module-rescue-streams for automatically moving streams to another sink/source if the sink/source they are connected to dies
Add support for moving streams “hot” between sinks/sources
Reduce memory consumption and CPU load as result of Valgrind/Massif profiling
Add new module module-gconf for reading additional configuration statements from GConf
Fix module-tunnel to work with the latest protocol
Miscellaneous fixes

One of the nicest new features of PulseAudio 0.9.5 is HAL
integration (which has been contributed by Shahms King). PulseAudio will
now automatically detect all available sound devices and will make
use of them. It supports both hot-plug and hot-remove.

Another nice feature is the GConf integration which allowed us to add another nice application to the PulseAudio toolset: the PulseAudio Preferences utility:

paprefs screenshot

The idea is to have a simple, nice configuration dialog that allows
configuration of the more exotic features of PulseAudio which we do
not enable by default due to security considerations or to not
confuse the user. Right now a lot of features are hidden behind
non-trivial configuration file statements. This preferences tool shall
make them available for the users which are not so keen on editing
configuration files.

Playing around with Valgrind‘s
Massif tool and KCachegrind I did a little bit of memory and perfomance profiling of
the PulseAudio daemon. The 0.9.5 release contains a lot of
optimizations which are result of this work.

Before:

Massif before

After:

Massif after

These plots show the memory consumption against the time, from
starting the server, to playing stream, to stopping the stream and
shutting down the server again. The major improvement was actually an
update to libsamplerate done
by its maintainer to improve the memory handling of that library. (He
didn’t release an updated version of his library containing the
changes shown in the plots yet).

PulseAudio had the nice feature of remembering the playback volume of every
application for quite a while. Starting with 0.9.5 PulseAudio it also remembers
the output device for every application. Together with an updated Volume
Control tool which now allows moving streams between sinks while they are
played this can be used to configure a ruleset like “Ekiga always on the USB
headset, Rhytmbox always on the external speakers” very intuitively and easily:

pavucontrol screenshot

And here’s a final screenshot showing all the tools we currently have for PulseAudio 0.9.5.

PA Screenshot

A few updates on PulseAudio

Post Syndicated from Lennart Poettering original http://0pointer.net/blog/projects/pulse-news.html

Thanks to Marc-Andre Lureau there’s now a jhbuild file
for PulseAudio
. And there is this (little bit chaotic)
Wiki page
in GNOME Live! about the relation of PulseAudio and
GNOME.

A few weeks ago I wrote a new page for our Wiki where I tried to
describe the steps necessary to get the most out of PulseAudio. It’s
called the Perfect
Setup
.

A few minutes ago I released PulseAudio 0.9.5 and new versions of the auxiliary tools. The changelog:

  • Add module-hal-detect, a module that detects all local sound hardware using HAL and loads the necessary modules. Handles hot-plug and hot-removal of audio devices. (Contributed by Shahms E. King)
  • Add shared memory transfer method for local clients
  • Update module-volume-restore to automatically restore the output device last used by an application in addition to the volume it last used
  • Add a new module module-rescue-streams for automatically moving streams to another sink/source if the sink/source they are connected to dies
  • Add support for moving streams “hot” between sinks/sources
  • Reduce memory consumption and CPU load as result of Valgrind/Massif profiling
  • Add new module module-gconf for reading additional configuration statements from GConf
  • Fix module-tunnel to work with the latest protocol
  • Miscellaneous fixes

One of the nicest new features of PulseAudio 0.9.5 is HAL
integration (which has been contributed by Shahms King). PulseAudio will
now automatically detect all available sound devices and will make
use of them. It supports both hot-plug and hot-remove.

Another nice feature is the GConf integration which allowed us to add another nice application to the PulseAudio toolset: the PulseAudio Preferences utility:

paprefs screenshot

The idea is to have a simple, nice configuration dialog that allows
configuration of the more exotic features of PulseAudio which we do
not enable by default due to security considerations or to not
confuse the user. Right now a lot of features are hidden behind
non-trivial configuration file statements. This preferences tool shall
make them available for the users which are not so keen on editing
configuration files.

Playing around with Valgrind‘s
Massif tool and KCachegrind I did a little bit of memory and perfomance profiling of
the PulseAudio daemon. The 0.9.5 release contains a lot of
optimizations which are result of this work.

Before:

Massif before

After:

Massif after

These plots show the memory consumption against the time, from
starting the server, to playing stream, to stopping the stream and
shutting down the server again. The major improvement was actually an
update to libsamplerate done
by its maintainer to improve the memory handling of that library. (He
didn’t release an updated version of his library containing the
changes shown in the plots yet).

PulseAudio had the nice feature of remembering the playback volume of every
application for quite a while. Starting with 0.9.5 PulseAudio it also remembers
the output device for every application. Together with an updated Volume
Control tool which now allows moving streams between sinks while they are
played this can be used to configure a ruleset like “Ekiga always on the USB
headset, Rhytmbox always on the external speakers” very intuitively and easily:

pavucontrol screenshot

And here’s a final screenshot showing all the tools we currently have for PulseAudio 0.9.5.

PA Screenshot

GUADEC Sound BOF Slides

Post Syndicated from Lennart Poettering original http://0pointer.net/blog/projects/pulse-slides.html

Marc-Andre was so kind to upload the improvised mini-slides we had prepared for GUADEC’s sound BOF. Unfortunately there is no recording of the BOF, so this is all we can offer for those interested but who were not able to attend GUADEC.

In related news: Thanks to jat there is now a native PulseAudio driver for MPD (in SVN), and I updated the MPlayer patch, which adds a native PulseAudio driver to MPlayer.

GUADEC Sound BOF Slides

Post Syndicated from Lennart Poettering original http://0pointer.net/blog/projects/pulse-slides.html

Marc-Andre was so kind to upload the improvised mini-slides we had prepared for GUADEC’s sound BOF. Unfortunately there is no recording of the BOF, so this is all we can offer for those interested but who were not able to attend GUADEC.

In related news: Thanks to jat there is now a native PulseAudio driver for MPD (in SVN), and I updated the MPlayer patch, which adds a native PulseAudio driver to MPlayer.

Re: PulseAudio and GNOME

Post Syndicated from Lennart Poettering original http://0pointer.net/blog/projects/pulse-davidz-reply.html

davidz: Shams King is
currently working on HAL support in PulseAudio. He’s planning to extend
our module-combine
to automatically combine all available hardware sound cards found with
HAL into a single virtual sound sink. That way, if the user plugs in
an USB loudspeaker set it will automatically output the same audio as
the internal speakers did before. I believe this is the behaviour most
non-technical users would expect from a well designed system.

Right now PulseAudio sink names cannot be used to identify the
underlying hardware devices, since they are generic names like
alsa_output or oss_output2. However, it might be a
good idea to use the ALSA device name
(i.e. alsa_output_hw_0_0) or even the HAL identifier if it is
available. If this
dialog
uses the normal GStreamer PropertyProbe API to
query the available devices (and does not use HAL directly), we should
be able to support this easily in gst-pulse
(right now we support this interface in GstPulseMixer, but not yet in
GstPulseSink).

Marc-Andre, I wonder how the differentiation between “Sound events”, “Music and
Movies” and “Audio/Video Conferencing” touches the “role”/”class” model of GSmartMix?

Regarding power saving and PulseAudio: First of all, PulseAudio
right now is intended to be run per-session, just like esd
was. However, there is some incomplete support for running it as
system-wide instance.

I think instead of integrating PulseAudio with
gnome-power-manager the way you described it is probably a better idea
to close the sound device when it is idle regardless if we are in
power saving mode or not, and hope that the driver authors fix their
stuff to not produce any click or pop sounds when the device is opened
or closed. To be honest, all driver/sound card combinations I have
access to work properly in this area.

In ALSA you usually open devices in O_RDONLY or O_WRONLY mode (and not
in O_RDWR) anyway, so falling back to it is not really necessary.

Re: PulseAudio and GNOME

Post Syndicated from Lennart Poettering original http://0pointer.net/blog/projects/pulse-davidz-reply.html

davidz: Shams King is
currently working on HAL support in PulseAudio. He’s planning to extend
our module-combine
to automatically combine all available hardware sound cards found with
HAL into a single virtual sound sink. That way, if the user plugs in
an USB loudspeaker set it will automatically output the same audio as
the internal speakers did before. I believe this is the behaviour most
non-technical users would expect from a well designed system.

Right now PulseAudio sink names cannot be used to identify the
underlying hardware devices, since they are generic names like
alsa_output or oss_output2. However, it might be a
good idea to use the ALSA device name
(i.e. alsa_output_hw_0_0) or even the HAL identifier if it is
available. If this
dialog
uses the normal GStreamer PropertyProbe API to
query the available devices (and does not use HAL directly), we should
be able to support this easily in gst-pulse
(right now we support this interface in GstPulseMixer, but not yet in
GstPulseSink).

Marc-Andre, I wonder how the differentiation between “Sound events”, “Music and
Movies” and “Audio/Video Conferencing” touches the “role”/”class” model of GSmartMix?

Regarding power saving and PulseAudio: First of all, PulseAudio
right now is intended to be run per-session, just like esd
was. However, there is some incomplete support for running it as
system-wide instance.

I think instead of integrating PulseAudio with
gnome-power-manager the way you described it is probably a better idea
to close the sound device when it is idle regardless if we are in
power saving mode or not, and hope that the driver authors fix their
stuff to not produce any click or pop sounds when the device is opened
or closed. To be honest, all driver/sound card combinations I have
access to work properly in this area.

In ALSA you usually open devices in O_RDONLY or O_WRONLY mode (and not
in O_RDWR) anyway, so falling back to it is not really necessary.

PulseAudio 0.9.2 released

Post Syndicated from Lennart Poettering original http://0pointer.net/blog/projects/pulse-release.html

We’re proud to announce the first release of PulseAudio after the name change from
Polypaudio. Besides a variety of sed -i -e s/polyp/pulse/g changes it
mostly contains minor bugfixes. Get
it while it is hot!

In related news PulseAudio now gained its own domain and a new Trac-based homepage: http://pulseaudio.org/. And thanks to Rafael Jannone and Pierre Ossman we now have a logo:

PulseAudio Logo

Together with PulseAudio 0.9.2 we released updated versions of all the auxiliary GUI
tools
. A new utility has been released as well, named PulseAudio Device
Chooser
. It installs a tray icon and allows the user to quickly change
the sound server attached to the local X11 display, showing a list of servers that
is accumulated using ZeroConf service browsing. In addition it allows you to
quickly start one of the other GUI tools and shows notification whenever a new
PulseAudio server/sink/source appears on the network. Everybody loves
screenshots:

PulseAudio Device Chooser Screenshot

PulseAudio 0.9.2 released

Post Syndicated from Lennart Poettering original http://0pointer.net/blog/projects/pulse-release.html

We’re proud to announce the first release of PulseAudio after the name change from
Polypaudio. Besides a variety of sed -i -e s/polyp/pulse/g changes it
mostly contains minor bugfixes. Get
it while it is hot!

In related news PulseAudio now gained its own domain and a new Trac-based homepage: http://pulseaudio.org/. And thanks to Rafael Jannone and Pierre Ossman we now have a logo:

PulseAudio Logo

Together with PulseAudio 0.9.2 we released updated versions of all the auxiliary GUI
tools
. A new utility has been released as well, named PulseAudio Device
Chooser
. It installs a tray icon and allows the user to quickly change
the sound server attached to the local X11 display, showing a list of servers that
is accumulated using ZeroConf service browsing. In addition it allows you to
quickly start one of the other GUI tools and shows notification whenever a new
PulseAudio server/sink/source appears on the network. Everybody loves
screenshots:

PulseAudio Device Chooser Screenshot

Attending GUADEC

Post Syndicated from Lennart Poettering original http://0pointer.net/blog/projects/guadec-2006.html

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.

Attending GUADEC

Post Syndicated from Lennart Poettering original http://0pointer.net/blog/projects/guadec-2006.html

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.

TPFKAPA: The Project Formerly Known as Polypaudio

Post Syndicated from Lennart Poettering original http://0pointer.net/blog/projects/pulse.html

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!

TPFKAPA: The Project Formerly Known as Polypaudio

Post Syndicated from Lennart Poettering original http://0pointer.net/blog/projects/pulse.html

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!