changeset 269:40684b5dd478

Run draft-mode tests as well (actually they come out quite well on F measure)
author Chris Cannam
date Wed, 23 Jul 2014 18:28:42 +0100
parents 00d76494a722
children 62b92d9b566a
files testdata/evaluation/run-nonorm.sh testdata/evaluation/run-piano.sh testdata/evaluation/run-singleinstrumenttest.sh testdata/evaluation/run.sh testdata/evaluation/transform.ttl
diffstat 5 files changed, 89 insertions(+), 73 deletions(-) [+]
line wrap: on
line diff
--- a/testdata/evaluation/run-nonorm.sh	Wed Jul 23 18:28:29 2014 +0100
+++ b/testdata/evaluation/run-nonorm.sh	Wed Jul 23 18:28:42 2014 +0100
@@ -80,42 +80,47 @@
     piece=`basename \`dirname "$infile" \``
     arrangement=`basename "$infile" .wav`
 
-    echo
-    echo "For piece $piece, arrangement $arrangement, using instrument $instrument..."
+    for mode in 1 0; do
+
+	echo
+	echo "For piece $piece, arrangement $arrangement, mode $mode, using instrument $instrument..."
     
-    # unlike run.sh we don't normalise the input here
-    cp "$infile" "$tmpwav"
+	# unlike run.sh we don't normalise the input here
+	cp "$infile" "$tmpwav"
 
-    # generate the transform by interpolating the instrument parameter
-    cat transform.ttl | sed "s/INSTRUMENT_PARAMETER/$instrument/" > "$transfile"
+	# generate the transform by interpolating the instrument parameter
+	cat transform.ttl | \
+	    sed "s/INSTRUMENT_PARAMETER/$instrument/" | \
+	    sed "s/MODE_PARAMETER/$mode/" > "$transfile"
 
-    sonic-annotator \
-	--writer csv \
-	--csv-one-file "$outfile" \
-	--csv-force \
-	--transform "$transfile" \
-	"$tmpwav"
+	sonic-annotator \
+	    --writer csv \
+	    --csv-one-file "$outfile" \
+	    --csv-force \
+	    --transform "$transfile" \
+	    "$tmpwav"
 
-    cat "$outfile" | \
-	sed 's/^[^,]*,//' | \
-	while IFS=, read start duration frequency level label; do
+	cat "$outfile" | \
+	    sed 's/^[^,]*,//' | \
+	    while IFS=, read start duration frequency level label; do
 	    end=`echo "$start $duration + p" | dc`
 	    echo -e "$start\t$end\t$frequency"
-    done > "$outfile.lab"
+	done > "$outfile.lab"
 
-    for ms in 50 100; do
-	mark=""
-	if [ "$ms" = "50" ]; then mark="  <-- main $piece/$arrangement"; fi;
+	for ms in 50 100; do
+	    mark=""
+	    if [ "$ms" = "50" ]; then mark="  <-- main $piece/$arrangement"; fi;
+	    echo
+	    echo "Validating against ground truth at $ms ms:"
+	    "$yc" ../scripts/evaluate_lab.yeti "$ms" "../TRIOS-groundtruth/$piece/$arrangement.lab" "$outfile.lab" | sed 's,$,'"$mark"','
+	    echo
+	    echo "Validating against MIREX submission at $ms ms:"
+	    "$yc" ../scripts/evaluate_lab.yeti "$ms" "../TRIOS-mirex2012-matlab/$piece/$arrangement.lab" "$outfile.lab"
+	    echo
+	    echo "Validating MIREX against ground truth at $ms ms":
+	    "$yc" ../scripts/evaluate_lab.yeti "$ms" "../TRIOS-groundtruth/$piece/$arrangement.lab" "../TRIOS-mirex2012-matlab/$piece/$arrangement.lab"
+	done;
+
 	echo
