Re: Pulseaudio
- From: Jan Schmidt <thaytan mad scientist com>
- To: desktop-devel-list gnome org
- Subject: Re: Pulseaudio
- Date: Thu, 11 Oct 2007 23:28:02 +1000
<quote who="Gustavo J. A. M. Carneiro">
> On Thu, 2007-10-11 at 20:31 +1000, Jan Schmidt wrote:
> >
> > I get so sick of people saying "but I don't *want* a sound daemon, ALSA can
> > do it all!". It's so irritating because ALSA's solution for mixing on the
> > vast majority of modern sound hardware is to have to use dmix, and *dmix is
> > a sound daemon* - it's fundamentally doing *exactly* the same thing that
> > pulseaudio does, except that it forks whichever process happens to open the
> > audio device first instead of being an explicit separate binary.
>
> You are mistaken. ALSA dmix does not require any daemon. I suspect it
> uses SYSV IPC to make all processes do some kind of distributed mixing,
> with no daemon required.
The first process to open the sound device is forked in alsalib and
*becomes* the dmix mixing daemon. Check it out in your ps listings.
All the other programs requiring access to mixing services then deliver
their streams to that process via a shared memory mapping. It ends up being
fundamentally the same as pulseaudio or esd with autolaunching.
> > Plus, it traditionally hasn't even done a very good job of being a sound
> > mixer. It does crappy resampling, gives poor feedback on the number of
> > unplayed samples and drops out just as much as a normal sound daemon because
> > it's just a process with normal privileges - all problems that PulseAudio
> > doesn't have when configured correctly (configured so that it can obtain
> > realtime privs, that is).
>
> Even if dmix is buggy, why can't it be fixed instead.
By separating the dmix piece from alsalib, I believe we can do better and
provide more.
> And not to mention that even my desktop PC with ultra cheap motherboard
> has builtin sound which supports hardware mixing. I am pretty sure I'm
> not using any kind of software mixing at the moment: neither dmix nor
> esd nor pulseaudio. I just think that, by default, users should be
> given a chance to experience audio with hardware mixing, if the hardware
> supports it.
I think you are most likely wrong here. Every motherboard I've seen in the
past 4 years with built-in sound has used AC97 with a codec chip, and none
of them have provided hardware mixing support. You're probably using dmix
and just don't realise.
> But most importantly, I wouldn't mind PulseAudio too much *if it worked
> correctly*. As it is now, maybe it isn't PA's fault, maybe it's the
> linux kernel's fault for not having a good enough process scheduler, but
> the sad truth is that PA's sound skips (I mean I hear audio clicks when
> switching workspaces). I believe when people say it doesn't skip for
> their hardware, but I expect people to believe me when I say it does
> skip for me.
The most likely reason is that you need to give pulseaudio the ability to
acquire real-time scheduling privileges, like you do for jackd, because it
operates with smaller hardware buffers to achieve lower latency. On a distro
that provides PulseAudio integrated, this should happen by default.
> > And of course there's the things the PA can do that bare ALSA never will:
> > * Sample caching
> > * Low latency per-process volume control.
> > * Graceful handling and policy for on-the-fly device removal and insertion
>
> Those are nice features, but all summed together they don't come near to
> "skipless sound" that raw ALSA provides.
See the real-time privs point above, or modify the PA config to have bigger
buffers.
> > * Decent OSS emulation that doesn't cut software-mixing out of the loop
>
> OSS is deprecated.
There are plenty of apps that use it though. That may not matter to you, but
backward compatibility is important.
> > * Drop in esd replacement for backwards compatibility.
>
> I already do not use esd.
You must have the Gnome desktop sounds turned off then.
> > And last, and actually one of the minor features: networked audio.
>
> That should be an extra layer *on top of* basic sound, not a replacement
> layer.
If you want to do it so that the apps don't have to know about it, it has to
integrate underneath them somewhere. But again, I don't see this as PA's
major appeal, it's just a neat side-benefit of building things this way.
Jan.
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]