I think, it is time for you to wake up from your OSS dream. Future of sound in linux is ALSA.
Originally Posted by DanL
Maybe I'm alone on this one, but it would be excellent if somehow both projects could "merge" (not in a literal sense, though). ALSA offers some very advanced functions directly tied to the underlying hardware that don't seem to be present in OSS (I ignore if such detailed control over the hardware is possible with OSS or not, with any particular supported "card"), this adds a bit more granularity to the whole Sound system in Linux. OSS on the other hand, offers a clearer/cleaner documentation of the API, is easier to implement (as there is no such broad control over the hardware, or not directly exposed through the API), and has broader OS support.
Now if somehow the advantages of each could generate the One True Sound System it would be awesome, and even though highly unlikely, I kind of see how at least ALSA could evolve. Generally speaking, and from what I have been able to make out of this whole deal, ALSA is such a "monster" to code for first and foremost due to the number of "undocumented" features and the sheer number of different functions (i.e, a complete mess). I don't think that the flexibility at the bare-metal level ALSA offers is necessarily a bad thing, I do think, however, that it should at least offer two levels to the API: Driver level and userspace level, kind of being the userspace level an abstraction layer on top of the drivers, and the library a "wrapper" to ensure proper communication. That way (and keep in mind I'm talking "blind" here, so I may simply be talking rubbish), application developers could use a very compact and "simple" API, while there would also be a more advanced API (or subset of the main API) for more direct hardware manipulation. I'm sure that's somewhat what it is today, and I'm also sure that OSS should work in such a way to an extent as well. My point is that ALSA could simplify the API, while still retain its flexibility. This, though requires that the library middleware between the low-level API and userspace applications will communicate effectively with any ALSA device regardless of driver idiosyncracies, for which it may have to even compensate.
At any rate, ALSA is still a young project, but it's taken its time to get to a more usable state. One thing is clear, though... Simplification of the Sound System in Linux is imperative, and has to occur FAST.
well, pulseaudio _will_ replace esd. esd is too old, too crappy, too buggy and pa is very promising. fedora 8 has it already installed by default (but it seems to make lot of problems, look at their bugzilla...), ubuntu is going to adopt it, so i think that it is just a question of time until pa is in "vanilla-gnome"...
btw: oss is even available under the bsd-licence (check http://developer.opensound.com/), but i think that alsa is the way to go. the linux-kernel gets more and more rid of oss-drivers, more alsa-based drivers are coming in...forget oss perhaps in *bsd, opensolaris, but in linux..i don't think so.
Have you ever written software for it? Or for sound playback in general on Linux? If not, please spare us the commentary- ALSA's a damned pain to write code for. It offers some great features- but if you can't USE the damned things, it's of little use. OSS is simple to code for, but a LOT of people keep going on and on about ALSA being the "future" and it got edged out of the OS, even though it's "universal" on all the other *nix type platforms for sound support (There's a hint that maybe we've gone down a blind alley...)
Originally Posted by pzad
I don't care about the "future"- I want the stuff to just work. It DOESN'T right now. I'm not able to ship a game title right at the moment BECAUSE it doesn't freakin' work across ALL setups. ALSA doesn't bring it, and neither does OSS right at the moment- for whatever reasons they have for that on each respective API for base sound playback.
If the "future" doesn't offer this, we need to seriously reevaluate all of it. We need to come up with something that's easier to use in it's basic form, that's well documented for that edge as well as any advanced edges, and is what one can reasonably get access to on everything on Linux. Something analogous to what DirectSound used to be on XP systems. Screw "elegant". Screw "choice". This is baseline infrastructure stuff. DRI-like stuff. Gallium-like stuff. ONE interface to drive it. On top of it you should be able to layer everything else on it. You want Jack? Great, run it. You want PulseAudio? Great, run that too. If ALSA can't give me that, it's not the "future" any more than OSS was back at the time of the split from it.
And...people, keep in mind, I've been using and coding for Linux since 1994 here. I still never did quite get why we did this split in the first place, nor did I get why it's taken ALSA 10 years to get to the place they're currently at that doesn't work any better in it's own ways than OSS did back then. This is getting QUITE old, actually. If cleaning up the situation with ALSA will do this, great. If making some more advanced features in OSS will do that, then great as well. It just needs to be fixed.
Last edited by Svartalf; 02-09-2008 at 02:12 PM.
You may say I 'm a dreamer, but I'm not the only one. I hope some day you will join ua, and the world will be as one.
Originally Posted by pzad
Svartalf: I couldn't have worded it better, and I really, really hope you can around the issues you are experimenting, we need more games!!!
ROFL @ the Lennon pun, good one!