[pulseaudio-discuss] Is running as user smart or dumb?
Mads Kiilerich
mads at kiilerich.com
Sat Jan 2 19:13:18 PST 2010
A couple of observations and comments to the long discussion from a
lurker on this list, obviously with a big IMHO disclaimer. I ended up
writing too much, but the final conclusion is short ;-)
Bill Cox wrote, On 01/01/2010 03:52 AM:
> Since I didn't get much response with my more polite e-mail, here's
> what I really think, given my current ignorance about pulseaudio...
>
> PulseAudio is cool, but I fear it's over-engineered by some Ph.D's
> with too much elegance in their solution, and not enough real world
> experience. Run as user? Really?
>
Yes. I do think it makes perfect sense that the mixing of _my_ sounds
and control of a hardware audio device to which _I_ have exclusive
access is done by _my_ service running as _me_. PulseAudio is not
perfect, but it is heading in the right direction for _that_ scenario.
The use-case you point out seems to be a completely different scenario.
You need sound control and mixing before the user logs in, and you need
sound from a system daemon to be played no matter what else the user is
playing. It really seems like you need system-level sound mixing, not
user-level sound mixing. That is not in PulseAudios scope, just like
textual consoles and pre-X boot messages isn't the X servers business.
PA do not create an architecture where screen readers fits in. But PA
can be a part of an architecture where the screen reader problems can be
solved.
Once the users session and PA is up and running then the users PA should
be able to handle speech from the users applications (through orca?).
The question is if you want PA to handle that kind of speech or not?
If you don't want PA at all then PA obviously can't help you ... perhaps
except by making you change your mind ;-)
If you want PA for some purposes then all other audio applications (such
as system/console screen readers, speakup?) must play by PAs rules and
use CK to take and release the exclusive access to the physical devices
properly.
If you want PA but don't want the "the user has exclusive access to the
sound hardware" concept then there _must_ be some system-level sound
mixing that exposes virtual audio devices to which PA and the screen
reader software can get exclusive access.
Markus pretty much summarized these options, but I think "play by CKs
rules" is missing from the list. Dmix (or PA) as a system-level mixer do
however also seem like something that should be investigated.
> If you think you've got a good reason to do this, is it more important
> than sacraficing accessibility for the blind? The worst disaster for
> accessibility for the blind and visually impaired has been adoption of
> PulseAduio by the major distros. I'm personally spending insane hours
> trying to fix this mess, and frankly I could use some direction.
> We've got Orca mostly working now, but the other essential app -
> speakup - is still in limbo.
>
It seems to me like the old architecture with alsa and screen readers
was pretty much hacks. It evolved that way for good historical reasons
and worked and solved an important problem, but still it was hacks, and
hacks often either prevents further development from happen or breaks
when development happens anyway. PulseAudio is different from ALSA, and
thus it requires different hacks. Some hacks (or PhD-engineered elegant
solutions) might be needed in PA, but probably even more in other
applications which the PA developers don't, can't and shouldn't consider
their responsibility. Thanks for looking into this!
Pointing out that there are problems the developers perhaps wasn't aware
of is fine, but insinuating that they are discriminating and sacrificing
accessibility for the blind just because something breaks isn't fair.
> Now the blind community has no pull. We can't tell Ubuntu to run
> PulseAudio as a normal deamon. As a result, our computers come up
> talking but then can't talk once the user logs into gnome. This is
> because speakup launches a process that starts pulseaudio as the gdm
> user, and since that process continues forever, the gdm copy of
> pulseaudio never dies, and the user's gnome session gets no access to
> the sound card, and Orca wont talk.
>
> I just need a solution. I'm frankly hoping to get more response to
> this more emotional e-mail than my previous polite one. I promise to
> be nice once I'm convinced we're not actually letting a bunch of
> inexperienced coders undermine the Linux sound system, which is likely
> to happen once I'm no longer ignorant of what the heck this user-land
> stuff is all about, and when I learn how to write code that gives the
> blind speach on their Ctrl+Alt+F1 consoles from boot, as well as after
> they login.
>
> You know what it's like trying to help a blind user through e-mail to
> figure out what to do when the computer just stops talking? Ever try
> to explain to a user over the phone how to use a graphical
> application? It's much worse than that. The sound system needs to
> work at boot, when we log in, and in fact all the time. Is that too
> much to ask? That's what I require from Ubunut/Lucid. I'm willing to
> write the code to make it happen. Can anyone please advise me on what
> code needs to be written to get speakup and Orca to both work with
> pulseaudio, from boot, after logging into gnome, and on the console
> windows?
>
It seems to me like the short answer is that if you want everything to
work "as before PA", both before PA starts and when switched to text
consoles, then the other sound applications (speakup?) just(!) has to
use ConsoleKit to take and release the exclusive access to the audio
hardware through ALSA.
(I haven't seen that stated clearly in the many mails I have seen.
Someone will correct me if I'm wrong. ;-) )
/Mads
More information about the pulseaudio-discuss
mailing list