Chris@137: Chris@137: // Convert CSV file exported by Sonic Visualiser: Chris@137: // Chris@137: // onset,midinote,duration,level,label Chris@137: // Chris@137: // into lab file like those output from the test scripts: Chris@137: // Chris@137: // onset offset frequency Chris@137: Chris@193: program convert_svout; Chris@137: Chris@137: usage () = Chris@193: eprintln "\nUsage: convert_svout file.csv\n"; Chris@137: Chris@137: toFrequency m = Chris@137: 440 * Math#pow(2.0, (m - 69) / 12.0); Chris@137: Chris@137: convert f = Chris@137: (str = openInFile f "UTF-8"; Chris@137: for (str.lines ()) do line: Chris@137: case list (strSplit "," line) of Chris@137: onset::midinote::duration::_: Chris@137: println "\(onset)\t\((number onset) + (number duration))\t\(toFrequency (number midinote))"; Chris@137: _: Chris@137: failWith "badly formed line: \(line)"; Chris@137: esac; Chris@137: done; Chris@137: str.close ()); Chris@137: Chris@137: case (list _argv) of Chris@137: file::[]: convert file; Chris@137: _: usage (); Chris@137: esac; Chris@137: