Re: [ecasound] regions, gate, looping, etc

New Message Reply Date view Thread view Subject view Author view Other groups

Subject: Re: [ecasound] regions, gate, looping, etc
From: Kai Vehmanen (
Date: Thu Sep 30 1999 - 16:29:42 EEST

On Thu, 30 Sep 1999, Jeremy Hall wrote:

>> - a "masking" feature which can be used to select a specific
>> region
>> - this region will be used for input and output instead
>> of the actual input/output object
> ah, so this means you could feed the output of a chane into the input of
> another chane? hmm HIGH

Hmm, this might work, but I think a separate loop io-type would be
better for this. For instance something like:

ecasound -a:1 -i somefile.wav -o loop,0 \
         -a:2 -i loop,0 -o someother.wav

IMHO, simple and easy to use.

> It says in 1.5, we support external editors for wav form editors as well
> as editing chain files. How do we do that? would be nice to be able to
> spawn a shell from ecasound (with a security option that whines so the
> secure people can turn it off)

Well, this is available only in qtecasound. I'll add commands
for these to interactive-mode...

>> PS List of other planned features is at:
> Whatis an all pass filter?

As the name says, it's a filter that passes all frequencies.
What makes it useful is that it's phase-delay is dependant
on frequency. Allpass filters are used in many effect algorithms
(chorus, reverbs, etc).

> whatis generic envelope followers?

Signals can be analyzed in endless number of ways
(amplitude, RMS-volume, FFT, ...). Generic envelope
follower is a abstract interface to this information.
In other words you could control effects/chainops/whatever with
a generic envelope follower and not care about where it's
coming from.

> whatis SOM?

Simple Object Model. Similar to CORBA, but lightweight and
C++ oriented. Doesn't affect the average user.
> what are plugins? external processers?

External effect and i/o modules that can be dynamically loaded.
For example you download a vocoder plugin, install it and
ecasound is now able to use it. The plugin format will probably
be OAS (open-plugin-architecture), if it ever gets ready
for use.

> would like to see a scripting language, probably available on 1.7 when we
> have metranome and time sync

A simple one maybe. I want to avoid reinventing the wheel whenever
I can. For instance, I don't want to add synthesis to ecasound,
because we already have many advanced synthesis packages (csound,
quasimodo, arts, etc). Similarly I don't want ecasound to compete
with advanced mixing languages like Cmix. As ecasound is free
software, I will always have limited time for its development.
Optimally, using external packages with ecasoun and coding new
audio-objects, effects, etc would be as easy as possible.

> would like to see fader effects, should be easily put in place since the
> functionality exists for the mono gate

Me too! ;) The biggest problem is that ecasound's effects/chainops
just process sample data, they don't know about how much input
there will be or when processing was started. And I want to keep it
that way. But to implement fading you need this information. You can
already do fading by adding a new generic-envelope to
"/usr/local/share/ecasound/generic_oscillators" ... For instance:

--cut /usr/local/share/ecasound/generic_oscillators --
3 L 0.0 1.0;

And then:

ecasound -a:1 -i track02.wav -o alsa,1,0 -ea:100 -kf:1,0,100,0.5,3

This will fade-in every 0.5 seconds (oscillator frequency = 0.5Hz).
But of course, not very user-friendly. ;)

> the ability to change effect parameters inline without needing to load a
> new chain setup file

Yes, this will be added. Engine already supports this.

> the ability to start running when a chain file is loaded
> automatically

Well, this is easy to add. Should this be a command line option,
possible a ~/.ecasoundrc entry, ...?

> the ability to load the new effects for the new setup, then "hot cut"
> between the setups

This can already be done in qtecasound. Again, I'll have to add
iactive-mode commands for these.

> add an effect that spews hords of data about the FFT so you can determine
> what frequency range you want to block to remove unwanted garbage. This
> should be accompanied by a threshold that is setable to mark how loud the
> noise needs to be before it is reported.

Implementing this won't be easy. For now you're better off using
a separate FFT-analysis program.
> when applying an effect, the amplitude seems to change on the other side,
> for example, when applying a band reject filter, the amplitude seems to
> get louder, so you manually have to apply a eas effect to turn it down a
> bit. What would be nice is if you could have an effect set that in
> essence brutally compresses the signal then gives it to you at max
> amplitude--this would be used for testing effects, probably not in
> production recording.

It's not easy to come up with a generic solution to this. Of course
you can just add compressor (-eca) to your chain. It will keep the
volume level constant.

> In release 12, the ev counters for max amplitude do not seem to change
> even after typing es for effect status. This makes it a bit hard to
> realtime set the amplitude of an input.

This was fixed in 1.5.15r6 (won't be publically released as some
functions are not working properly).

> I'm sure I will come up with more "wishes" for you, I am merely looking at
> this from a user perspective, not necessarily a coding perspective.

Your comments have been very helpful!

Kai Vehmanen <> -------- CS, University of Turku, Finland
 . - linux audio processing
 . - ambient-idm-rock-... mp3/ra/wav

New Message Reply Date view Thread view Subject view Author view Other groups

This archive was generated by hypermail 2a24 : Thu Sep 30 1999 - 16:43:01 EEST