annotate misc/yeti/plotfile.yeti @ 196:da283326bcd3 tip master

Update plugin versions in RDF
author Chris Cannam <cannam@all-day-breakfast.com>
date Fri, 28 Feb 2020 09:43:02 +0000
parents 6deec2a51d13
children
rev   line source
c@116 1
c@116 2 program plotfile;
c@116 3
c@116 4 af = load may.stream.audiofile;
c@116 5 plot = load may.plot;
c@116 6 cm = load may.matrix.complex;
c@116 7 mat = load may.matrix;
c@116 8
c@116 9 { cqt } = load cqt;
c@116 10
c@116 11 minFreq = 27.5;
c@116 12 maxRateDivisor = 3;
c@116 13 binsPerOctave = 60;
c@116 14
c@116 15 plotfile f =
c@116 16 (testStream = af.open f;
c@116 17 eprintln "Opened file stream...";
c@116 18 start = System#currentTimeMillis();
c@116 19 cq = cqt {
c@116 20 maxFreq = testStream.sampleRate/maxRateDivisor,
c@116 21 minFreq,
c@116 22 binsPerOctave
c@116 23 } testStream;
c@116 24 middle = System#currentTimeMillis();
c@116 25 eprintln "Generated kernel \(cm.size cq.kernel.kernel) and primed transform (\(cq.octaves) octaves), took \(middle-start)ms, now calculating...";
c@116 26 bigM = mat.concatHorizontal cq.cqSpectrogram;
c@116 27 finish = System#currentTimeMillis();
c@116 28 eprintln "Done, that part took \(finish-middle)ms, all CQ stuff took \(finish-start)ms";
c@116 29 eprintln "Plotting...";
c@116 30 \() (plot.plot [Contour bigM]));
c@116 31
c@116 32 usage () =
c@116 33 (eprintln "\nUsage: plotfile file.wav";
c@116 34 eprintln "\n Loads audio from file.wav and plots a \(binsPerOctave)bpo Constant-Q spectrogram";
c@116 35 eprintln " from \(minFreq)Hz up to 1/\(maxRateDivisor) of the file samplerate");
c@116 36
c@116 37 case (list _argv) of
c@116 38 file::[]: plotfile file;
c@116 39 _: usage ();
c@116 40 esac;
c@116 41