>Yes, thats true, you might read Josh's comments about writing the ALSA >part, he surely had a good time.
well i have some idea of that, since JACK has to do basically the same thing. >ALSA is not really easy to program, and thats not about novice programmers >and advanced programmers. There are just some people who do not understand >why a Sound API has to be that complicated. (JACK shows that it hasn't to >be this way) ALSA is, at this time, a hardware abstraction layer. it attempts to provide mechanisms for applications to interact with all the many capabilities of modern audio interfaces. it doesn't provide any highly simplified model for this - on alsa-devel and here and on jackit-devel, we argued quite a bit about whether or not ALSA should provide something like JACK. i continue to think that it should not. JACK, and any other very simple audio API, is all about removing most of the possibilities associated with audio interface hardware. this involves many design decisions that may not be appropriate for some kinds of applications. as such, i am happy that we have JACK *and* ALSA, with JACK providing a powerful but highly simplified API and ALSA offering full access to the audio hardware for programs that need it. all that we need now (planned for release 1.1) is for an app to become the JACK server when its the only thing running, thus removing the *requirement* to have a server/client model. if you look back over the last 2 years of alsa-devel, you will see why ALSA is so complex. we have wanted to provide control over every possible aspect of what you can do. interleave/non-interleave, mixer controls, 24 bits in the lower or upper end of a 32 bit value, generic S/PDIF controls, control of the sample clock source, driver side parameters, xrun detection, on and on it goes. most of us don't want or need such an API, but some of us do, sometimes at least. >A sign of this is that this discussion takes place at all, considering >what crap the OSS API in reality is (well, as an excuse, its old and >it is only the kernel API ...) the discussion only happens, IMHO, because ALSA has taken so long and gone through so many API-incompatible changes. as a result, we still have lots of OSS-API using software around which might have been recoded 2 years ago under different circumstances. if ALSA had been ready with the 0.5 series, i don't think we'd be talking about this...