changeset 273:29005aa146e2

fixed candidates exceeding the frequency-constrained selection horizontally (vertically still to come)
author matthiasm
date Thu, 10 Apr 2014 17:55:43 +0100
parents 846df0ea9c82
children a895c7177841
files .hgsubstate src/Analyser.cpp
diffstat 2 files changed, 12 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/.hgsubstate	Thu Apr 03 09:39:16 2014 +0100
+++ b/.hgsubstate	Thu Apr 10 17:55:43 2014 +0100
@@ -1,6 +1,6 @@
 0ca7c7e21991b7cf5c6c4306af64280947d0b357 chp
 236814e07bd07473958c1ff89103124536a0c3c8 dataquay
-e291f3657872db892f6ee525b36e98472a5ccd26 pyin
+d1f89559321a4a194bf98c43bb1df88c82ce1078 pyin
 27d4e7152c954bf3c4387319db088fb3cd02436b sv-dependency-builds
 63dec7dc11cc9edf74770268bf617619c4f5b3c8 svapp
 ecb34638ce1ba82cc47e9d12693d7b19a04ef9e1 svcore
--- a/src/Analyser.cpp	Thu Apr 03 09:39:16 2014 +0100
+++ b/src/Analyser.cpp	Thu Apr 10 17:55:43 2014 +0100
@@ -381,11 +381,17 @@
         t.setBlockSize(4096);
     }
 
-    RealTime start = RealTime::frame2RealTime
-        (round(sel.getStartFrame()*1.0/256) * 256 - 4*256, m_fileModel->getSampleRate()); // 4*256 is for 4 frames offset due to timestamp shift
-
-    RealTime end = RealTime::frame2RealTime
-        (round(sel.getEndFrame()*1.0/256) * 256 - 4*256, m_fileModel->getSampleRate());
+    // get time stamps that align with the 256-sample grid of the original extraction
+    int startSample = ceil(sel.getStartFrame()*1.0/256) * 256;
+    int endSample   = ceil(sel.getEndFrame()*1.0/256) * 256;
+    if (!range.isConstrained()) {
+        startSample -= 4*256; // 4*256 is for 4 frames offset due to timestamp shift
+        endSample   -= 4*256;
+    } else {
+        endSample   -= 9*256; // MM says: not sure what the CHP plugin does there
+    }
+    RealTime start = RealTime::frame2RealTime(startSample, m_fileModel->getSampleRate()); 
+    RealTime end = RealTime::frame2RealTime(endSample, m_fileModel->getSampleRate());
 
     RealTime duration;