How about docs for the mixer interfaces? or a simple
HOWTO.
the mixer interface is a problem. OSS glosses over this by hiding 90%
of the capabilities of most hardware mixers and stuffing it into an
incredibly simplified model that then prevents users from doing things
that they can do under Windows. ALSA messes it up by exporting 90% of
the capabilities of most hardware mixers into user space and leaving
the complexity for someone else to deal with :)
takashi and jaroslav are working on the issues. i think their approach
is correct (export the hardware capabilities, wrap them in alsa-lib to
provide a simple interface for most apps and users) but it requires
significant amounts of coding and won't emerge in a few days.
Alsa/Jack is wonderful, and greatly more flexible than
OSS, and is what linux
needs to move to more professional recording software, but it does take more
lines of code than OSS to do simple things. With OSS, I can have the device
opened and playing audio in about 5 lines of code.
assuming that your requirements are met by OSS's incredibly simplistic
model of an audio device driver. need to control xrun detection? want
to avoid starting the device until you've got enough data ready? want
to use non-interleaved access? want to use a sample rate or sample
format not supported by OSS? well, it won't take 5 lines, or 50 lines
or 500 lines of code: you simply can't do any of this in OSS.
JACK is explicitly NOT more flexible than OSS. its vastly LESS
flexible. that's the whole point. 90% of audio apps don't need to
concern themselves with the details of interacting with audio
interface hardware. so JACK removes all of that: you get one sample
format, a predefined sample rate and a somewhat inflexible buffer
size. the tradeoff: your code gets much simpler, and you can forget
about the hardware, which is good because it might not even be running
or in use! plus you're running in a way that is well suited for the
fundamentally real-time nature of audio.
OTOH, JACK requires less lines of code than OSS to get up and running :)
--p