Mercurial > hg > silvet
diff testdata/TRIOS-silvet/calculate.sh @ 68:4ea3ef5c696a
Simplify naming, handle files individually, scale inputs
author | Chris Cannam |
---|---|
date | Tue, 29 Apr 2014 10:42:53 +0100 |
parents | 0607b9fce963 |
children | 9c7e6086192d |
line wrap: on
line diff
--- a/testdata/TRIOS-silvet/calculate.sh Mon Apr 28 17:37:13 2014 +0100 +++ b/testdata/TRIOS-silvet/calculate.sh Tue Apr 29 10:42:53 2014 +0100 @@ -20,6 +20,11 @@ exit 1 fi +if ! sox --version ; then + echo "Failed to run sox (not in PATH?), giving up" + exit 1 +fi + for d in brahms lussier mozart schubert take_five; do dir="$trios_path/$d" outdir="$outbase/$d" @@ -27,22 +32,27 @@ echo "TRIOS subdir $dir not found, skipping it" else mkdir -p "$outdir" - VAMP_PATH=../.. sonic-annotator \ - --writer csv \ - --csv-basedir "$outdir" \ - --csv-force \ - --default vamp:silvet:silvet:notes \ - --recursive \ - "$dir" + for w in "$dir"/*.wav; do + wbase=`basename "$w" .wav` + outlab="$outdir/$wbase.lab" + echo "Processing wav file $w, writing to lab file $outlab" + # The MATLAB method starts by normalising to a peak 0.5 + # (approx -3dBFS amplitude or -6dB power). We can't do + # that in the plugin, so must do it here + tmpwav="$outdir/$wbase.norm.wav" + sox "$w" "$tmpwav" gain -n -6.020599913279624 + VAMP_PATH=../.. sonic-annotator \ + --writer csv \ + --csv-stdout \ + --csv-force \ + --default vamp:silvet:silvet:notes \ + "$tmpwav" | \ + while IFS=, read start duration frequency level label; do + end=`echo "$start $duration + p" | dc` + echo -e "$start\t$end\t$frequency" + done > "$outlab" + rm "$tmpwav" + done fi - echo "Converting to lab files..." - for csv in "$outdir"/*.csv; do - cbase=`basename "$csv" .csv` - cat "$csv" | while IFS=, read start duration frequency level label; do - end=`echo "$start $duration + p" | dc` - echo -e "$start\t$end\t$frequency" - done > "$outdir/$cbase.lab" - rm "$csv" - done done