[go: up one dir, main page]

レナート   Banana In Manu Habeo   ﻟﻴﻨﺎﺭﺕ

Fri, 18 Jul 2008

PulseAudio FUD

Jeffrey Stedfast

Jeffrey Stedfast seems to have made it his new hobby to bash PulseAudio. In a series of very negative blog postings he flamed my software and hence me in best NotZed-like fashion. Particularly interesting in this case is the fact that he apologized to me privately on IRC for this behaviour shortly after his first posting when he was critizised on #gnome-hackers -- only to continue flaming and bashing in more blog posts shortly after. Flaming is very much part of the Free Software community I guess. A lot of people do it from time to time (including me). But maybe there are better places for this than Planet Gnome. And maybe doing it for days is not particularly nice. And maybe flaming sucks in the first place anyway.

Regardless what I think about Jeffrey and his behaviour on Planet Gnome, let's have a look on his trophies, the five "bugs" he posted:

  1. Not directly related to PulseAudio itself. Also, finding errors in code that is related to esd is not exactly the most difficult thing in the world.
  2. The same theme.
  3. Fixed 3 months ago. It is certainly not my fault that this isn't available in Jeffrey's distro.
  4. A real, valid bug report. Fixed in git a while back, but not available in any released version. May only be triggered under heavy load or with a bad high-latency scheduler.
  5. A valid bug, but not really in PulseAudio. Mostly caused because the ALSA API and PA API don't really match 100%.

OK, Jeffrey found a real bug, but I wouldn't say this is really enough to make all the fuss about. Or is it?

Why PulseAudio?

Jeffrey wrote something about 'solution looking for a problem' when speaking of PulseAudio. While that was certainly not a nice thing to say it however tells me one thing: I apparently didn't manage to communicate well enough why I am doing PulseAudio in the first place. So, why am I doing it then?

If you want to know more about why I think that PulseAudio is an important part of the modern Linux desktop audio stack, please read my slides from FOSS.in 2007.

Misconceptions

Many people (like Jeffrey) wonder why have software mixing at all if you have hardware mixing? The thing is, hardware mixing is a thing of the past, modern soundcards don't do it anymore. Precisely for doing things like mixing in software SIMD CPU extensions like SSE have been invented. Modern sound cards these days are kind of "dumbed" down, high-quality DACs. They don't do mixing anymore, many modern chips don't even do volume control anymore. Remember the days where having a Wavetable chip was a killer feature of a sound card? Those days are gone, today wavetable synthesizing is done almost exlcusively in software -- and that's exactly what happened to hardware mixing too. And it is good that way. In software mixing is is much easier to do fancier stuff like DRC which will increase quality of mixing. And modern CPUs provide all the necessary SIMD command sets to implement this efficiently.

Other people believe that JACK would be a better solution for the problem. This is nonsense. JACK has been designed for a very different purpose. It is optimized for low latency inter-application communication. It requires floating point samples, it knows nothing about channel mappings, it depends on every client to behave correctly. And so on, and so on. It is a sound server for audio production. For desktop applications it is however not well suited. For a desktop saving power is very important, one application misbehaving shouldn't have an effect on other application's playback; converting from/to FP all the time is not going to help battery life either. Please understand that for the purpose of pro audio you can make completely different compromises than you can do on the desktop. For example, while having 'glitch-free' is great for embedded and desktop use, it makes no sense at all for pro audio, and would only have a drawback on performance. So, please stop bringing up JACK again and again. It's just not the right tool for desktop audio, and this opinion is shared by the JACK developers themselves.

Jeffrey thinks that audio mixing is nothing for userspace. Which is basically what OSS4 tries to do: mixing in kernel space. However, the future of PCM audio is floating points. Mixing them in kernel space is problematic because (at least on Linux) FP in kernel space is a no-no. Also, the kernel people made clear more than once that maths/decoding/encoding like this should happen in userspace. Quite honestly, doing the mixing in kernel space is probably one of the primary reasons why I think that OSS4 is a bad idea. The fancier your mixing gets (i.e. including resampling, upmixing, downmixing, DRC, ...) the more difficulties you will have to move such a complex, time-intensive code into the kernel.

