On Saturday 15 November 2008 07:22:16 pm Hannu Savolainen wrote:
ALSA's design philosophy has been to expose all
aspects of the sound
hardware to the applications so that they can play with any of them.
This is all bullshit.
So the solution is to say "stupid application programmers, they can't be
expected to know any better", and then hardwire logic into the driver system
to force it to use the behavior appropriate for an MP3 player? I'm not sure
that this is a smart design tradeoff.
If you look at any kernel level subsystem such as
networking or access
to ordinary disk files. None of such applications want to know anything
about the actual hardware details. I have not seen any PHP or CGI
scripts/programs that try to switch the NIC card to use 1 gigabit
signalling rate instead of the 10 mbit one supported by the network HUB.
Actually, I can think of cases where something like that could be extremely
useful -- a network analyzer or monitor, for example. It's not a common
requirement (just as altering the sample clock sync source is not a common
requirement for most audio apps), but absolutely needed for some problem
domains.
One of the nice things about the Un*x design paradigm is how the goal is
consistently been "to make simple things easy, and hard things possible".
Unfortunately, in the world of audio APIs, it seems that we've fallen between
two stools: we have one API that makes simple things easy, but hard things
*impossible*, and another that makes *everything* possible, but also hard.
How do we bring these two worlds together?
Cheers!
|-------------------------------------------------------------------------|
| Frederick F. Gleason, Jr. | Chief Developer |
| | Paravel Systems |
|-------------------------------------------------------------------------|
| There are two ways of constructing a software design. One is to make |
| it so simple that there are obviously no deficiencies; the other is |
| to make it so complicated that there are no obvious deficiencies. |
| The first method is far more difficult. |
| --C.A.R Hoare |
|-------------------------------------------------------------------------|