changeset 154:c6b6d6ea1c3d

Processing parameters. Main difference is use of atomHopFactor of 0.3 instead of 0.25
author Chris Cannam
date Fri, 16 May 2014 10:12:55 +0100
parents 5899ebc40fcd
children e1ebbae52cff
files .hgsubstate Makefile.inc src/Silvet.cpp
diffstat 3 files changed, 18 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- 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
--- 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
--- 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<double, int> ValueIndexMap;