view yeti/experiment.yeti @ 112:a45b51ea00a2

Smaller range, faster chromagram
author Chris Cannam <c.cannam@qmul.ac.uk>
date Wed, 14 May 2014 14:59:45 +0100
parents 5d1f276f82e5
children
line wrap: on
line source

program experiment;

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;
{ icqt } = load icqt;

//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";

eprintln "have test stream";

cq = cqt { maxFreq = testStream.sampleRate/2, minFreq = 50, binsPerOctave = 24 } testStream;

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

icq = icqt cq;

eprintln "calculated icq...";

outfile = "test-output.wav";
written = af.write icq outfile;

eprintln "wrote \(written) to \(outfile)";

//for cq.cqSpectrogram do mm:
//    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]);

()