Note: this is an kind of an article that I wrote in reply to stuff I read on Hannu's Blog, and posted it on Facebook since his comments are moderated and he rarely checks if anything was posted. Thought it might be interesting to post it here.
...ain't happening. And probably never will.
Let me just state that I hate problems with ALSA as much as everyone else, and I hate that Linux audio APIs are total mess at the moment. However, this still doesn't change anything.
Because
it just ain't happening. I'm really sorry, but that's the way it is. Let's find out why.
First off,
OSS doesn't support enough hardware. I don't know the exact numbers, but I remember support for ESI Juli@ recently announced as "big news!". ALSA supported this card for so long that I don't remember how long it was. E-mu professional audio? RME HDSP? We don't need to get that exotic - even my PHASE 22 isn't listed. It might be supported, but... why would I bother if it isn't confirmed support?
In fact, I will go even further and state that only card that OSS supports that isn't supported by ALSA is Creative X-Fi. But that card works
very far from desirable, and lots of models don't work at all.
However, all those cards don't make that big portion of the market. They aren't that common; there are cards which are far more common: AC97 and HDA. And this is precisely where ALSA excels (new cards get supported very quickly - Realtek ALC662 on my ASROCK GeForce 8200 motherboard (K10N78FullHD-hSLI R3.0 if anyone cares) produced only noise in 1.0.16, which got to sound + crackling in 1.0.17, and it works perfectly in 1.0.18, not to mention that HDMI support was added along the way). On the other hand, OSS isn't so great here:
"At the same time users of OSS are struggling with problems related with their (hdaudio) laptops. Fixing them will require hours or days of work for each system. In addition to do the work I would need to buy each laptop and pay it from my own pocket. Why should I do that when nobody is paying anything for OSS. Users of OSS seem to be just wanting free support from me without paying anything for that."
Let's first address the first part of the quote. No hadware support? It's too painful to make it? Oh, I feel so sorry for you, man. I'm sure that ALSA developers felt the same way. But they made it supported. It's source code might not be the best, but it works. There are thousands of systems using these cards, it's unrealistic to expect it to be simple.
Second,
lack of money and developers. That is basically the response to rest of the quote. No shit man, nobody wants to pay you? Well, who paid to ALSA? Nobody wants to contribute code? Well, who contributed to ALSA when it supported 3 cards?
We have a classical "HEEEEY PEOPLE! HERE IS MY PET PROJECT, COME WORK ON IT!" situation here. But there is a catch or two here: I (and this applies to pretty much every contributor out there) am not going to even look at the project that doesn't do 70-80% of what I want. Besides that, I don't want to work on the project that is basically irrelevant and there is a competitor that works. I'm sorry; that would probably only interest OSS zealots.
Thirdly, Linux has evolved
by deprecating too slow to develop projects if replacements are available. Remember XFree86? I don't know why, but it OSS reminds me a lot of it. Wait, I know - it's highly uninteresting, wants some weird changes to entire Linux community to happen, and it's hardware support is poor.
And it's DEPRECATED. And so is OSS.
If you don't want to play by our (Linux community's) rules, then get your own sandbox. If you don't meet the standards to be in the kernel, you will not get in the kernel. It's that simple. There is no chance kernel's standards will change because of you. Linux evolved so far because of the way it was.
And only thing you can do is struggle to keep up with kernel changes. Is that painful? Then don't do it - I'm sure there are people from BSD and Solaris who might care. Or probably not, when they get their subsystem together, if they haven't already.
OSS Is irrelevant in the Linux world. It's unnecessary, it happened too late, now it can't catch up. And this is unlikely to ever change. It's a shame; if OSS played right we would have a unified audio driver and API for Linux, BSD and Solaris.
By the way, you know why OSS won't become any more relevant? It's simple - if you aren't in the kernel, you are nowhere.
(in reply to
Hannu’s Blog - Hannu's Blog)
P.S.
I will even go further and state that it's highly unlikely that anything will ever replace ALSA unless:
1) Someone codes a somekind of a converter from ALSA driver to that subsystem's drivers. It needs to works 1-1, nearly perfect. Again, we can't really count how many devices ALSA supports, but losing that support for just AC97 and HDA would set us back at least a year or two. There are literally hundreds of quirks for various systems included in those drivers.
or
2) Someone manually recodes
every single ALSA driver to that new subsystem. Something similar happened to wireless recently. However, there are still drivers that aren't ported, since porting isn't that easy.
Does any of that seem likely? Not to me. Fixing ALSA's problems will be far easier than coding such a solution.