Joel Roth | 26 Aug 07:11

Prototype text-mode front-end for Ecasound

Ecmd is a perl script that converts a session file 
as simple as
---
rec 1 piano.wav
rec 2 vocal.wav
---
to an Ecasound .ecs file.

A separate configuration file holds
other details, and once right you won't need to
change it much.

A session file can have multiple setups like the one above.
Each setup--which I call a 'take'-- is a mapping of input channels
to .wav file names.

Ecmd's interactive mode allows you to iterate over a session file, 
recording and selecting tracks through multiple setups.

Here are some typical commands:

	rec piano     # record a new version of piano

	mon vocal 2   # monitor the second version of vocal.wav

	take 2        # record using setup 2, all rec tracks

	mon 2_2       # mon the _2 version of all tracks in take 2

	rec piano sax vocal

		      # rec new versions of these three tracks

Some features

+ Easy transition between recording and monitoring
+ Easy managment of multiple track versions
+ Automatic generation of .ecs files
+ Direct invocation of Ecasound
+ Simple configuration file serves as map for entire recording session
+ Simple interactive mode manages session
+ Easy to hack: perl using yacc-like Parse::RecDescent grammar
+ Self documenting, look at the grammar files to see commands allowed
+ Command history

Future TODO and WISHLIST features (sorry.. ran out of time)

+ Saving state between invocations 
+ Different general parameter sets for monitoring and recording
+ Better integration with Ecasound using Audio::Ecasound
+ Tk based UI, cf. Tkeca
+ Marks
+ Documentation 
+ Automatic storage management to avoid disk-related xruns

This is my first release, alpha-level software.
Use for production at your own risk.  That said, it seems quite stable.

You can download it from my web page:

http://tiki.net/~jroth

Bug reports and feedback welcome, leave 2wks vacation tomorrow

Here is a screen shot
=-=-=-=-=-=--==-=-=-=--=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        Welcome to Ecmd, simple user interface to amazing ECASOUND.....
=-=-=-=-=-=--==-=-=-=--=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        Version 0.20

        This session is for RECORDING

        Active take { 2 - vocals  }  Visible { 1 2 3 }  All { 1 2 3 }

        Recording tracks:     ch   name
                             ====  =====================
                              2    vocal1_3.wav
                              3    vocal2_3.wav
                              4    sax_3.wav
                              5    trombone_3.wav
                              6    kalimba_3.wav

        Monitoring tracks:    ch   name
                             ====  =====================
                              1    yes1.wav
                              10   bass_6.wav
                              3    piano_6.wav
                              4    guitar_6.wav
                              5    snare_6.wav
                              6    kick_6.wav
                              7    hats_6.wav
                              1    yes2.wav
Type 'GO' or enter command: 

------------------------------<end>--------------------------------------------

And here is the corresponding .ecs file. 

# ecasound chainsetup file

# general

-b:128 -r:1 -z:intbuf -z:db,100000 -X -z:nopsr

# audio inputs

-a:1 -f:16,2,44100 -i:/space/sounds/yes1.wav  -f:16,2,44100 
-a:2 -f:s16_le,1,44100,i -i:/mnt/hdd16/test1/bass_6.wav  -erc:1,10 -eac:0,1 
-a:3 -f:s16_le,1,44100,i -i:/mnt/hdd16/test1/piano_6.wav  -erc:1,3 -eac:0,1 
-a:4 -f:s16_le,1,44100,i -i:/mnt/hdd16/test1/guitar_6.wav  -erc:1,4 -eac:0,1 
-a:5 -f:s16_le,1,44100,i -i:/mnt/hdd16/test1/snare_6.wav  -erc:1,5 -eac:0,1 
-a:6 -f:s16_le,1,44100,i -i:/mnt/hdd16/test1/kick_6.wav  -erc:1,6 -eac:0,1 
-a:7 -f:s16_le,1,44100,i -i:/mnt/hdd16/test1/hats_6.wav  -erc:1,7 -eac:0,1 
-a:8 -f:16,2,44100 -i:/space/sounds/yes2.wav  -f:16,2,44100 
-a:9,10,11,12,13 -f:s32_le,12,44100,i -i:alsa,ice1712

# audio outputs

-a:9 -erc:2,1 -f:s16_le,1,44100,i  -o:/mnt/hdd16/test1/vocal1_3.wav
-a:10 -erc:3,1 -f:s16_le,1,44100,i  -o:/mnt/hdd16/test1/vocal2_3.wav
-a:11 -erc:4,1 -f:s16_le,1,44100,i  -o:/mnt/hdd16/test1/sax_3.wav
-a:12 -erc:5,1 -f:s16_le,1,44100,i  -o:/mnt/hdd16/test1/trombone_3.wav
-a:13 -erc:6,1 -f:s16_le,1,44100,i  -o:/mnt/hdd16/test1/kalimba_3.wav
-a:1,2,3,4,5,6,7,8 -f:s32_le,10,44100,i -o:alsa,ice1712

The 'test1' session file and dummy .wav files in the tarball were used
for this example.

--

-- 
Joel Roth

--
To unsubscribe send message 'unsubscribe' in the body of the
message to <ecasound-list-request <at> wakkanet.fi>.


Gmane