Subject: Re: [linux-audio-dev] Ecasound question
From: Kai Vehmanen (kai.vehmanen_AT_wakkanet.fi)
Date: Tue Feb 03 2004 - 21:50:52 EET
On Tue, 3 Feb 2004, Fons Adriaensen wrote:
> Still trying to understand that. Could you give a practical
> example ? Say e.g. that I want to play t2.wav and t5.wav to
> outputs 2 and 5, and record from inputs 1 and 6 to t1.wav and
> t6.wav. This emulates an 8-track machine playing back two
> channels and recording two others. How would that be done ?
This kind of setup is probably easier to handle with JACK, but anyways,
still possible without it:
ecasound -a:1,6 -f:32,12,44100 -i alsa \
-a:1 -f:32,1,44100 -o t1.wav \
-a:6 -erc:6,1 -f:32,1,44100 -o t6.wav \
-a:2 -i t2.wav -ea:200 \
-a:5 -i t5.wav -erc:1,5 -ea:200 \
-a:2,5 -f:32,10,44100 -o alsa
Input object with the most channels determines the channel count of the
chain it is attached to. On the other end of the chains, if an output has
less channels than the chain it is attached to, extra channels are
discarded when writing to the output. With these simple rules you can
route audio between channels and chains, and without bloating the syntax
too much.
The '-ea:200' at the end of chains 2 and 5 helps to keep the volume
constant. This is ugly, but unfortunately something I cannot fix at this
point (I'd like to change the chain-mixing semantics from add'n'divide to
plain add'n'saturate like in most other systems, but unfortunately doing
the change now would break far too many existing scripts/sessions :( ...).
With JACK the above would be something like:
ecasound -f:32,1,44100 \
-a:1 -i jack -o t1.wav \
-a:6 -i jack -o t6.wav \
-a:2 -i t2.wav -o jack
-a:5 -i t5.wav -o jack
... so cleaner, but OTOH you have to manage the connections externally.
-- http://www.eca.cx Audio software for Linux!
This archive was generated by hypermail 2b28 : Tue Feb 03 2004 - 21:55:10 EET