view yeti/test.yeti @ 43:f5bd00c97de3

Update to revised api
author Chris Cannam <c.cannam@qmul.ac.uk>
date Wed, 20 Nov 2013 21:39:42 +0000
parents ae7d2e558ed1
children 337d3b324c75
line wrap: on
line source

program test;

af = load may.stream.audiofile;
plot = load may.plot;
cm = load may.matrix.complex;
mat = load may.matrix;
vec = load may.vector;
manipulate = load may.stream.manipulate;
syn = load may.stream.syntheticstream;

{ cqt } = load cqt;

//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 = 1, binsPerOctave = 4 } testStream;

eprintln "bin frequencies: \(cq.kernel.binFrequencies)";

/*
for cq.output do c:
    mm = cm.magnitudes c;
    for (mat.asColumns mm) (println . strJoin "," . vec.list);
done;
*/

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]);

()