Re: starting ecasound at boot, in a terminal window

john gibby <[email protected]> Fri, 30 Jun 2017 06:06:23 -0400
Newsgroups gmane.comp.audio.ecasound.general
Message-ID <CAPHHX=N4yOTGebOvfDfkJ5mNkGkzFcYx6GDd3WSQUYf5DHm1OA@mail.gmail.com>
Well, this is a cool idea, thanks!  So it would look for audio until we
either play a movie or start playing the piano, and then execute the proper
crossover script and exit, right?

I hear some folks saying how Linux is a bad situation for musicians (too
much fiddling required), but I just doubt if one has this kind of
flexibility so easily, with Windows and J. Rivers...
I will try it... thanks again!
John


On Mon, Jun 26, 2017 at 3:50 PM, Joel Roth <[email protected]> wrote:

> john gibby wrote:
> > I read that carefully Joel, very interesting.  Will follow what you send
> > next... :)
>
> Hi John,
>
> Here is a simple script that exits saying "found audio!"
> when audio is substantially present at ALSA soundcard channel 1.
> It simply spawns a new copy of Ecasound every 2s.
>
> This, or something like it, could drive your configuration
> switching.
>
> Have a nice day!
>
> Joel
>
> --
>
> #!/usr/bin/env perl
> use 5.014;
> use strict;
> use warnings;
> while (1){
>         my $command = 'ecasound -i alsa,default -ev -t 2 -o null';
>         #my $command = 'ecasound -i:select,10,30,/home/jroth/music/tmh.wav
> -ev -t 2 -o null';
>         open my $fh, "-|", $command;
>         my $rx = qr/Pos\s+-([123])0dB:[_ ]+(\d+)/;
>         my $count = 0;
>         my $matches;
>         while (<$fh>){
>                 chomp;
>                 next unless my($n, $ch1) = /$rx/;
>                 say STDERR;
>                 $count += $ch1;
>         }
>         #say $count;
>
>         say("found audio!"), exit if $count > 5000;
> }
>
> __END__
>
> 40k samples for one channel, 2s of mild organ music
> 13k samples for one channel, 2s of low voice continuuous into mike
>
>
> __DATA__
> Pos  -10dB: __206742 __280703
> Pos  -20dB: _1177971 _1203440
> Pos  -30dB: _1035427 __988797
>
>
>
>
> > On Tue, Jun 20, 2017 at 6:00 AM, Joel Roth <[email protected]> wrote:
> >
> > > john gibby wrote:
> > > >  I have one chainsetup for watching movies, and a different one for
> my
> > > > Pianoteq piano application (included below).  I would like the piano
> > > > crossover to come up automatically when I start the computer, but I
> want
> > > it
> > > > to be convenient to change the chainsetup, for when we want to watch
> a
> > > > movie.
> > >
> > >
> > > Hi,
> > >
> > > First, thanks for this application example, which is to
> > > switch between to Ecasound setups, possibly sensing a signal
> > > in a priority input channel and switching over to that
> > > channel when an audio source is present.
> > >
> > > I have been looking into how near this application would be
> > > possible under Nama, which aspires to be a sort of Bat
> > > Utility Belt for audio processing with Ecasound.
> > >
> > > To start with, I ported John's Ecasound chain setup to Nama
> > > commands, omitting the presets and replacing the chorder
> > > operators with Nama's routing conventions. That's all
> > > I'll cover in this posting.
> > >
> > > Here's his setup:
> > >
> > >
> > > > -n:crossover_3chan_piano_cs \
> > > >           -a:pre1    -pf:./pre1.ecp  -f:f32_le,5,48000 -i:jack
> -o:loop,1
> > > \
> > > >           -a:pre2,woofer,center,rear -f:f32_le,5,48000 -i:loop,1 \
> > > >           -a:pre2    -pf:./pre2.ecp  -o:loop,2 \
> > > >           -a:mid,tweeter             -f:f32_le,5,48000 -i:loop,2 \
> > > >           -a:woofer  -pf:./woofer.ecp
> -chorder:1,3,0,0,0,0,0,0,0,0 \
> > > >           -a:mid     -pf:./mid.ecp
>  -chorder:0,0,1,2,0,0,0,0,0,0 \
> > > >           -a:tweeter -pf:./tweeter.ecp
>  -chorder:0,0,0,0,1,2,0,0,0,0 \
> > > >           -a:center  -pf:./center_nodelay.ecp
> > > -chorder:0,0,0,0,0,0,3,0,0,0  \
> > > >           -a:rear    -pf:./rear.ecp
> -chorder:0,0,0,0,0,0,0,0,4,5 \
> > > >           -a:woofer,mid,tweeter,center,rear -f:f32_le,10,48000
> -o:jack \
> > > >           -a:all -z:mixmode,sum -z:nodb -B:rtlowlatency -b:64
> > >
> > > Here's the track listing the results after running
> > > crossover.nms, my port of the above. You can see most of the
> > > routing: e.g. the source and destination of each track.
> > >
> > >  No. Name       Requested  Status  Source                Destination
> > >  Vol   Pan
> > > ============================================================
> > > ====================
> > >   1  Main                  OFF     --                    --
> > >  --    --
> > >   2  Mixdown               OFF     --                    --
> > >  --    --
> > >   3  pre1                  MON     1/2/3/4/5             --
> > >  --    --
> > >   4  pre2                  MON     pre1                  --
> > >  --    --
> > >   5  woofer                MON     pre1                  1/2
> > > --    --
> > >   6  center                MON     pre1                  7
> > > --    --
> > >   7  rear                  MON     pre1                  9/10
> > >  --    --
> > >   8  mid                   MON     pre2                  3/4
> > > --    --
> > >   9  tweeter               MON     pre2                  5/6
> > > --    --
> > >
> > > And here is the chain setup, showing additional channel
> > > routing. You can also see how Nama uses jack_multi to route
> > > soundcard inputs and outputs. The chain IDs below correspond
> > > to the track numbers above.
> > >
> > > # ecasound chainsetup file
> > >
> > > # general
> > >
> > > -z:mixmode,sum -G:jack,Nama,send -b 256 -z:db,100000 -z:nointbuf
> > > -f:f32_le,10,48000
> > >
> > > # audio inputs
> > >
> > > -a:3 -i:jack_multi,system:capture_1,system:capture_2,system:
> > > capture_3,system:capture_4,system:capture_5
> > > -a:4,5,6,7 -i:loop,pre1_out
> > > -a:8,9 -i:loop,pre2_out
> > >
> > > # post-input processing
> > >
> > > -a:5 -chmove:3,2
> > > -a:6 -chmove:3,1
> > > -a:7 -chmove:4,1 -chmove:5,2
> > >
> > > # audio outputs
> > >
> > > -a:3 -o:loop,pre1_out
> > > -a:4 -o:loop,pre2_out
> > > -a:5 -o:jack_multi,system:playback_1,system:playback_2
> > > -a:6 -o:jack_multi,system:playback_7
> > > -a:7 -o:jack_multi,system:playback_9,system:playback_10
> > > -a:8 -o:jack_multi,system:playback_3,system:playback_4
> > > -a:9 -o:jack_multi,system:playback_5,system:playback_6
> > >
> > > Okay, here is the script responsible for the above. Note
> > > that tracks can be connected without specifying a loop
> > > device.
> > >
> > > # crossover.nms
> > >
> > > # create tracks and move them to the Aux bus (avoiding automated
> routing)
> > >
> > > add-tracks pre1 pre2 woofer center rear mid tweeter
> > > for        pre1 pre2 woofer center rear mid tweeter; move-to-bus Aux
> > >
> > > select-track pre1
> > > set-track width 5
> > >
> > > for pre2 woofer center rear; source track pre1
> > >
> > > woofer # equivalent to 'select-track woofer'
> > > add-effect chmove 3 2
> > > stereo
> > > send 1 # send output to soundcard starting at channel 1
> > >
> > > for mid tweeter; source track pre2
> > >
> > > mid
> > > stereo
> > > send 3 # send output to soundcard starting at channel 3
> > >
> > > tweeter
> > > stereo
> > > send 5
> > >
> > > center mono
> > > add-effect chmove 3 1
> > > send 7
> > >
> > > rear
> > > stereo
> > > afx chmove 4 1 # shortcut for 'add-effect'
> > > afx chmove 5 2
> > > send 9
> > >
> > > for Aux; remove-fader-effect pan; remove-fader-effect vol
> > > Main off; rffx vol; rffx pan # shortcut for 'remove-fader-effect'
> > >
> > > cheers,
> > >
> > > --
> > > 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
> > > [email protected]
> > > https://lists.sourceforge.net/lists/listinfo/ecasound-list
> > >
>
> > ------------------------------------------------------------
> ------------------
> > 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
> > [email protected]
> > https://lists.sourceforge.net/lists/listinfo/ecasound-list
>
>
> --
> 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
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/ecasound-list
>

------------------------------------------------------------------------------
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
[email protected]
https://lists.sourceforge.net/lists/listinfo/ecasound-list