Not everytime your audio breaks it is alone PulseAudio's fault. For example, the original flame of Jeffrey's was about the low volume that he experienced when running PA. This is mostly due to the suckish way we initialize the default volumes of ALSA sound cards. Most distributions have simple scripts that initialize ALSA sound card volumes to fixed values like 75% of the available range, without understanding what the range or the controls actually mean. This is actually a very bad thing to do. Integrated USB speakers for example tend export the full amplification range via the mixer controls. 75% for them is incredibly loud. For other hardware (like apparently Jeffrey's) it is too low in volume. How to fix this has been discussed on the ALSA mailing list, but no final solution has been presented yet. Nonetheless, the fact that the volume was too low, is completely unrelated to PulseAudio.

PulseAudio interfaces with lower-level technologies like ALSA on one hand, and with high-level applications on the other hand. Those systems are not perfect. Especially closed-source applications tend to do very evil things with the audio APIs (Flash!) that are very hard to support on virtualized sound systems such as PulseAudio [2]. However, things are getting better. My list of issues I found in ALSA is getting shorter. Many applications have already been fixed.

The reflex "my audio is broken it must be PulseAudio's fault" is certainly easy to come up with, but it certainly is not always right.

Also note that -- like many areas in Free Software -- development of the desktop audio stack on Linux is a bit understaffed. AFAIK there are only two people working on ALSA full-time and only me working on PulseAudio and other userspace audio infrastructure, assisted by a few others who supply code and patches from time to time, some more and some less.

More Breakage to Come

I now tried to explain why the audio experience on systems with PulseAudio might not be as good as some people hoped, but what about the future? To be frank: the next version of PulseAudio (0.9.11) will break even more things. The 'glitch-free' stuff mentioned above uses quite a few features of the underlying ALSA infrastructure that apparently noone has been using before -- and which just don't work properly yet on all drivers. And there are quite a few drivers around, and I only have a very limited set of hardware to test with. Already I know that the some of the most popular drivers (USB and HDA) do not work entirely correctly with 'glitch-free'.

So you ask why I plan to release this code knowing that it will break things? Well, it works on some hardware/drivers properly, and for the others I know work-arounds to get things to work. And 0.9.11 has been delayed for too long already. Also I need testing from a bigger audience. And it is not so much 0.9.11 that is buggy, it is the code it is based on. 'Glitch-free' PA 0.9.11 is going to part of Fedora 10. Fedora has always been more bleeding edge than other other distributions. Picking 0.9.11 just like that for an 'LTS' release might however be a not a good idea.

So, please bear with me when I release 0.9.11. Snapshots have already been available in Rawhide for a while, and hell didn't freeze over.

The Distributions' Role in the Game

Some distributions did a better job adopting PulseAudio than others. On the good side I certainly have to list Mandriva, Debian[3], and Fedora[4]. OTOH Ubuntu didn't exactly do a stellar job. They didn't do their homework. Adopting PA in a distribution is a fair amount of work, given that it interfaces with so many different things at so many different places. The integration with other systems is crucial. The information was all out there, communicated on the wiki, the mailing lists and on the PA IRC channel. But if you join and hang around on neither, then you won't get the memo. To my surprise when Ubuntu adopted PulseAudio they moved into one of their 'LTS' releases rightaway [5]. Which I guess can be called gutsy -- on the background that I work for Red Hat and PulseAudio is not part of RHEL at this time. I get a lot of flak from Ubuntu users, and I am pretty sure the vast amount of it is undeserving and not my fault.

Why Jeffrey's distro of choice (SUSE?) didn't package pavucontrol 0.9.6 although it has been released months ago I don't know. But there's certainly no reason to whine about that to me and bash me for it.

Having said all this -- it's easy to point to other software's faults or other people's failures. So, admitting this, PulseAudio is certainly not bug-free, far from that. It's a relatively complex piece of software (threading, real-time, lock-free, sensitive to timing, ...), and every software has its bugs. In some workloads they might be easier to find than it others. And I am working on fixing those which are found. I won't forget any bug report, but the order and priority I work on them is still mostly up to me I guess, right? There's still a lot of work to do in desktop audio, it will take some time to get things completely right and complete.

Calls for "audio should just work (tm)" are often heard. But if you don't want to stick with a sound system that was state of the art in the 90's for all times, then I fear things *will have* to break from time to time. And Jeffrey, I have no idea what you are actually hacking on. Some people mentioned something with Evolution. If that's true, then quite honestly, "email should just work", too, shouldn't it? Evolution is not exactly famous for it's legendary bug-freeness and stability, or did I miss something? Maybe you should be the one to start with making things "just work", especially since Evolution has been around for much longer already.

Back to Work

Now that I responded to Jeffrey's FUD I think we all can go back to work and end this flamefest! I wish people would actually try to understand things before writing an insulting rant -- without the slightest clue -- but with words like "clusterfuck". I'd like to thank all the people who commented on Jeffrey's blog and basically already said what I wrote here now.

So, and now I am off hacking a bit on PulseAudio a bit more -- or should I say in Jeffrey's words: on my clusterfuck that is an epic fail and that no desktop user needs?

Footnotes

[1] BTW 'glitch-free' is nothing I invented, other OS have been doing something like this for quite a while (Vista, Mac OS). On Linux however, PulseAudio is the first and only implementation (at least to my knowledge).

[2] In fact, Flash 9 can not be made fully working on PulseAudio. This is because the way Flash destructs it's driver backends is racy. Unfixably racy, from external code. Jeffrey complained about Flash instability in his second post. This is unfair to PulseAudio, because I cannot fix this. This is like complaining that X crashes when you use binary-only fglrx.

[3] To Debian's standards at least. Since development of Debian is very distributed the integration of such a system as PulseAudio is much more difficult since in touches so many different packages in the system that are kind of private property by a lot of different maintainers with different views on things.

[4] I maintain the Fedora stuff myself, so I might be a bit biased on this one... ;-)

[5] I guess Ubuntu sees that this was a bit too much too early, too. At least that's how I understood my invitation to UDS in Prague. Since that summit I haven't heard anything from them anymore, though.

posted at: 17:02 | path: /projects | permanent link to this entry | 52 comments


Posted by Anonymous at Fri Jul 18 18:18:18 2008
I agree with most of what you said.  However, you said "he flamed my software and hence me", and that I disagree with.  You need to separate criticism of your software from criticism of yourself.  I submit plenty of patches, and I've occasionally had someone complain about my code; sometimes I even agree with them.  I never feel like the criticism extends from my code to me.

Posted by Adam Williamson at Fri Jul 18 18:18:46 2008
Good comment, I'd just like to append two things:

#1 Anyone who believes that audio on Linux was wonderful and bug-free before Pulse came along and broke it all has clearly never done user support.

#2 Universally whacking the default ALSA volume to an arbitrary value is theoretically bad behaviour, and actually bad behaviour in a couple of fairly unusual cases as you mentioned, but practically speaking it's the least bad option for distributions. The only real fix is for ALSA to set sensible default values for all cards. However, when they tried to do this they were always wrong somehow, and after a while, they gave up trying and just set all volumes to 0 by default. This just doesn't fly with users; no regular user is going to guess that to get sound working they need to open a mixer and raise all the volume settings that have been (inexplicably to them) set to 0. We know this because we left it that way in Mandriva for a while and it was a nightmare.

So until someone comes up with a decent set of default values for at least the most commonly used cards and drivers, there isn't a good solution available, and whacking everything to 50% or 75% is the least bad option we have.

Posted by Russ at Fri Jul 18 18:19:39 2008
Thats great and all, but the majority of users have gotten by with alsa and dmix for quite some time.

So a hung desktop makes for unhappy users, there is no way around it, just admit. Hung desktop bad. Users are going to be upset and its not their fault for being upset.

Posted by Lennart at Fri Jul 18 18:40:46 2008
Anonymous: if you flame other people's software it is always a bit personal. "Your software looks like written by an idiot, but you are a cool guy" doesn't fly.

Adam: As mentioned there have been discussions on the ALSA ML to fix that in a clean way. Check the archives. ALSA will probably ship a small database of default mixer settings for many soundcards. This however is much more complicated than it might seem.

Russ: as I wrote it is OK to flame, to be upset, to lament. But claiming that it's all PA's fault is wrong. Get your facts right before complaining.

Posted by anonymous at Fri Jul 18 18:43:58 2008
But Skype didn't work with PulseAudio and even if this isn't possible to fix for you (because Skype is binary too), it's annoying for every user which want to use Skype now

Skype works very well with Alsa on Slackware. One of the last distributions, which use stable packages only and don't go with the laste hype.

Maybe PulseAudio handles CPU better, but if nothing really works (only in GIT, only in there), then it's useless

Posted by simplisticton at Fri Jul 18 18:46:32 2008
I think you and Jeffrey both have reasons for your reactions -- I understand where he's coming from, in that there's nothing worse than something you rely on breaking horribly, especially when you didn't ask for it to be broken (by voluntarily running a beta or something).  Then again, his ire isn't necessarily directed at you, but at his distro maintainers for using PA before it's quite ready for prime-time. 

When to migrate something from "beta" to "production" is always a bit of a tightrope walk, especially in FOSS.  And like you say, flaming is also part of the culture... another part is having a thick skin -- which you both need as a user (to endure the occasional breakage) and a developer (to endure the rants of people not enduring the breakage so well).

Posted by Lennart at Fri Jul 18 18:47:23 2008
anonymous: Rockn'roll! Let's allow closed-source software vendors to hold progress on free desktops in ransom!

Posted by Russ at Fri Jul 18 18:48:44 2008
I'm not claiming that its all PA, all I'm clailming is that the user would not have the problems they were having if PA was not installed. You seem very defensive about something so simple.

Software has bugs, even if your software is bug-free, it will likely reveal bugs in other software that weren't before known.

There is no need to get so defensive over such a minor issue.

Posted by David at Fri Jul 18 19:06:27 2008
Yeah, yeah. Jeffrey could be all the FUD that you want, but the thing is i don't have sound if i open firefox and banshee, or firefox and mplayer at the same time.

You can blame that on Firefox, or Ubuntu, or pulseaudio. I don't care at all. Without pulseaudio i had sound. With pulseaudio i haven't. That's a regression if you ask me.

Pushing a software that break things into a distribution, not matter if the problem is in Flash or wherever it is, is a big step backwards.
Linux ready for the desktop? Bullshit. Ready for
a desktop without sound, maybe.

Posted by Jeffrey Stedfast at Fri Jul 18 19:16:28 2008
A few comments:

1. Not directly related to PulseAudio itself. Also, finding errors in code that is related to esd is not exactly the most difficult thing in the world.


Considering that the GNOME desktop and many other applications speak to pulseaudio via libesd, it is still relevant.

OK, Jeffrey found a real bug, but I wouldn't say this is really enough to make all the fuss about. Or is it?


Actually, I believe you mean three in the PulseAudio code itself (although 1 was in pavucontrol which has had a released bugfix). Yes, the deadlock one was fixed a while ago (assuming the deadlock you fixed is the same one I am experiencing) but it is not in any released version of PA.

Hence, not mine nor my distro's fault.

You also completely fail to grasp how frustrating that deadlock bug (which was really the core of my issues) was for anyone using GNOME on a system where that deadlock occurs. Because when that deadlock happens, the entire system locks up! You cannot launch firefox, you cannot start any new GNOME apps, etc.

Now, I will grant you that part of the blame certainly lies in libesd (hence why I fixed it), but to say it is completely unrelated is bologna. My ESD fixes were not random fixes so I could point fingers, they were fixes so that my system didn't hang whenever PA did.

5. A valid bug, but not really in PulseAudio. Mostly caused because the ALSA API and PA API don't really match 100%.


This seems like a design failure - if the plan is to make applications that use ALSA directly "Just Work(tm)" through PA, then shouldn't PA have been designed to map better to ALSA?

I still consider this to be a PA "bug" even if the fix was in ALSA(?).

Many people (like Jeffrey) wonder why have software mixing at all if you have hardware mixing?


Actually, that's not at all what I was wondering. I had wodnered why PA was needed at all because ALSA already did mixing for me.

