Mercurial > hg > silvet
annotate testdata/scripts/convert_svout.yeti @ 327:df9a8e16bae6 livemode-octave-higher
Experiment with dropping the bottom octave off each template (since most of the information is in higher harmonics anyway!) -- this is about 15% faster again and has half the latency, but per
author | Chris Cannam |
---|---|
date | Tue, 19 May 2015 09:29:00 +0100 |
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 |