Subject: Re: [ecasound] max decibels, mute-toggle, chain looping
From: Kai Vehmanen (k_AT_eca.cx)
Date: Tue Mar 18 2003 - 20:24:16 EET
On 3 Mar 2003, Adam Linson wrote:
> 1) I get the sense it is somehow possible to "cap max-output-dBs" in
> real-time, along the lines of "all output > n dBs = n dBs", but can't
> quite figure out how. It seems % measurements aren't that useful in this
The problem is what to do when the output is too loud. Ecasound
provides a few alternatives: -eal:peak-max-% limiter and the -eca
compressor. The first one will saturate all sample values that are over
the peak-value limit, while the compressor will kick in gradually.
> 2) At one point, there was a proposal (by Kai?) to specify "c-mute" more
> accurately as "c-toggle-mute", and thereby to allow a non-toggling
> implementation of "c-mute" in conjunction with "c-unmute". I now see the
> practicality of this, given that I am dealing with too many chains to
> keep track of and am forced to constantly poll the c-status to find out
> if a given chain is already muted or not. Has the proposal been
> abandoned? If so, any chance of resurrecting it? ;-)
This is tricky. I admit that it would be better to have c-mute and
c-unmute instead of the current toggling behaviour. On the other hand,
breaking old behaviour at this point is very bad, so there's no easy to
solve this. Possibly the most elegant solution would be to add c-is-muted.
> 3) I have been trying to get around the issue of audible breaks by
> adding ridiculous amounts of chains with unique inputs to a single chain
> setup, thus avoiding a lot of switching between chain setups. I then do
> a lot of muting to get the desired effect (see #2). I have reached a
> major limitation with inputs of different (often unknown) lengths and
> looping, which only appears to be possible at the cs level. Would it be
> possible to have a chain and/or audio-input loop independent of the cs
> loop, such that in a single chain setup, an input of 5 seconds in length
> would play twice for every time a 10-second input played once (keeping
> in mind the problem of unknown lengths)?
The chainsetup level looping is currently one big hack and I'd really like
to replace it with something more elegant.
Currently your best option is the ewf file format (see user's guide). It
allows you to do audio-object level looping.
In future, we have a choice of either extending the ewf-format (ewf-v2),
or adding special audio devices that provide looping, cutting, etc on the
command-line (something like: ecasound -i fseq,loop,foo.wav -o alsa).
I'm not yet sure which approach is better.
-- http://www.eca.cx Audio software for Linux!
This archive was generated by hypermail 2b28 : Tue Mar 18 2003 - 20:16:21 EET