Mercurial > hg > mauch-mirex-2010
comparison featurescript.sh @ 0:4182672fd6f8
Initial commit of files from the mauch-MIREX directory on octave
author | Chris Cannam |
---|---|
date | Tue, 24 Apr 2012 11:52:05 +0100 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:4182672fd6f8 |
---|---|
1 #!/bin/bash | |
2 | |
3 base=/import/c4dm-music-a/C4DM\ Music\ Collection | |
4 | |
5 mine=`date '+%Y-%m-%d_%H.%M.%S'`_$$ | |
6 logfile="logs/$mine.log" | |
7 statusfile="logs/$mine.status" | |
8 matlogfile="logs/$mine.matlog" | |
9 mkdir -p logs | |
10 | |
11 echo "base: $base" | |
12 echo "log file to $logfile" | |
13 echo "overall status reports to $statusfile" | |
14 | |
15 report_failure() { | |
16 echo "FAIL $@" >> "$statusfile" | |
17 } | |
18 report_success() { | |
19 echo "WIN $@" >> "$statusfile" | |
20 } | |
21 report_existing() { | |
22 echo "HAZ $@" >> "$statusfile" | |
23 } | |
24 report_busy() { | |
25 echo "BUSY $@" >> "$statusfile" | |
26 } | |
27 | |
28 find "$base" -type d | while read source; do | |
29 | |
30 ls "$source" | fgrep -q .wav || continue | |
31 | |
32 echo "source: $source" | |
33 dirname=${source#$base} | |
34 dirname=${dirname#/} | |
35 echo "dirname: $dirname" | |
36 [ -n "$dirname" ] || continue | |
37 | |
38 for wavfilename in "$source/"*.wav; do # loop over songs | |
39 | |
40 echo "$wavfilename" | |
41 | |
42 songbasename=`basename "${wavfilename%.wav}"` | |
43 echo .................. new song "$dirname/$songbasename" ............. | |
44 songdir="output/$dirname/$songbasename" # this is where all song-related features will go into | |
45 mkdir -p "$songdir" | |
46 | |
47 ( if ! flock -en 200; then | |
48 echo "songdir $songdir is locked already, skipping it" | |
49 report_busy "$wavfilename" | |
50 exit | |
51 fi | |
52 | |
53 echo "have lock on songdir $songdir" | |
54 | |
55 if [ -s "$songdir/$songbasename""_vamp_matthiasm_nnls_chroma_bothchroma.csv" ]; then | |
56 echo "non-empty output file(s) exist -- not re-generating" | |
57 report_existing "$wavfilename" | |
58 exit | |
59 fi | |
60 | |
61 echo oooooooooooooooooooooooooooooooooooooooooooooooo | |
62 echo low level feature extraction | |
63 echo oooooooooooooooooooooooooooooooooooooooooooooooo | |
64 VAMP_PATH=. ./sonic-annotator-unix \ | |
65 -d vamp:matthiasm:nnls_chroma:simplechord \ | |
66 -d vamp:matthiasm:nnls_chroma:bothchroma \ | |
67 -d vamp:matthiasm:nnls_chroma:localtuning \ | |
68 -d vamp:matthiasm:nnls_chroma:logfreqspec \ | |
69 -d vamp:matthiasm:nnls_chroma:semitonespectrum \ | |
70 -d vamp:matthiasm:nnls_chroma:tunedlogfreqspec \ | |
71 -d vamp:matthiasm:nnls_chroma:tuning \ | |
72 -w csv \ | |
73 --csv-basedir "$songdir/" \ | |
74 "$wavfilename" | |
75 matlab_infile=`echo "$wavfilename" | sed "s/'/''/g"` | |
76 matlab_chromafile=`echo "$songdir/$songbasename" | sed "s/'/''/g"`_vamp_matthiasm_nnls_chroma_bothchroma.csv | |
77 matlab_outbase=`echo "$songdir/$songbasename" | sed "s/'/''/g"` | |
78 matlab_segout="$matlab_outbase".seg | |
79 matlab_chordout="$matlab_outbase".chord | |
80 # matlab_keyout="$matlab_outbase".key # is still done in matlab | |
81 echo oooooooooooooooooooooooooooooooooooooooooooooooo | |
82 echo segmentation | |
83 echo oooooooooooooooooooooooooooooooooooooooooooooooo | |
84 echo "run_segmentation('$matlab_infile','$matlab_segout','$matlab_chromafile')" | matlab -nodisplay -nojvm 2>&1 >/dev/null | tee "$matlogfile" | |
85 if grep -qi "error" "$matlogfile" ; then | |
86 report_failure "$wavfilename" | |
87 exit | |
88 else | |
89 rm "$matlogfile" | |
90 fi | |
91 echo oooooooooooooooooooooooooooooooooooooooooooooooo | |
92 echo DBN chord estimation | |
93 echo oooooooooooooooooooooooooooooooooooooooooooooooo | |
94 echo "run_chordandkey('$matlab_infile','$matlab_chordout','$matlab_chromafile')" | matlab -nodisplay -nojvm 2>&1 >/dev/null | tee "$matlogfile" | |
95 cat "$matlogfile" | |
96 if grep -qi "error" "$matlogfile" ; then | |
97 report_failure "$wavfilename" | |
98 exit | |
99 else | |
100 rm "$matlogfile" | |
101 fi | |
102 report_success "$wavfilename" | |
103 | |
104 )200>"$songdir/.lock" | |
105 done | |
106 | |
107 done > "$logfile" 2>&1 | |
108 | |
109 |