-	echo "Validating against ground truth at $ms ms:"
-	"$yc" ../scripts/evaluate_lab.yeti "$ms" "../TRIOS-groundtruth/$piece/$arrangement.lab" "$outfile.lab" | sed 's,$,'"$mark"','
-	echo
-	echo "Validating against MIREX submission at $ms ms:"
-	"$yc" ../scripts/evaluate_lab.yeti "$ms" "../TRIOS-mirex2012-matlab/$piece/$arrangement.lab" "$outfile.lab"
-	echo
-	echo "Validating MIREX against ground truth at $ms ms":
-	"$yc" ../scripts/evaluate_lab.yeti "$ms" "../TRIOS-groundtruth/$piece/$arrangement.lab" "../TRIOS-mirex2012-matlab/$piece/$arrangement.lab"
-    done;
-
-    echo
+    done
 done
--- a/testdata/evaluation/run-piano.sh	Wed Jul 23 18:28:29 2014 +0100
+++ b/testdata/evaluation/run-piano.sh	Wed Jul 23 18:28:42 2014 +0100
@@ -67,53 +67,58 @@
 
     for instrument in $intended_instrument ; do
 
-	for norm in no; do
+	for mode in 1 0; do 
+	    
+	    for norm in no; do
 
-	    echo
-	    echo "For file $filename, instrument $instrument, norm $norm..."
+		echo
+		echo "For file $filename, instrument $instrument, norm $norm..."
 
-	    if [ "$norm" = "no" ]; then
-		# Don't normalise; plugin is now supposed to do it
-		sox "$infile" "$tmpwav" trim 0 $duration
-	    else
-		# Normalise as reference
-		sox "$infile" "$tmpwav" trim 0 $duration gain -n -6.020599913279624
-	    fi
+		if [ "$norm" = "no" ]; then
+		    # Don't normalise; plugin is now supposed to do it
+		    sox "$infile" "$tmpwav" trim 0 $duration
+		else
+		    # Normalise as reference
+		    sox "$infile" "$tmpwav" trim 0 $duration gain -n -6.020599913279624
+		fi
 
-	    # generate the transform by interpolating the instrument parameter
-	    cat transform.ttl | sed "s/INSTRUMENT_PARAMETER/$instrument/" > "$transfile"
+		# generate the transform by interpolating the instrument parameter
+		cat transform.ttl | \
+		    sed "s/INSTRUMENT_PARAMETER/$instrument/" | \
+		    sed "s/MODE_PARAMETER/$mode/" > "$transfile"
 
-	    sonic-annotator \
-		--writer csv \
-		--csv-one-file "$outfile" \
-		--csv-force \
-		--transform "$transfile" \
-		"$tmpwav"
+		sonic-annotator \
+		    --writer csv \
+		    --csv-one-file "$outfile" \
+		    --csv-force \
+		    --transform "$transfile" \
+		    "$tmpwav"
 
-	    cat "$outfile" | \
-		sed 's/^[^,]*,//' | \
-		while IFS=, read start duration frequency level label; do
-		end=`echo "$start $duration + p" | dc`
-		echo -e "$start\t$end\t$frequency"
-	    done > "$outfile.lab"
+		cat "$outfile" | \
+		    sed 's/^[^,]*,//' | \
+		    while IFS=, read start duration frequency level label; do
+		    end=`echo "$start $duration + p" | dc`
+		    echo -e "$start\t$end\t$frequency"
+		done > "$outfile.lab"
 
