Okay I see. So Pulse provides a good abstraction layer which compensates for
a lot of things. Well, I know that it is possible to set up pulse on Ubuntu
server and get it working, so I will just start investing the time to go
that route that and running LC over it. Thanks for the explanation.
On Wed, Sep 28, 2011 at 2:09 AM, Romain Beauxis <toots@...:
> 2011/9/27 Mike Owens <mikeowens@...>:
> > On Tue, Sep 27, 2011 at 7:50 AM, Romain Beauxis <toots@...>
> > wrote:
> >> I will not start a long rant in here but I think we will probably
> >> start recommending using pulseaudio for all basic input/output needs
> >> in liquidsoap with the next release..
> > I know I am missing something -- as the more I try to learn about Linux
> > sound, the less I seem to understand it --- but ... pulseaudio ultimately
> > runs on top of ALSA, right? So how does adding another layer (pulse) to
> > something that is kind of a pain (ALSA) make it less painful?
> Hmm.. Let me give you one example. For setting the sample rate of a
> pcm device, alsa provides a function named "set_rate_near".. Near
> meaning "yeah, you will get the closest value that the pcm device can
> Now, as explained before, if the device you're trying to use happens
> to be "default", then you are fine and you will get what you asked
> because alsa will do the conversion for you. However, if your user
> passes "hw:0,0" you will most likely get another rate and it will be
> up to the application to do something about it.
> Thus, even if alsa has a standard methods to correct hardware
> limitations, applications using alsa still have to deal with low-level
> issues, depending on the user's request. I personally call that a
> failure of the API/model.
> Pulse is a uniform layer. The part of the API we use is minimal,
> simple and works. Pulse also has an excellent clock mechanism with
> which full-duplex works while were still trying to figure out the
> correct low-level params to do it with alsa. Finally, it works on top
> of alsa, oss, etc.. making it more portable for the application, which
> does not have to care about the underlying driver/system.
> The only case where you should use alsa if you can use pulse is when
> you need low-latency input or output. Other than that, I really
> recommend trying first with pulse..
> > I'm all for
> > whatever works. I am just trying to understand. I have run LC off of
> > in the past and it worked fine. But I most often run LC from Ubuntu
> > which doesn't install pulse, and setting that up can sometimes be
> > challenging as well.
> That I did not know.. It is rather unfortunate..