On Fri, Jul 19, 2013 at 10:49:07PM +0200, Vincent Bernat wrote:
> Did you see the examples of asoundrc I posted? PulseAudio removes all
> this non-sense by providing mixing in almost all situations (while Alsa
> is doing it out of the box only for analog output), correct setup of
> output (no need to remap channels), provide a sane naming of output (no
> meaningless numbered outputs), universal support for multiple input and
> output devices with per-application selection, per application volume,
> per application output, out of the box Bluetooth support with no need to
> put a MAC address in your asoundrc, network transparency with
I am not declining that PA adds useful features. Having audio output
reroutable at runtime definitely is a win. Play back sound on your USB
card, unplug the USB card and have your sound automatically switch to
the other card is basically impossible with Alsa.
Still PA adds quite a bit of complexity on its own. The additional layer
has its own new toggles and whistles. Nothing in Alsa was ever talking
about latency. With Alsa there was no need to talk to ConsoleKit or
logind, because Alsa completely ignores the idea that a device should
only be accessible to a user for the duration of a session. There also
is no notion of a suspended sink in Alsa. All these examples are part of
the solution PA is. Still they do add complexity.
Your claim about removing meaningless numbering is just wrong. Like Alsa
numbers cards PA numbers sinks. The dbus object path of a sink does not
contain its name, but uses the sink number instead. This equally applies
to sources, cards, profiles, samples, streams, and modules. Everything
is identified by a number.
> Nobody cares about pacmd list-* being too verbose. Is it a serious
> argument about maturity?
I think that a program whose UI sucks, can be seriously annoying. I hope
that giving an example does not start another flamewar. From my point of
view the subversion UI sucked until the introduction of svn log --diff,
because showing recent changes was too hard. This has caused me to use a
different UI instead of svn in a few cases. I do care.
People started to use pacmd as a programmable interface. Upstream fears
that changes to it could break user scripts. By now it is a hybrid of a
supposedly human-readable and a somewhat machine-readable interface.
Other tools have avoid this trap as they matured. An example being nmap
Worse, different UIs to PA use different terminology. What is called
sink in pacmd is called "output device" in pavucontrol. The concept of a
"default-sink" on side of pacmd is named "fallback device" in
To me these cursory observations indicate that there still are a few
things to work out in the way of talking to users. An aspect that makes
me consider it more like beta than mature/stable.
Nevertheless it turns out to be a quite useful beta once you understand
enough parts of it by reading the documentation^Wsource.