Chris@22: #!/bin/bash Chris@16: Chris@16: mydir=`dirname "$0"` Chris@16: infile="$1" Chris@16: outfile="$2" Chris@16: Chris@16: if [ t"$infile" = "t" ] || [ t"$outfile" = "t" ]; then Chris@16: echo "Usage: $0 infile.wav outfile.txt" Chris@16: exit 2 Chris@16: fi Chris@16: Chris@67: set -eu Chris@67: Chris@67: touch "$outfile" Chris@16: Chris@16: echo "Processing input WAV file $infile, writing results to $outfile..." 1>&2 Chris@16: Chris@16: # Convert Chris@16: # Chris@16: # ;time;"label" Chris@16: # Chris@16: # to Chris@16: # Chris@16: # starttimeendtimelabel Chris@16: # Chris@16: # NB this omits the final chord! In practice the final one will almost Chris@16: # certainly be an N rather than a chord but this will surely be a Chris@16: # problem sometimes. What to do about it? Chris@16: Chris@77: VAMP_PATH="$mydir" sonic-annotator \ Chris@16: -t "$mydir"/chordino.ttl \ Chris@16: -w csv --csv-stdout --csv-separator ";" \ Chris@16: "$infile" \ Chris@22: | perl -e 'while (<>) { chomp; @a = split /;/; if (defined $p) { print "$p\t$a[1]\t$pl\n"; }; $p = $a[1]; $pl = $a[2]; $pl =~ s/"//g; }; $pp = $p + 1; print "$p\t$pp\t$pl\n";' \ Chris@16: > "$outfile" Chris@16: