Prototype text-mode front-end for Ecasound

New Message Reply About this list Date view Thread view Subject view Author view Other groups

Subject: Prototype text-mode front-end for Ecasound
From: Joel Roth (
Date: Tue Aug 26 2003 - 08:11:38 EEST

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:

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:


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

New Message Reply About this list Date view Thread view Subject view Author view Other groups

This archive was generated by hypermail 2b28 : Wed Aug 27 2003 - 08:05:02 EEST