Now, I will admit to being naieve about the full list of goals that PA is trying to achieve (which are worthy goals), but I think they all take a backseat to having sound actually work reliably in a basic setup (apps playing audio through local speakers).

Jeffrey thinks that audio mixing is nothing for userspace. Which is basically what OSS4 tries to do: mixing in kernel space. However, the future of PCM audio is floating points. Mixing them in kernel space is problematic because (at least on Linux) FP in kernel space is a no-no. Also, the kernel people made clear more than once that maths/decoding/encoding like this should happen in userspace. Quite honestly, doing the mixing in kernel space is probably one of the primary reasons why I think that OSS4 is a bad idea. The fancier your mixing gets (i.e. including resampling, upmixing, downmixing, DRC, ...) the more difficulties you will have to move such a complex, time-intensive code into the kernel.


Fair enough.

I still don't like it (but I guess there's nothing you can do about it if the kernel folk are holding you back), but so long as it Just Works(tm), in the end I don't care.

Not everytime your audio breaks it is alone PulseAudio's fault. For example, the original flame of Jeffrey's was about the low volume that he experienced when running PA. This is mostly due to the suckish way we initialize the default volumes of ALSA sound cards. Most distributions have simple scripts that initialize ALSA sound card volumes to fixed values like 75% of the available range, without understanding what the range or the controls actually mean. This is actually a very bad thing to do. Integrated USB speakers for example tend export the full amplification range via the mixer controls. 75% for them is incredibly loud. For other hardware (like apparently Jeffrey's) it is too low in volume. How to fix this has been discussed on the ALSA mailing list, but no final solution has been presented yet. Nonetheless, the fact that the volume was too low, is completely unrelated to PulseAudio.


This is actually partly also openSUSE's fault in 2 ways:

1. the volume control in the panel launches pavucontrol instead of gnome-volume-control. Since I need to use gnome-volume-control in order to adjust the master volume of the ALSA device, and the fact that the volume shown in pavucontrol was set to MAX, led me to be confused.

2. the keyboard volume controls do not properly adjust the master volume (I think I may have wrongly blamed this on PA in one of my posts, but don't feel like re-reading my posts to confirm - if I did, apologies).

OTOH Ubuntu didn't exactly do a stellar job. They didn't do their homework. Adopting PA in a distribution is a fair amount of work, given that it interfaces with so many different things at so many different places. The integration with other systems is crucial. The information was all out there, communicated on the wiki, the mailing lists and on the PA IRC channel. But if you join and hang around on neither, then you won't get the memo.


If distros are getting this wrong, then maybe there needs to be better communication so that things like what happened to Ubuntu don't keep happening.

FWIW, I have personally read over the "The Perfect PulseAudio Setup" wiki page and afaict, openSUSE 11 followed the recommended setup but there were still problems (obviously).

(Although the problems I experienced were bugs in code rather than bugs in setup...mostly)

[2] In fact, Flash 9 can not be made fully working on PulseAudio. This is because the way Flash destructs it's driver backends is racy. Unfixably racy, from external code. Jeffrey complained about Flash instability in his second post. This is unfair to PulseAudio, because I cannot fix this. This is like complaining that X crashes when you use binary-only fglrx.


Sort of like it's unfair that Evolution users complain when Evolution doesn't work with some broken server. But users don't care that it's a broken server if other clients work with it, so it's still on the Evolution developer's shoulders to work around those bugs.

Sort of like how historically, hardware makers haven't been giving Linux kernel devs the specifications to make their hardware work, and so it is left up to F/LOSS developers to bear the burden of making it work anyway.

No one ever said life was fair and unfortunately, a LOT of users are going to expect Flash to work. If/when it doesn't, they will complain and in a manner of speaking, it is PulseAudio's fault because it did work pre-PA.

Posted by Brandon at Fri Jul 18 19:21:28 2008
I do agree that pulse audio itself is not at fault for most of the audio issues I have been having. I place the blame (almost) totally on the Ubuntu devs who put pulse audio in so haphazardly. It is really making me reconsider my desktop of choice, though.

Posted by Jeffrey Stedfast at Fri Jul 18 19:23:14 2008
Btw, Re: the pavucontrol bug

But there's certainly no reason to whine about that to me and bash me for it.


Er, where did I bash you in that bug report or in any blog post, irc discussion, etc?

Not once did I bash you over that bug.

Posted by oliver at Fri Jul 18 19:25:44 2008
David: Isn't it up to the distros whether they want to adopt PA or not?
I don't know if PA was pushed by the devs or pulled by the distro maintainers. But for example in the case of Ubuntu Hardy, I assume the maintainers wanted to switch to PA, lest they have to support ESD on their own for three years.
So maybe you should flame your distro maintainers for integrating PA without enough testing?

Posted by Jonathan Pryor at Fri Jul 18 19:26:22 2008
Why Jeffrey's distro of choice (SUSE?) didn't package pavucontrol 0.9.6 although it has been released...




openSUSE does package pavucontrol 0.9.6:



<blockquote>$ rpm -q pavucontrol
pavucontrol-0.9.6-0.pm.1</blockquote>



Though this RPM was built on July 12, 2008 (according to rpm -qi), so perhaps the issues that Jeffrey saw were before then?  I'm not sure when openSUSE got the 0.9.6 release, but it has it now.

Posted by method at Fri Jul 18 19:31:15 2008
You shouldn't take it personally. The 8.04 LTS was a strange release for Ubuntu, because it shipped with beta Firefox 3 and something called "Pulseaudio" which made players like VLC no longer work and the deliverable seemed to be... strange lockups, crashes and an occasional crazy stuttering sound. Then we got 8.04.1, and it started to look like a stable release.

Posted by Tom Mann at Fri Jul 18 19:42:09 2008
FUD? or real problems that are/need being addressed?

Take it as constructive critisism as the solution will only propel PA forward.

Posted by anon at Fri Jul 18 20:05:54 2008
Jeffrey has a very strong point.  If you forget for a moment that you're a developer and try to put yourself in a user's place, you will better understand the situation and perhaps cease taking it personally.  We're all in the same team, after all.

Posted by Jeffrey Stedfast at Fri Jul 18 20:36:23 2008
Jon: Yea, the package was made after my bug report I think.

Posted by anonymous at Fri Jul 18 21:41:10 2008
> anonymous: Rockn'roll! Let's allow closed-source software vendors to hold progress on free desktops in ransom!

If it's untested or some other applications (doesn't matter if closed or open source) can't handle the new system, then it should be an option but not default. Even if I try to disable PA as much I can, my example doesn't work.

Posted by Tobias at Fri Jul 18 21:55:23 2008
You're taking this way too personal. From my reading "Pulseaudio == clusterfuck" entailed more an outcry of  frustration; directed at noone in particular but the 'cluster' distro, legacy libs, binary blobs, and PA.
Blog more in the way of the second part of this post, and don&#8217;t up the ad-hominem ante like in the first part of this post.
In fact, expect much more flak coming your way, but see through it, cause your doing a heroic deed [1] here.

[1] 'umstürzlerisch' should go here, can&#8217;t find good translation.

Posted by Tobias at Fri Jul 18 21:58:29 2008
You're taking this way too personal. From my reading "Pulseaudio == clusterfuck" entailed more an outcry of  frustration; directed at noone in particular but the 'cluster' distro, legacy libs, binary blobs, and PA.
Blog more in the way of the second part of this post, and don&#8217;t up the ad-hominem ante like in the first part of this post.
In fact, expect much more flak coming your way, but see through it, cause your doing a heroic deed [1] here.

[1] 'umstürzlerisch' should go here, can&#8217;t find good translation.

Posted by john at Fri Jul 18 22:04:06 2008
"More Breakage to Come"

apt-get remove pulseaudio

Posted by Achim at Fri Jul 18 22:43:35 2008
I love pulseaudio.

I am really happy that you are working on it Lennart!

It is sad that some people are not able to see the entire picture of a great audio experience on linux, that pulseaudio delivers today and in the future.

Regards
Achim

Posted by Mikkel Kamstrup Erlandsen at Fri Jul 18 23:03:47 2008
I heard that there are bugs in Gtk+ as well. I think all major distros will drop it soon. It is an outrage and we must abolish it asap!

Posted by mat at Fri Jul 18 23:47:13 2008
Seems there are quite a lot of anonymous people bashing pulseaudio here, so, here is a post just to prove that there are some others that are enjoying it, and who understand its importance.

(BTW, I have skype working, and flash 10 betas work fine with pulseaudio alsa backend)

Posted by Patrys at Sat Jul 19 00:47:11 2008
Now if someone thinks PA is the root of flash-related sound problems, see this report: https://bugs.launchpad.net/pld-linux/+bug/249817

While I packaged PA for PLD Linux, I don't have it installed currently (nor do I have esound) yet I experience problems very similar to those connected to PA (is it possible that PA hangs upon expecting the very same problem underneath?).

Posted by Michael at Sat Jul 19 01:19:59 2008
So, let me get this straight. You're upset with Jeffrey for flaming your project because it was legitimately broken for him due to real bugs in PulseAudio, and you took it all personally.

So what do you do? You bash Jeffrey. You bash NotZed (who wasn't even involved!). You bash Esound, essentially saying it's crap[1] and you bash the Ubuntu devs basically saying they are incompetant for not configuring PA properly.

Wow, real mature there Lennart. You sure showed Jeffrey and everyone else that you are the bigger man.


1. I'm not going to argue that it's not, but seeing as how you just got upset that someone bashed your software saying it was "crap", it's a bit hypocritical to go bashing someone elses software saying the same thing, don't you think?

Posted by Justin Dugger at Sat Jul 19 01:22:01 2008
I'm not quite sure why Debian gets a free pass on complexity but Ubuntu doesn't. The number of developers cuts both ways; Debian may have more developers looking at the transition and forming road blocks, but they've also got more people capable of thinking about it. I know of two people interested in PA in Ubuntu, one of whom is difficult to reach at best.

I don't see consensus within Ubuntu that PA should have shipped in gutsy or hardy. I can't say where the fingers of blame should point, but it certainly feels like what shipped wasn't right. Fortunately we don't have people insulting upstream developers and we do have established ettiquite for communication. Be respectful.

Posted by daniels at Sat Jul 19 01:30:41 2008
Yes, he can flame and be a complete shitcock because OMG YOUR SOFTWARE IS THE CARSH all he wants, but remember at the end of the day that you've written PulseAudio, and he's written ... Evolution.

Posted by Michael at Sat Jul 19 01:33:09 2008
Btw, this does not inspire confidence:

"To be frank: the next version of PulseAudio (0.9.11) will break even more things."

Posted by remm at Sat Jul 19 02:11:52 2008
"he's written ... Evolution"

I think Evo is relatively decent now. But it took forever. And it has tons of odds bugs. I wonder why he's not busy trying to fix the issue list rather than waste his time blogging on PA (which works reasonably well for me) ... Oh well.

Posted by Jeffrey Stedfast at Sat Jul 19 02:32:14 2008
I don't work on Evolution anymore, I'm working on the Mono project these days (currently the Moonlight subproject).

I spent a few days tracking down/fixing audio bugs because I couldn't get real work done until I did so. Kinda hard to test if Moonlight works if the pulseaudio daemon (and thus my entire desktop) lock up everytime I visit a website or run the test suite :p

Maybe that gives more insight into my frustration.

Posted by nona at Sat Jul 19 03:31:46 2008
Lennart, seeing as you're one of the few people actually trying to drag Linux into the 21st century when it comes to audio, all I want to say to you is: you can break my audio anytime!

If some pain in the short term is needed to be able to move forward, then I'll gladly put up with it.

FWIW - Pulse is already doing a great job for me.

Posted by NotZed at Sat Jul 19 03:42:07 2008
I'm more of a ranter than a flamer ... but thanks for the mention.

FWIW I predict that pa will eventually be replaced by something else that 'will get it right this time', and whatever that is will eventually go the same route.  ESD was just the first (well the first i had the misfortune to come across) in a long heritage of application-level mixers, and PA wont be the last.  Some of us have been there before, and we didn't like it the first time.

The problem is developers come along with all this enthusiasm and great ideas and reckon they can solve world hunger, and they get to a stage that it basically works for most cases and so it (mostly) takes over whatever came before it.  Then they start to find maybe it wasn't so easy after all, they have to fix more and more issues, and make the api uglier, and maybe there was a reason after-all that one of the previous attempts did things which seemed wrong initially.  Then the developer gets bored with it and eventually moves on, leaving the project to flounder for a while (particularly if there was a single or small group of developers driving it).  New project leaders will have different ideas, so the code will get uglier and the project will become less well defined and almost certainly bloat out (although PA seems good at already having such lofty goals that the bloat is there before you get off the ground).  Until someone new comes along to 'do it right' this time, and the cycle repeats (if nothing else, because they didn't learn anything from the previous attempt(s)).  Not that it isn't worth trying I guess, but there's often a reason certain things are so fucked up for so long and nobody ever seems to get it right.

Also, just because the kernel dev's don't want something, it doesn't mean they're right, and limitations of the kernel don't justify bad decisions either.  It is questionable when distro's release software that isn't ready for prime time (even if they claim 'bleeding edge' people using this stuff expect the basics to work).  But when they do - they and the software author's have to expect flaming and rants from irate users.

As an aside, not directed at PA as such ... I'm just tired of all of this stuff - it's just history repeating, and as a result the GNU desktop is going nowhere fast - everyone's busy running on the spot and not moving forward.  What became a bunch of half-arsed over-engineered solutions in a permanent state of bleeding edge brokenness is just turning into (multiple) parallel layers of the same.  Its great as a learning/training exercise and for gaining experience as a software developer, but not so great when foisted upon unwilling users.

(Personally I think multi-stream mixing is very much overrated, I can only watch 1 video or listen to 1 audio file at a time, and the last thing I want is for whatever that happens to be to be interrupted by some stupid whoosh to tell me i just maximised a window).

Posted by Rafael F. at Sat Jul 19 05:41:09 2008
Totally support you. Audio in Linux is not great now but it needs people investing time in fixing it instead of bashing other people's projects.

Posted by Complex at Sat Jul 19 09:51:31 2008
Audio is a hard problem to solve - some bits work and other bits don't work as well.  PulseAudio is an attempt to gets more bits to work, and to a certain extent it has worked.  However, audio isn't a works-out-the-box-perfectly experience at the moment, and I doubt if it will be at any time soon.  Perhaps NotZed is right when he says that a successor to PA will come along that will solve all the audio problems, but I guess that will be some time in the future.

ps: As a Fedora 9 user, I wouldn't agree that the packageing has been a flawless process.  It took a long time, and several reads of the PA wiki, to get sound working on this laptop.  Since I'm not a SUSE/Mandriva/Debian user I can't compare the PA experience, but on Fedora I'd give it 6 or 7 out of 10.  Definately a could-do-better score.

Posted by Karl Zollner at Sat Jul 19 11:44:33 2008
To the extent that Jeffrey's flamefest leads to bugs being fixed and thereby improving PA it was probably worth it.

PA has come a long way in the past couple of years. I started mucking around with it long before any of the distros had embraced it-because audio in Linuxland has been a horrific nightmare for years, alsa+dmix not withstanding.

PA still has bugs, but it has gotten to the point, that in my experience, that it has all but solved the routine issues I faced for years fighting an unwinable war against warring audio APIs. Any my usage of PA is far and away more complex than anything Jeffrey has been doing with it:

4 networked computers-one attached to 5.1 speakers on one sound card in one machine(although 2 of my machines have 7.1 jacks-only 1 under ALSA is actually capable of directly addressing each speaker-and it does so without any configuration at all-all sound is distributed to all speakers) and a headset attached to another sound card in a another machine-all audio from all programs on all machines is routed to either the speakers or the headset-I use multiple applications which do not directly support PA or Alsa-in fact which only use the ancient OSS API- and I have 0 problems with simultaneous audio from multiple machines.

The only exception being flash but that is due to my system being 64bit and a lack of alsa 32bit compat libs in Gentoo. Following Lennart's tips I have skype working just fine with PA. For the time being, until my issues with flash are resolved I have resorted to using winxp in virtual box-which works wonderfully with PA. Once this issue is resolved I will for the first in umpteen years be able to just use Linux and have everything Just Work. Congrats to Lennart for making this happen.

Posted by Karl Zollner at Sat Jul 19 11:44:57 2008
Is everything perfect in PA-land, no not by a long shot, but it works really damn well for me. I am much more forgiving concerning bugs in PA because it offers me many, many palpable advantages over anything else which exists-it enables me to do things that no other software can-things which I use and appreciate and I would be at a loss if this was not available.

Moreover PA and libsydney(when it matures) have a more than minor chance at becoming the defacto sound system for Linux, displacing all of the other systems around. I understand that Lennart does not wish to have programmers programming directly against PA-libsydney is being developed for this purpose. I sincerely hope that libsydney quickly reaches maturity so that new apps for Linux can finally target a single audio API.

Some distros may have simply not done their homework when implementing PA-yes PA is bleeding edge tech, it needs the newest versions of a number of dependencies, not the least of which is the kernel itself. Was it rash to so quickly embrace PA-well it depends on your perspective. I can't emphasize enough just how urgent this situation has been and how for how long now ? I have been fighting with Alsa and OSS for 12 years now-from my perspective yesterday is too late.

Posted by Diego at Sat Jul 19 16:21:15 2008
Go Pulseaudio!

Posted by Adam at Sat Jul 19 23:57:14 2008
Pulse Audio is really great software, thanks for keeping at it.

I do think it would be a good idea to revisit the gui for it now that it has so many users. Better integration with the mixer applet and perhaps some kind of graphlike visualization of what streams/where?

Really looking forward to the directional audio feedback btw... something I miss alot from old system 7 mac ;)

