Subject: Prototype text-mode front-end for Ecasound
From: Joel Roth (jroth_AT_mauigateway.com)
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:
------------------------------<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
This archive was generated by hypermail 2b28 : Wed Aug 27 2003 - 08:05:02 EEST