view testdata/scripts/convert_svout.yeti @ 372:af71cbdab621 tip

Update bqvec code
author Chris Cannam
date Tue, 19 Nov 2019 10:13:32 +0000
parents 51c18a17404a
children
line wrap: on
line source

// Convert CSV file exported by Sonic Visualiser:
// 
// onset,midinote,duration,level,label
//
// into lab file like those output from the test scripts:
//
// onset offset frequency

program convert_svout;

usage () =
    eprintln "\nUsage: convert_svout file.csv\n";

toFrequency m = 
    440 * Math#pow(2.0, (m - 69) / 12.0);

convert f =
   (str = openInFile f "UTF-8";
    for (str.lines ()) do line:
        case list (strSplit "," line) of
        onset::midinote::duration::_: 
            println "\(onset)\t\((number onset) + (number duration))\t\(toFrequency (number midinote))";
        _:
            failWith "badly formed line: \(line)";
        esac;
    done;
    str.close ());

case (list _argv) of
file::[]: convert file;
_: usage ();
esac;