Re: [ecasound] The result of my work

From: Kai Vehmanen <kvehmanen@email-addr-hidden>
Date: Thu Sep 01 2005 - 01:36:05 EEST

On Wed, 31 Aug 2005, Dubphil wrote:

> here is the result of my early work on ecasound :
> ecasound -c \
> -G:jack,ecasound,notransport \
> -Md:alsaseq \
> -a:bass_L,bass_R,low,mid_L,mid_R,high,full -i:jack \
> -a:tb303 -i:jack -a:all -ea:100 -km:1,0,100,7,6 -o:jack \
> -a:bass_L -erc:2,1 \
> -el:mbeq,0,10,-22,-34,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70 \
> -ea:100 -km:1,0,100,7,1 \
> -a:bass_R -erc:2,1 \
> -el:mbeq,0,10,-22,-34,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70 \
> -ea:100 -km:1,0,100,7,1 \
> -a:low -efb:500,400 -ea:100 -km:1,0,100,7,2 \
> -el:tap_stereo_echo,200,90,200,90,-3,-3 \
> -km:1,100,400,1,1 -km:3,100,400,1,1 -km:2,0,100,2,1 -km:4,0,100,2,1 \
> -a:mid_L -erc:2,1 \
> -el:buttlow_iir,8000,0.755 -km:1,0,21600,3,1 -km:2,0.100,1.41,4,1 \
> -ea:100 -km:1,0,100,7,3 \
> -el:tap_stereo_echo,200,90,200,90,-3,-3 \
> -km:1,100,400,1,1 -km:3,100,400,1,1 -km:2,0,100,2,1 -km:4,0,100,2,1 \
> -a:mid_R -erc:2,1 \
> -el:buttlow_iir,8000,0.755 -km:1,0,21600,3,1 -km:2,0.100,1.41,4,1 \
> -ea:100 -km:1,0,100,7,3 \
> -el:tap_stereo_echo,200,90,200,90,-3,-3 \
> -km:1,100,400,1,1 -km:3,100,400,1,1 -km:2,0,100,2,1 -km:4,0,100,2,1 \
> -a:high -efh:1300 -ea:100 -km:1,0,100,7,4 \
> -el:tap_stereo_echo,200,90,200,90,-3,-3 \
> -km:1,100,400,1,1 -km:3,100,400,1,1 -km:2,0,100,2,1 -km:4,0,100,2,1 \
> -a:full -ea:100 -km:1,0,100,7,5 \
> -a:tb303 -el:tap_stereo_echo,200,90,200,90,-3,-3 \
> -km:1,100,400,1,1 -km:3,100,400,1,1 -km:2,0,100,2,1 -km:4,0,100,2,1

Whoah, that's quite a setup to start with! :) Let's take a closer look...

> 1 - first, is there a way to get something simpler ?

I'm afraid no, at least I didn't notice anything obvious to simplify.
You can clear it up a bit with consistent layout (try 'cs-save-as
foo.ecs' and take look at created foo.ecs ... might be easier read).

> I tried to do a group of chain to attach to one "tap_stereo_echo" but
> the effect looks like it was not applied :
> -a:low,mid_L,mid_R,tb303 -el:tap_stereo_echo...etc

Yep, you can't add a single object to multiple chains at the same time.
You can work around this with loop devices:

-a:low,mid_L,mid_R,tb303 -o loop,1
-a:mix1 -i loop,1 -o jack -el:tap_stereo_echo,x,y

> 2 - I'm not sure how splitting a stereo channel into the left and the
> right channel (bass_L,bass_R or mid_L,mid_R)
> I don't think that -a:mid_L -erc:2,1 ...etc
> I want to split the channels in order to keep the stereo, because mbeq and
> buttlow_iir are mono effects. Am I wrong ?

Check the "Problems with panning mono files" from Ecasound User's Guide.
That might help a bit. The general idea is:

-f:32,2,44100 -a:stereochain -i jack -o jack -el:tap_stereo_echo -el:mbeq

This will read two channels from jack and route them through
the 'stereochain'. For multi-channel LADSPA plugins, channels are mapped
n:n (i.e. tap_stereo_echo processes the two channels as you would expect).
For mono plugins, ecasound creates a new instances for each channel =>
ecasound processes both channels with mbeq.

If you replace -f:32,2,44100 with -f:32,8,44100 (causing ecasound to read
eight channels from jack, tap_stereo_echo will only process the two first
channels, but mbeq will be applied to all).

> 3 - I don't understand why the control behind the -a:all is not working to
> control the level of the output of all the chains : I can't make all the
> sound shutdown. There is always the sounds from all the chains

Same reason as above, the -ea:100 cannot be added to multiple chains at
the same time. Thus '-a:all -ea:100' is equivalent to '-a:bass_L -ea:100'
(bass_L is the first chain in the set of active chains).

Note to myself, ecasound should really raise an error in this case (has
been on my todo-list for a long time... I really should add this).

> 4 - the buttlow_iir LADSPA plugin (GLAME butterworth low pass filter) is
> buggy I presume. The sound resulted from the overall chainsetup is
> inaudible.

I recommend using 'cs-status' and 'cop-status' interactive-mode commands
to debug what is happening (especially to see how objects are really

Especially good debugging trick is to start processing ('start') and
during process, modify effect parameters with "c-select bass_L" + "cop-set
1,5,-10" style command combinations. As you can hear the results in
real-time, it's easier to understand what is going on.

And of course, remember to use the functionality provided by ecasound's
use of GNU readline (command history), so you don't have to type so much.:)

> I have carefuly red the manuals and the man despite the fact that english
> is not my mother language.

Don't worry, the manuals were written mostly by people who are
still learning the language themselves. ;)

  links, my public keys, etc at
SF.Net email is Sponsored by the Better Software Conference & EXPO
September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices
Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA
Security * Process Improvement & Measurement *
Ecasound-list mailing list
Received on Thu Sep 1 04:15:05 2005

This archive was generated by hypermail 2.1.8 : Thu Sep 01 2005 - 04:15:06 EEST