Posted by Nathan Myers at Sun Jul 20 12:01:31 2008
I am extremely impressed with how the PulseAudio project has proceeded, taking on so many responsibilities and going so far to provide backward compatibility.  It's an object study in how to approach something hard and messy and actually get somewhere.

Still, the last time I tried it (0.9.8, Intel audio) it worked, partly, for a while, and then stopped (for reasons I don't understand), and then was hard to turn off (turned out I needed to hand-edit an ALSA config file to purge it properly).  Maybe it will be time to try it again soon.  In the meantime I don't actually have any need for mixing, or for hotplug audio following, so raw ALSA has been fine except that no two players seem to agree on which slider the volume control attaches to.

When I do try it again, I'll probably have to start the daemon from a hand-edited script; GNOME broke all the startup machinery by attaching it to Nautilus, the which I cannot even imagine wanting to run.

Posted by Simon at Sun Jul 20 13:23:35 2008
I have to agree with what the first commenter said - taking criticism of your project as a personal insult is never a good idea. Yes, you've put a lot of good work into PA, but if it's causing someone as much frustration as it evidently has Jeffrey, fighting back doesn't really help anyone.

Posted by Adam at Mon Jul 21 13:52:27 2008
Just hang in there. The amount of crap in linux audio has made people really weary but i do believe pulseaudio is the real solution. Perhaps pulse did get adopted a little to quickly but thats because it's miles better than anything else. It is and will continue to be a real asset to desktop linux.

Posted by Aaron at Thu Aug 14 23:51:51 2008
I'm running Mandriva 2008.1. PulseAudio just doesn't work right. If I try to run nearly any kind of media player, xine, mplayer, kaffeine, amarok, things stop working before long. They won't work again until I reboot.

Stuff used to work with alsa it doesn't with pulse. Lots of distros seem to have problems, so it's hard to see blaming one brain-dead distro. It's fine to say an application is broken if it hangs a pulse connection. If I completely kill the application and new applications still can't connect to pulse, that's a pulse problem. Applications, even broken ones, shouldn't be able to make operating system level stuff unusable by other applications, especially not permanently until reboot.

Whether it's broken pulse, broken alsa compatibility interface, broken apps, or broken distros doesn't really matter,
Message is it's broken. Stay away. I don't really care why. Call me back when it works.

Mandriva's drak tools were broken until just a day or so ago, so it wasn't even easy to turn pulse off. At least that is fixed now.

Posted by Mathias at Tue Aug 26 10:43:35 2008
Thanks for your explanations! Using Mandriva, I was kind of surprised to see PulseAudio in the latest distro and I had a hard time understanding what it was about (besides making the sound system less reliable (hint: Flash)).

Thanks to your blog, I know understand what is the point... I hope all these problems will be a thing of the past soon and that PA will really rock!

Posted by Steve at Wed Sep 10 21:20:45 2008
I found out about PulseAudio through Ubuntu Hardy.  I immediately figured out what PulseAudio was all about because I've been waiting for someone to reform desktop audio in Linux and was so excited to find that someone was doing it.  I do occasionally have to restart the pulseaudio process and some things don't work as reliably as they used to but I am excited to see things moving in the right direction and appreciate your efforts.  I've also run across:

<a href="http://ubuntuforums.org/showpost.php?p=5587712&postcount=472">http://ubuntuforums.org/showpost.php?p=5587712&postcount=472</a>

I have not yet had the time and guts to do this to my system that is currently working well enough but it sounds like this combats most of the problems Ubuntu users are having that you were responding to.  Perhaps an update to follow.

Posted by Martyn Hare at Sun Dec 14 13:16:41 2008
Firstly, to start... I like good quality audio.  I tweak all the volume levels to -3db to make things "just perfect".. I stick with the same sound card which I know works flawlessly with ALSA

I'm sure PulseAudio really does offer a lot, but at the moment it causes many issues for me on my Linux setup.

PulseAudio appears to hog quite a substantial amount of CPU time when in use, and this has quite a bad effect on sound when another app (e.g. Firefox w/Flash) decides it wants to eat CPU too..

Although PulseAudio is getting more reliable and it does have a place on the average GNU/Linux desktop; I get the feeling that it will be a while before it can compete with the new audio system in Windows V|sta.. which appears to work flawlessly.

Disclaimer:  No I do not use Windows V|sta; I do however use PulseAudio a lot ;-p

Posted by Martyn Hare at Sun Dec 14 13:17:23 2008
How comes my comments get rejected if I use the phrase "W1ndows V1sta" by the way?

Posted by GNOME User at Thu Feb 26 00:42:12 2009
Some of us find it extremely ironical that you got all upset that someone bashed PulseAudio and yet you bash projects all the time. At least the guy that bashed PA found legitimate bugs (and even patched some of them!).

Meanwhile, you bash bzr when your problem existed between keyboard and chair:

http://uwstopia.nl/blog/2009/02/bashing-bazaar-again

Hypocrite.

Posted by Anonymous at Tue Jul 7 08:53:38 2009
Oh please... its mid-2009 and Pulse Audio STILL breaks Linux sound like its 1997, and all its immature, incompetent author can do is throw a hissy fit at people who say how lousy it is.

Reality check: Pulse Audio sucks.

I see nothing it does that I or ANYONE needs.

And your petty attempts to blame its problems on distributors shows your unwillingness to fess up tot he fact you created a piece of crap that isn't ready for mainstream use.

I'd have accepted that excuse if only one or two distributions had problems with it... but EVERY distribution from Fedora to Ubuntu to Arch to Gentoo to hand-rolled distributions have the same problem: Pulse Audio breaks sound for the majority of sound-capable apps out there for Linux.

Mmmmm... smell that reality. It's not that they are having problems setting up PA properly, it's the fact that your arrogance pushed a sound server out before it was even beta quality software. If I could, I would hit the source of this thing with a big "EXPERIMENTAL" stamp and urge people to avoid this like the plague until you figure out how to NOT make Pulse Audio suck.

The fact that PA breaks sound invariably on all computers I have personal knowledge of, covering a wide variety of hardware, whereas ALSA runs them all flawlessly indicates it's NOT drivers, the kernel, ALSA, ESD, apps, or users' fault Pulse Audio breaks sound. It's Pulse Audio.

I'll never, ever grasp why Fedora/Ubuntu/SuSE decided to push this experimental, unstable, unreliable, unready crap into the default install.

I am proud to say Arch has this chucked into the [community] repository. Things are in [community] primarily for two reasons:

1. The package is popular enough to get out of the AUR but not popular enough for the Arch devs to bother supporting it themselves, leaving it to the Trusted Users to do so.

2. The package is popular enough to get out of the AUR, but the Arch devs tried it, decided it was garbage/unstable/not worth supporting/experimental (Pick one.) and decided not to support it until it matures or improves.

Also, I don't think its wise to blame distros for not implementing your crappy sound system properly if you don't even document it right. Hell, a GOOD dev would already have a decent default config to work so that the devs don't have to waste time trying to get it to work.

As for this computer... with just ALSA all my sound works perfectly. Nothing conflicts or fights over the sound card. When Pulse audio is installed, most cases the program will not make a sound, often even alerting me to a problem it has (Due to your rigid inflexibility and willingness to make Pulse Audio incompatible with everything and expecting all the FOSS developers in the world to develop specifically for YOUR egotistical sound project so you won't have to actually worry about making Pulse work.) with the sound system, or having horrible stuttering problems (ALSA NEVER STUTTERS! Why are we embracing Pulse Audio if it's not even as good as ALSA?) Meanwhile, with ALSA... all my sound works perfectly. In Arch all I have to do is turn the volume up.

Whereas with Ubuntu the step to getting sound is hacking Pulse Audio off like a gangrene-infected limb.

No, PA is NOT ready. Stop posing as if it is.

And I don't think userspace tools are the way to go for sound, either. Too much overhead.

Posted by Anonymous at Tue Jul 7 08:57:04 2009
Er, I forgot to say in my last post that PA is very clearly in category TWO of [community] packages. Count yourself lucky, they outright threw out Catalyst into the AUR because they got sick and tired of waiting for ATI to get their ship together so they could release the latest version of Xorg already.

Posted by J Story at Wed Jul 8 04:22:03 2009
Sure pulseaudio sucks, and when pulseaudio is working, it is merely adequate. But I don't think that's the real issue. The real issue is that distributions include it by default. Until the issues with pulseaudio and the rest of the world are hammered out, it should be an option meant only (for the enthusiasts and hackers.)

Leave a Comment:

Your Name:


Your E-mail (optional):


Comment:


As a protection against comment spam, please type the following number into the field on the right:
Secret Number Image

Please note that this is neither a support forum nor a bug tracker! Support questions or bug reports posted here will be ignored and not responded to!


It should be obvious but in case it isn't: the opinions reflected here are my own. They are not the views of my employer, The Queen, or anyone else. Don't treat them as such.


Lennart Poettering <mzoybt (at) 0pointer (dot) net>
Syndicated on Planet GNOME, Planet Fedora, planet.freedesktop.org, Planet Debian Upstream. feed RSS 0.91, RSS 2.0
Archives: 2005, 2006, 2007, 2008, 2009

Valid XHTML 1.0 Strict!   Valid CSS!