2009/6/20 Colin Guthrie <gmane at colin.guthr.ie>: > Hi, > > Thought I'd point out this: > > http://insanecoding.blogspot.com/2009/06/state-of-sound-in-linux-not-so-sorry.html > > Linked from > http://linux.slashdot.org/story/09/06/19/1937210/State-Of-Sound-Development-On-Linux-Not-So-Sorry-After-All > > Lennart, if you have time, it may be worth writing up clearly why you > disagree with some of the points here. When done it would be worth posting > it as a follow up on Slashdot. The author of the article is one of the main developers of ZSNES, and contributor to BSNES audio outputs. I was one of the people fixing ALSA output in BSNES, and even if he never gave any details about on which hardware he had problems, it's easy to see why he feels as he feels about ALSA. - Until Lennart started to complain in the ALSA ML, the snd_pcm_avail_update() vs snd_pcm_delay() documentation was at least confusing. I did it wrong until I saw Lennart messages. Meaning... it's true, ALSA docs aren't really good, and they were even worse. - The we don't use the bug tracker and bug reports get losed in the ML continues being true in the ALSA ML. I could confirm that using the simple initialization API of ALSA sound didn't work with a specific frequency in a HDA Intel codec (did in a SB Live!)... using the old API worked. Reported, got some answers but never got fixed. - Even once fixed the author of the article reported problems in some of his machines. Now Ubuntu gets PA. No problem, bsnes has the ALSA API... but the pulse ALSA plugin makes bsnes block after some time and users complain. I write a message with the little info I could get about the problem (but it seems there is a real problem there, that triggers more in bsnes only because in has a high CPU usage and the bug seems to happen when there are a lot of underruns.. not sure if is in ALSA, PA or ALSA pulse plugin). I write a message to ALSA ML with Lennart CC... never got an answer. So devs decide to write a PA backend. Works, but since they use the simple API they get a LOOOOT of latency. I write to this ML and Lennart changes the default behavior so the full latency, instead of the internal server buffer is set with the simple API. I make some tests, but reading the docs isn't clear to me if the buffer size is specified in samples, frames, bytes or what... I decide I will test again once the change Lennart did gets to the PA packaged in my distro. So, at this point bsnes still doesn't works with PA. ...meanwhile, just to make it funnier, the libao documentation was wrong about the latency units, I had to look in the source code to get it right. Add to it that OSS4 worked without problems for the article's author and you can understand his feelings. One can look at BSNES sound output backends code... it's really simple, and there should not be so much problems.