changeset 105:ef7b8d9363c0

Tail padding fix
author Chris Cannam <c.cannam@qmul.ac.uk>
date Wed, 14 May 2014 10:41:20 +0100
parents b5ec88e05a65
children 0a089d7d162d
files cpp-qm-dsp/CQInverse.cpp
diffstat 1 files changed, 4 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/cpp-qm-dsp/CQInverse.cpp	Wed May 14 10:30:49 2014 +0100
+++ b/cpp-qm-dsp/CQInverse.cpp	Wed May 14 10:41:20 2014 +0100
@@ -286,8 +286,10 @@
 CQInverse::RealSequence
 CQInverse::getRemainingOutput()
 {
-    for (int i = 0; i < (m_p.fftSize - m_p.fftHop) / m_p.fftHop; ++i) {
-        for (int j = 0; j < m_octaves; ++j) {
+    for (int j = 0; j < m_octaves; ++j) {
+        int factor = pow(2, j);
+        int latency = (j > 0 ? m_upsamplers[j]->getLatency() : 0) / factor;
+        for (int i = 0; i < (latency + m_p.fftSize) / m_p.fftHop; ++i) {
             overlapAddAndResample(j, RealSequence(m_olaBufs[j].size(), 0));
         }
     }