changeset 441:692852208b6c

Exclude points with freq <= 0Hz on import
author Chris Cannam
date Tue, 31 Mar 2015 15:09:38 +0100
parents 14aa33dc2a54
children 12f2c987e2b5
files src/Analyser.cpp
diffstat 1 files changed, 14 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/Analyser.cpp	Tue Mar 31 14:46:40 2015 +0100
+++ b/src/Analyser.cpp	Tue Mar 31 15:09:38 2015 +0100
@@ -848,12 +848,24 @@
                               myLayer->getModel()->getEndFrame());
     myLayer->deleteSelection(sel);
 
-    cerr << "deleted from " << sel.getStartFrame() << " to " << sel.getEndFrame() << endl;
-    
     sel = Selection(otherLayer->getModel()->getStartFrame(),
                     otherLayer->getModel()->getEndFrame());
     otherLayer->copy(m_pane, sel, clip);
 
+    // Remove all pitches <= 0Hz -- we now save absent pitches as 0Hz
+    // values when exporting a pitch track, so we need to exclude them
+    // here when importing again
+    Clipboard::PointList after;
+    int excl = 0;
+    for (auto &p: clip.getPoints()) {
+        if (p.haveValue() && p.getValue() > 0.f) {
+            after.push_back(p);
+        } else {
+            ++excl;
+        }
+    }
+    clip.setPoints(after);
+
     myLayer->paste(m_pane, clip, 0, false);
 }