Mercurial > hg > silvet
annotate 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 |
rev | line source |
---|---|
Chris@137 | 1 |
Chris@137 | 2 // Convert CSV file exported by Sonic Visualiser: |
Chris@137 | 3 // |
Chris@137 | 4 // onset,midinote,duration,level,label |
Chris@137 | 5 // |
Chris@137 | 6 // into lab file like those output from the test scripts: |
Chris@137 | 7 // |
Chris@137 | 8 // onset offset frequency |
Chris@137 | 9 |
Chris@193 | 10 program convert_svout; |
Chris@137 | 11 |
Chris@137 | 12 usage () = |
Chris@193 | 13 eprintln "\nUsage: convert_svout file.csv\n"; |
Chris@137 | 14 |
Chris@137 | 15 toFrequency m = |
Chris@137 | 16 440 * Math#pow(2.0, (m - 69) / 12.0); |
Chris@137 | 17 |
Chris@137 | 18 convert f = |
Chris@137 | 19 (str = openInFile f "UTF-8"; |
Chris@137 | 20 for (str.lines ()) do line: |
Chris@137 | 21 case list (strSplit "," line) of |
Chris@137 | 22 onset::midinote::duration::_: |
Chris@137 | 23 println "\(onset)\t\((number onset) + (number duration))\t\(toFrequency (number midinote))"; |
Chris@137 | 24 _: |
Chris@137 | 25 failWith "badly formed line: \(line)"; |
Chris@137 | 26 esac; |
Chris@137 | 27 done; |
Chris@137 | 28 str.close ()); |
Chris@137 | 29 |
Chris@137 | 30 case (list _argv) of |
Chris@137 | 31 file::[]: convert file; |
Chris@137 | 32 _: usage (); |
Chris@137 | 33 esac; |
Chris@137 | 34 |