|
Chris@50
|
1 #!/bin/bash
|
|
Chris@50
|
2
|
|
Chris@119
|
3 . ../include.sh
|
|
Chris@50
|
4
|
|
Chris@119
|
5 infile1=$audiopath/3clicks8.wav
|
|
Chris@119
|
6 infile2=$audiopath/6clicks8.wav
|
|
Chris@50
|
7
|
|
Chris@119
|
8 outfile1=$audiopath/3clicks8_vamp_vamp-example-plugins_percussiononsets_onsets.csv
|
|
Chris@119
|
9 outfile2=$audiopath/6clicks8_vamp_vamp-example-plugins_percussiononsets_onsets.csv
|
|
Chris@50
|
10
|
|
Chris@119
|
11 infile1dot=$audiopath/3.clicks.8.wav
|
|
Chris@119
|
12 outfile1dot=$audiopath/3.clicks.8_vamp_vamp-example-plugins_percussiononsets_onsets.csv
|
|
Chris@50
|
13
|
|
Chris@119
|
14 outfile3=$audiopath/3clicks8_vamp_vamp-example-plugins_percussiononsets_onsets.csv
|
|
Chris@119
|
15 outfile4=$audiopath/3clicks8_vamp_vamp-example-plugins_percussiononsets_detectionfunction.csv
|
|
Chris@50
|
16
|
|
Chris@50
|
17 tmpcsv=$mypath/tmp_1_$$.csv
|
|
Chris@50
|
18
|
|
Chris@50
|
19 trap "rm -f $tmpcsv $outfile1 $outfile2 $outfile3 $outfile4 $infile1dot $outfile1dot" 0
|
|
Chris@50
|
20
|
|
Chris@119
|
21 transformdir=$mypath/transforms
|
|
Chris@50
|
22
|
|
Chris@50
|
23 check_csv() {
|
|
Chris@50
|
24 test -f $1 || \
|
|
Chris@50
|
25 fail "Fails to write output to expected location $1 for $2"
|
|
Chris@50
|
26 # every line must contain the same number of commas
|
|
Chris@50
|
27 formats=`awk -F, '{ print NF; }' $1 | sort | uniq | wc | awk '{ print $1 }'`
|
|
Chris@50
|
28 if [ "$formats" != "1" ]; then
|
|
Chris@50
|
29 fail "Output is not consistently formatted comma-separated file for $2"
|
|
Chris@50
|
30 fi
|
|
Chris@50
|
31 rm -f $1
|
|
Chris@50
|
32 }
|
|
Chris@50
|
33
|
|
Chris@50
|
34
|
|
Chris@50
|
35 ctx="onsets transform, one audio file, default CSV writer destination"
|
|
Chris@50
|
36
|
|
Chris@50
|
37 rm -f $outfile1
|
|
Chris@50
|
38
|
|
Chris@119
|
39 $r -t $transformdir/onsets.n3 -w csv $infile1 2>/dev/null || \
|
|
Chris@50
|
40 fail "Fails to run with $ctx"
|
|
Chris@50
|
41
|
|
Chris@50
|
42 check_csv $outfile1 "$ctx"
|
|
Chris@50
|
43
|
|
Chris@50
|
44
|
|
Chris@50
|
45 ctx="onsets transform, one audio file with dots in filename, default CSV writer destination"
|
|
Chris@50
|
46
|
|
Chris@50
|
47 rm -f $outfile1
|
|
Chris@50
|
48
|
|
Chris@50
|
49 cp $infile1 $infile1dot
|
|
Chris@50
|
50
|
|
Chris@119
|
51 $r -t $transformdir/onsets.n3 -w csv $infile1dot 2>/dev/null || \
|
|
Chris@50
|
52 fail "Fails to run with $ctx"
|
|
Chris@50
|
53
|
|
Chris@50
|
54 check_csv $outfile1dot "$ctx"
|
|
Chris@50
|
55
|
|
Chris@50
|
56 rm -f $infile1dot $outfile1dot
|
|
Chris@50
|
57
|
|
Chris@50
|
58
|
|
Chris@50
|
59 ctx="onsets and df transforms, one audio file, default CSV writer destination"
|
|
Chris@50
|
60
|
|
Chris@50
|
61 rm -f $outfile1
|
|
Chris@50
|
62
|
|
Chris@119
|
63 $r -t $transformdir/onsets.n3 -t $transformdir/detectionfunction.n3 -w csv $infile1 2>/dev/null || \
|
|
Chris@50
|
64 fail "Fails to run with $ctx"
|
|
Chris@50
|
65
|
|
Chris@50
|
66 check_csv $outfile1 "$ctx"
|
|
Chris@50
|
67
|
|
Chris@50
|
68
|
|
Chris@50
|
69 ctx="onsets transform, two audio files, default CSV writer destination"
|
|
Chris@50
|
70
|
|
Chris@50
|
71 rm -f $outfile1
|
|
Chris@50
|
72 rm -f $outfile2
|
|
Chris@50
|
73
|
|
Chris@119
|
74 $r -t $transformdir/onsets.n3 -w csv $infile1 $infile2 2>/dev/null || \
|
|
Chris@50
|
75 fail "Fails to run with $ctx"
|
|
Chris@50
|
76
|
|
Chris@50
|
77 check_csv $outfile1 "$ctx"
|
|
Chris@50
|
78 check_csv $outfile2 "$ctx"
|
|
Chris@50
|
79
|
|
Chris@50
|
80
|
|
Chris@50
|
81 ctx="onsets transform, two audio files, one-file CSV writer"
|
|
Chris@50
|
82
|
|
Chris@119
|
83 $r -t $transformdir/onsets.n3 -w csv --csv-one-file $tmpcsv $infile1 $infile2 2>/dev/null || \
|
|
Chris@50
|
84 fail "Fails to run with $ctx"
|
|
Chris@50
|
85
|
|
Chris@50
|
86 check_csv $tmpcsv "$ctx"
|
|
Chris@50
|
87
|
|
Chris@50
|
88
|
|
Chris@50
|
89 ctx="onsets transform, two audio files, stdout CSV writer"
|
|
Chris@50
|
90
|
|
Chris@119
|
91 $r -t $transformdir/onsets.n3 -w csv --csv-stdout $infile1 $infile2 2>/dev/null >$tmpcsv || \
|
|
Chris@50
|
92 fail "Fails to run with $ctx"
|
|
Chris@50
|
93
|
|
Chris@50
|
94 check_csv $tmpcsv "$ctx"
|
|
Chris@50
|
95
|
|
Chris@50
|
96
|
|
Chris@50
|
97 ctx="existing output file and no --csv-force"
|
|
Chris@50
|
98
|
|
Chris@50
|
99 touch $outfile1
|
|
Chris@50
|
100
|
|
Chris@119
|
101 $r -t $transformdir/onsets.n3 -w csv $infile1 2>/dev/null && \
|
|
Chris@50
|
102 fail "Fails by completing successfully when output file already exists (should refuse and bail out)"
|
|
Chris@50
|
103
|
|
Chris@50
|
104
|
|
Chris@50
|
105 ctx="existing output file and --csv-force"
|
|
Chris@50
|
106
|
|
Chris@50
|
107 touch $outfile1
|
|
Chris@50
|
108
|
|
Chris@119
|
109 $r -t $transformdir/onsets.n3 -w csv --csv-force $infile1 2>/dev/null || \
|
|
Chris@50
|
110 fail "Fails to run with $ctx"
|
|
Chris@50
|
111
|
|
Chris@50
|
112 check_csv $outfile1 "$ctx"
|
|
Chris@50
|
113
|
|
Chris@50
|
114 exit 0
|