Chris@0: #!/bin/bash Chris@0: Chris@0: mypath=`dirname $0` Chris@3: r=$mypath/../runner/sonic-annotator Chris@0: Chris@0: inbase=$mypath/audio/3clicks Chris@0: testplug=vamp:vamp-example-plugins:percussiononsets Chris@0: tmpfile1=$mypath/tmp_1_$$ Chris@0: tmpfile2=$mypath/tmp_2_$$ Chris@0: Chris@0: trap "rm -f $tmpfile1 $tmpfile2" 0 Chris@0: Chris@0: fail() { Chris@0: echo "Test failed: $1" Chris@0: exit 1 Chris@0: } Chris@0: Chris@0: for extension in wav ogg mp3 ; do Chris@0: Chris@0: transform=$mypath/transforms/transforms-audioformat-percussiononsets.n3 Chris@0: expected=$mypath/expected/transforms-audioformat-percussiononsets-$extension.csv Chris@0: Chris@0: test -f $transform || \ Chris@0: fail "Internal error: no transforms file for suffix $suffix" Chris@0: Chris@0: test -f $expected || \ Chris@0: fail "Internal error: no expected output file for suffix $suffix" Chris@0: Chris@0: infile=$inbase.$extension Chris@0: if [ "$extension" = "wav" ]; then infile=${inbase}8.$extension; fi Chris@0: Chris@0: test -f $infile || \ Chris@0: fail "Internal error: no input audio file for extension $extension" Chris@0: Chris@0: $r -t $transform -w csv --csv-stdout $infile > $tmpfile2 2>/dev/null || \ Chris@0: fail "Fails to run transform $transform against audio file $infile" Chris@0: Chris@0: if [ "$extension" = "wav" ]; then Chris@0: cmp -s $tmpfile2 $expected || \ Chris@0: fail "Output mismatch for transform $transform with audio file $infile" Chris@0: else Chris@0: cmp -s $tmpfile2 $expected || \ Chris@0: ( echo "NOTE: Output mismatch for transform $transform with audio file $infile" ; \ Chris@0: echo "This may be the result of differences in the audio file decoder, so I am not" ; \ Chris@0: echo "failing the test, but I recommend that you check the results." ) Chris@0: fi Chris@0: done Chris@0: Chris@0: exit 0