The info in this file is not accurate, it was a first try. Don't believe it.
------------------------------
We have channel lists.
One list is the main list, that contains all the channels stack.
Then, we have lists for mixers, so you can hear specific audio
data at one time, or when you record.
Channel lists are used by mixers.
Each element of a channel list is a stack of channels.
A channel will have a subchannel. The bottom of the stack
is an input channel, which is associated to a file.
Then, we have panning channels, which will put the subchannel
more or less to the left or to the right.
We have the volume chanel, which will set the volume of the
associated subchannel (it's a gain static adjustor let's say).
We have the positionner, which will decide at what time the
subchannel has to start, and at what position and for what len
in it.
A positioner must have for child an inuput channel. All its
code relies on it. Others configurations will probably
let the program crash.
We have various mixers.
There is the stereo audio live output.
There is the mono live output.
And we have file saver mixers too, both mono and stereo.
There are recorders, which are speacial mixers.
The simpler one simply records audio data. It will then add
a new channel stack which will contain a positioner, a panner
and a volume on top of the data recorded.
We have the live recorder, which requires a full duplex capable
audio card.
