# HG changeset patch # User Chris Cannam # Date 1400231575 -3600 # Node ID c6b6d6ea1c3d312c53ccf250b283e79d7a6b29e6 # Parent 5899ebc40fcd9ac20c3f419bbd91e601f79fbe06 Processing parameters. Main difference is use of atomHopFactor of 0.3 instead of 0.25 diff -r 5899ebc40fcd -r c6b6d6ea1c3d .hgsubstate --- a/.hgsubstate Fri May 16 08:09:42 2014 +0100 +++ b/.hgsubstate Fri May 16 10:12:55 2014 +0100 @@ -1,2 +1,2 @@ a2621605a8c2119bb063c59e83f4fe792a58e4ac bqvec -9d3b11b5a3e43b5708884ea23e3d0563dad4d6c2 constant-q-cpp +81484e7a33bc1215b09941bc891a560f07973ddc constant-q-cpp diff -r 5899ebc40fcd -r c6b6d6ea1c3d Makefile.inc --- a/Makefile.inc Fri May 16 08:09:42 2014 +0100 +++ b/Makefile.inc Fri May 16 10:12:55 2014 +0100 @@ -48,14 +48,16 @@ # DO NOT DELETE -src/Silvet.o: src/Silvet.h src/EM.h +src/Silvet.o: src/Silvet.h src/MedianFilter.h src/EM.h +src/Silvet.o: constant-q-cpp/src/dsp/Resampler.h src/EM.o: src/EM.h data/include/templates.h data/include/bassoon.h src/EM.o: data/include/cello.h data/include/clarinet.h data/include/flute.h src/EM.o: data/include/guitar.h data/include/horn.h data/include/oboe.h src/EM.o: data/include/tenorsax.h data/include/violin.h src/EM.o: data/include/piano-maps-SptkBGCl.h -src/libmain.o: src/Silvet.h +src/libmain.o: src/Silvet.h src/MedianFilter.h bqvec/src/Allocators.o: bqvec/src/Allocators.h bqvec/src/VectorOps.h bqvec/src/Allocators.o: bqvec/src/Restrict.h +src/Silvet.o: src/MedianFilter.h bqvec/src/Allocators.o: bqvec/src/VectorOps.h bqvec/src/Restrict.h bqvec/src/VectorOps.o: bqvec/src/Restrict.h diff -r 5899ebc40fcd -r c6b6d6ea1c3d src/Silvet.cpp --- a/src/Silvet.cpp Fri May 16 08:09:42 2014 +0100 +++ b/src/Silvet.cpp Fri May 16 10:12:55 2014 +0100 @@ -325,9 +325,18 @@ m_resampler = 0; } - m_cq = new CQSpectrogram - (processingSampleRate, 27.5, processingSampleRate / 3, processingBPO, - CQSpectrogram::InterpolateLinear); + CQParameters params(processingSampleRate, + 27.5, + processingSampleRate / 3, + processingBPO); + + params.q = 1.0; // MIREX code uses 0.8, but for some reason that + // makes our implementation much, much slower + params.atomHopFactor = 0.3; + params.threshold = 0.0005; + params.window = CQParameters::Hann; + + m_cq = new CQSpectrogram(params, CQSpectrogram::InterpolateLinear); for (int i = 0; i < (int)m_postFilter.size(); ++i) { delete m_postFilter[i]; @@ -549,6 +558,7 @@ //!!! make this a parameter (was 4.8, try adjusting, compare levels against matlab code) double threshold = 6; +// double threshold = 4.8; typedef std::multimap ValueIndexMap;