Quote:
Originally Posted by srserl /img/forum/go_quote.gif
Neither Alsa nor Pulseaudio will resample by default, so there is nothing you have to do for bit-perfect playback other than making sure the volume is set to 100%.
|
ALSA, etc, won't resample unless configured to do so, but if your hardware is only capable of 48khz you may want it to resample. But that's another discussion.
Unless you go to great lengths to do something different, volume control under linux is strictly through the hardware mixer.
The hardware mixer has no effect on digital output, except that the mixer may have a toggle or may have an output that controls the digital output -- which is to say that on some devices you will actually need to mute the iec958 device in order to get digital output. And on others you may need to unmute the iec958 device and set it's volume to 0 (since mute and 0 volume are different functions, as far as the hardware is concerned).
Altering the main or PCM volume level in the hardware mixer in linux won't do anything to the digital output.
ALSA is great because it's so close to the hardware. It's also annoying sometimes because it's so close to the hardware.
Pulse is a highly useful abstraction layer on top of ALSA, that can even create virtual ALSA devices, but it would be nice if, for example, it would ameliorate driver and hardware bugs instead of exposing them. My take on Pulse is generally that it's an excellent tool for research and vertical software development that was hijacked for general consumption by the linux distributions. And just when ALSA D-Bus was getting really useful.
Just look at the feature set - say your application would really benefit from simultaneous analog and digital output but your hardware doesn't know how to do that. Pulse will do it, but it insists on doing it with 99.99999% precise synchronizing. Which takes significant CPU overhead. Which would be fine if you needed it.
Pulse is clearly an interface for creating professional-grade audio workstations, which isn't necessarily what joe user needs or wants.