-	    for ms in 50 100 150; do
-		mark=""
-		if [ "$ms" = "50" ]; then
-		    if [ "$instrument" = "0" ]; then
-			mark="  <-- main generic preset for $filename (norm = $norm)"; 
-		    else
-			mark="  <-- main piano preset for $filename (norm = $norm)";
-		    fi
-		fi;
+		for ms in 50 100 150; do
+		    mark=""
+		    if [ "$ms" = "50" ]; then
+			if [ "$instrument" = "0" ]; then
+			    mark="  <-- main generic preset for $filename (norm = $norm)"; 
+			else
+			    mark="  <-- main piano preset for $filename (norm = $norm)";
+			fi
+		    fi;
+		    echo
+		    echo "Validating against ground truth at $ms ms:"
+		    egrep '(^[0-9]\.)|(^[012][0-9]\.)' "../piano-groundtruth/$filename.lab" > "$reference.lab"
+		    "$yc" ../scripts/evaluate_lab.yeti "$ms" "$reference.lab" "$outfile.lab" | sed 's,$,'"$mark"','
+		    cp "$reference.lab" /tmp/reference.lab
+		    cp "$outfile.lab" /tmp/detected.lab
+		done;
 		echo
-		echo "Validating against ground truth at $ms ms:"
-		egrep '(^[0-9]\.)|(^[012][0-9]\.)' "../piano-groundtruth/$filename.lab" > "$reference.lab"
-		"$yc" ../scripts/evaluate_lab.yeti "$ms" "$reference.lab" "$outfile.lab" | sed 's,$,'"$mark"','
-		cp "$reference.lab" /tmp/reference.lab
-		cp "$outfile.lab" /tmp/detected.lab
-	    done;
-	    echo
+	    done
 	done
     done
 done
--- a/testdata/evaluation/run-singleinstrumenttest.sh	Wed Jul 23 18:28:29 2014 +0100
+++ b/testdata/evaluation/run-singleinstrumenttest.sh	Wed Jul 23 18:28:42 2014 +0100
@@ -77,6 +77,7 @@
     
     piece=`basename \`dirname "$infile" \``
     arrangement=`basename "$infile" .wav`
+    mode=1
 
     # We run this twice, once using the default instrument
     # (i.e. "multiple or unknown") and once using the intended
@@ -90,7 +91,9 @@
 	sox "$infile" "$tmpwav" gain -n -6.020599913279624
 
 	# generate the transform by interpolating the instrument parameter
-	cat transform.ttl | sed "s/INSTRUMENT_PARAMETER/$instrument/" > "$transfile"
+	cat transform.ttl | \
+	    sed "s/INSTRUMENT_PARAMETER/$instrument/" | \
+	    sed "s/MODE_PARAMETER/$mode/" > "$transfile"
 
 	sonic-annotator \
 	    --writer csv \
--- a/testdata/evaluation/run.sh	Wed Jul 23 18:28:29 2014 +0100
+++ b/testdata/evaluation/run.sh	Wed Jul 23 18:28:42 2014 +0100
@@ -79,6 +79,7 @@
     
     piece=`basename \`dirname "$infile" \``
     arrangement=`basename "$infile" .wav`
+    mode=1
 
     echo
     echo "For piece $piece, arrangement $arrangement, using instrument $instrument..."
@@ -86,7 +87,9 @@
     sox "$infile" "$tmpwav" gain -n -6.020599913279624
 
     # generate the transform by interpolating the instrument parameter
-    cat transform.ttl | sed "s/INSTRUMENT_PARAMETER/$instrument/" > "$transfile"
+    cat transform.ttl | \
+	sed "s/INSTRUMENT_PARAMETER/$instrument/" | \
+	sed "s/MODE_PARAMETER/$mode/" > "$transfile"
 
     sonic-annotator \
 	--writer csv \
--- a/testdata/evaluation/transform.ttl	Wed Jul 23 18:28:29 2014 +0100
+++ b/testdata/evaluation/transform.ttl	Wed Jul 23 18:28:42 2014 +0100
@@ -16,6 +16,6 @@
     ] ;
     vamp:parameter_binding [
         vamp:parameter [ vamp:identifier "mode" ] ;
-        vamp:value "1"^^xsd:float ;
+        vamp:value "MODE_PARAMETER"^^xsd:float ;
     ] ;
     .