diff audio/AudioGenerator.cpp @ 650:ed9cb577eb7c single-point

Use matching-event search in tone generator
author Chris Cannam
date Wed, 20 Mar 2019 11:19:44 +0000
parents 284cb118368e
children 161063152ddd
line wrap: on
line diff
--- a/audio/AudioGenerator.cpp	Tue Mar 19 13:06:58 2019 +0000
+++ b/audio/AudioGenerator.cpp	Wed Mar 20 11:19:44 2019 +0000
@@ -727,16 +727,17 @@
         // away than twice the model resolution, go silent (same
         // criterion TimeValueLayer uses for ending a discrete curve
         // segment)
-        /*!!! todo: restore
         if (f0 == 0.f) {
-            EventVector nextPoints = 
-                stvm->getNextPoints(reqStart + m_processingBlockSize);
-            if (nextPoints.empty() ||
-                nextPoints.begin()->frame > reqStart + 2 * stvm->getResolution()) {
+            Event nextP;
+            if (!stvm->getNearestEventMatching(reqStart + m_processingBlockSize,
+                                               [](Event) { return true; },
+                                               EventSeries::Forward,
+                                               nextP) ||
+                nextP.getFrame() > reqStart + 2 * stvm->getResolution()) {
                 f0 = -1.f;
             }
         }
-        */
+
 //        cerr << "f0 = " << f0 << endl;
 
         synth->mix(bufferIndexes,