#!/bin/sh
#
# guitar_mix_rec.sh
#
# wrapper script to call guitar_mix_pre scripts
# cd to temporary directory and start ecasound

bin_dir=/home/eric/bin/guitar_mix
tmp_dir=/dev/shm/guitar_mix/
out_dir=/mnt/audio/in_progress/guitar_mix 
eca="ecasound"
ldate=`date +%Y-%m%d-%H%M`
mono_file=p$ldate.wav
stereo_file=s$ldate.ogg

### PRE PROCESSING
#

# randomly select 9 ~5min files from pool
$bin_dir/guitar_mix_pre.py

# ~9 min files are here:
cd $tmp_dir

# loop using ecasound to concatenate
# 9 ~5min files -> 3 ~15min files
c=0
for i in `seq 1 3`; do
    #first 1/3
    mv -f $c.wav track$i.wav
    #second 1/3
    c=$(($c+1))
    $eca -i $c.wav -o track$i.wav -y:302
    rm -f $c.wav
    #third 1/3
    c=$(($c+1))
    $eca -i $c.wav -o track$i.wav -y:604
    rm -f $c.wav
    c=$(($c+1))
done

# cut track1 to use only first 450 seconds
# time stretch w/ -ei:50

ecasound -i:track1.wav -f:16,1,44100 -o:foo.wav -t:450
rm -f track1.wav
ecasound -i:foo.wav -f:16,1,44100 -o:foo1.wav -ei:50
rm -f foo.wav
ecasound -i:foo1.wav -f:16,1,44100 -o:track1.wav -t:900 -ea:100 -kl2:1,100,0,890,10
rm -f foo1.wav

### RECORDING
#

# ecasound session to record new track w/4 mixed tracks
### DEBUG
$eca -s:$bin_dir/guitar_mix.ecs

### POST PROCESSING
#

# ecasound session outputs here
cd $out_dir

### use $RANDOM to set -y 
# seed RANDOM w/PID
RANDOM=$$
RANGE=606
# stereo offset
sos=$RANDOM
let "sos %= $RANGE"
# pool offset
pos=$RANDOM
let "pos %= $RANGE"

$eca -i stereo_out.wav -y:$sos -f:24,2,44100 -o stereo_out1.wav -t:301 -ea:0 -kl:1,0,100,10 -ea:0 -kl2:1,100,0,291,10
ecanormalize stereo_out1.wav
### FIXME: mono_out.wav is going away. grab mono chunk from stereo_out.wav and use -erm:1 to mix to mono.
$eca -i stereo_out.wav -y:$pos -f:24,1,44100 -o $mono_file -t:301 -erm:1 -ea:0 -kl:1,0,100,10 -ea:0 -kl2:1,100,0,291,10
ecanormalize $mono_file

ecaplay stereo_out1.wav
ecaplay $mono_file

$eca -i stereo_out1.wav -o $stereo_file

rm -f stereo_out.wav stereo_out1.wav

### FIXME: move final files to /mnt/audio/pool/guitar_mix/ 
###        and /mnt/audio/finished/guitar_mix/
