Mercurial > hg > constant-q-cpp
view yeti/test.yeti @ 68:b75c0eaaa6dd
Allow wrong max in alternate columns where expected max would be in lower octave (which is not present)
author | Chris Cannam <c.cannam@qmul.ac.uk> |
---|---|
date | Mon, 03 Mar 2014 08:32:45 +0000 |
parents | 3d165bf186f1 |
children | 27007f8302f4 |
line wrap: on
line source
program test; { runTests } = load may.test; // We want to test: // // Kernel design -- check size (number of bins, number of atoms); // check an example kernel against known data // // Time alignment -- feed a dirac train, check that peaks in all bins // align // // Frequency discrimination -- feed a sinusoid, check peaks // // Latency compensation -- for dirac at 0, check peak can be found at // 0 plus the declared latency // // Signal-noise ratio // // Specimen output for simple test case tests = [ "kernel" : load test_cqtkernel, "frequency" : load test_frequency, ]; bad = sum (mapHash do name testHash: runTests name testHash done tests); if (bad > 0) then println "\n** \(bad) test(s) failed!"; threadExit 1 else () fi /* //testStream = manipulate.withDuration 96000 (syn.sinusoid 48000 500); //testStream = manipulate.withDuration 96000 (syn.pulseTrain 48000 4); testStream = af.open "sweep-48000.wav"; //testStream = af.open "sweep.wav"; // So the stream is [ 0, 1, 0, -1, 0, 1, 0, -1, ... ] : //testStream = manipulate.withDuration 64 (syn.sinusoid 8 2); testStream = manipulate.withDuration 32 (syn.pulseTrain 8 0.001); eprintln "have test stream"; cq = cqt { maxFreq = testStream.sampleRate/2, minFreq = 50, binsPerOctave = 24 } testStream; eprintln "bin frequencies: \(cq.kernel.binFrequencies)"; bigM = mat.concatHorizontal (map cm.magnitudes cq.output); eprintln "overall output size = \(mat.size bigM)"; mat.print bigM; //\() (plot.plot [Contour bigM]); \() (plot.plot [Grid bigM]); */ //()