Re: [ecasound] Ecasound volume/EQ control

From: Joel Roth <joelz@email-addr-hidden>
Date: Fri Apr 20 2018 - 10:24:03 EEST

On Thu, Apr 19, 2018, Sjoerd Venema wrote:
> Hi All,
>
> I am using Ecasound on a Raspberry Pi, which functions as a music player in
> my car and in a boombox.
> It has quite a variety of audio sources, which are all outputting into a
> Jack daemon.
 
> I’ve setup Ecasound to receive input from that Jack daemon, add an active
> filter, to spit out two mono signals, one for the sub and one for the
> woofer, and output to Alsa for playback on the speakers. This is the
> command I use:
> ecasound --server -z:nodb -z:mixmode,sum -a:pre -f:s32_le,2,44100 -i:jack
> -pf:/etc/pre.ecp -o:loop,1 -a:woofer,tweeter -i:loop,1 -a:woofer
> -pf:/etc/woofer.ecp -chorder:1,0 -a:tweeter -pf:/etc/tweeter.ecp
> -chorder:0,2 -a:woofer,tweeter -f:16,4,44100 -o:alsa
>
> So far, so good.

Hi Sjoerd,

Nice to hear about your project with RPi and ecasound!

Usually the JACK audio daemon, when running, grabs the audio device,
so that the output part of your setup would be -o:jack,system
 
> Unfortunately, my Alsa output, a DAC, doesn’t have a volume control
> interface. Could (should?) I (ab)use Ecasound as a volume controller and as
> “simple consumer”-style equaliser?

The alsamixer does provide a volume control for ALSA
devices.

> Or is Ecasound not intended for these things? And if so, would I need a
> (LADSPA?) plugin for this? If so, suggestions welcome ;-)

Ecasound is intended exactly for this purpose, and can host
LADSPA plugins to serve as an equalizer.

> (Jack doesn't have volume controls (the available plugins are all GUI, not
> suitable for my CLI-based Pi)).
>
> I have Pyecasound running, so ideally I’d control the EQ and Vol using the
> ECI commands using Python.
>
> In regards to volume control, I’ve found this message by Luke (
> http://nosignal.fi/ecasound-list/2007/09/0004.html). In a reply Kai suggest
> using cop-set on the amplification level to control volume. But (and this
> illustrates my lack of experience with Eca), cop-set requires a chain-op-id
> and param-id, how do I get these for the amplifier operator?

The following ECI snippet adds a gain control to the woofer
chain:

c-select woofer
cop-add -ea:100

To adjust the parameter of this chain operator, you have
to select it.

c-select woofer
cop-list
# get the index of the -ea operator
cop-select $index
copp-select 1
copp-set 50 # adjust volume

As discussed in the mail thread you reference, you will need to make many
small changes in volume (or use an envelope) to get a smooth transition.

> Do I have to
> actively add this chain-op to my chain setup, or is it always there? Also,
> in the above setup the -ea switch couldn't be parsed by ecasound.

See above. No operators are added by Ecasound. -ea:100
should work correctly.

> Sorry for the “green” question ;-)

Always pleasant to see someone finding new uses for
Ecasound, and this list welcomes all ecasound-related
questions, green or otherwise ;-)

hope this helps,

Joel

> Kind regards,
> Sjoerd Venema

-- 
Joel Roth
  
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Ecasound-list mailing list
Ecasound-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecasound-list
Received on Sun Jun 16 21:14:37 2019

This archive was generated by hypermail 2.1.8 : Sun Jun 16 2019 - 21:14:37 EEST