On Thu, Mar 02, 2006 at 12:59:12PM +0000, James Courtier-Dutton wrote:
If you don't like the current documentation, you
are welcome to improve it.
Just update the wiki.
I'd be happy to, if only I could just be a bit more confident
about my own knowledge. Currently I'm really in no position to
contribute anything that I'd consider to be reliable information.
When you have to find out things by guessing and trial and error,
and finally arrive at something that works, your understanding
of the underlying concepts could be completely wrong. I hate
to say this, but that's how the MIDI interface in Aeolus was
written. The ALSA audio part (libclalsadrv) was based 100% on
a deconstruction of JACK's ALSA backend.
Just one simple example (from the top of my head, so it may
contain inaccuracies).
In the ALSA seq world, ports can be readable, writeable, and
those two attributes also have variants referred to by the
term 'subscription'. I found out you need these, as otherwise
your ports don't seem to exist at all. So what does this term
really mean ? As far as my understanding goes, its real meaning
is more something like 'public' or 'visible'. But I'm just
guessing...
Also, an app can create any number of ALSA seq 'devices' and
each 'device' can have multiple 'ports'. What is the rationale
behind this two-level scheme ? When would I prefer to use
N single port devices rather that one device with N ports ?
This sort of thing is never explained, AFAICS.
I'm pretty sure all these things (and many other that remain
a mystery) are well designed and the result of considerable
amount of thinking and consideration. But I don't find it
in the documentation. This is often the case with doxygen
documented systems - the top level design documents just
don't exist.
--
FA