From 1d7dbbdb051dea0c6155f5a1f0b560b7fb016c32 Mon Sep 17 00:00:00 2001 From: Chris Cannam Date: Thu, 8 Nov 2007 15:02:47 +0000 Subject: [PATCH] ... --- TODO | 22 ++++++++++++++++++++++ configure.ac | 4 ++-- src/StretcherProcess.cpp | 10 +++++++++- 3 files changed, 33 insertions(+), 3 deletions(-) create mode 100644 TODO diff --git a/TODO b/TODO new file mode 100644 index 0000000..47ac144 --- /dev/null +++ b/TODO @@ -0,0 +1,22 @@ + +* Threading lock structure is very slow if it becomes starved of CPUs +* Fix "!!!" points +* Rationalise naming further (e.g. use of "lock" for both peak phases + and resynchronisation at transients) +* LADSPA plugin has too much "artificial latency" +* LADSPA plugin could do with switches for transient/phaselock +* LADSPA plugin probably doesn't want to go any higher than about +2 octaves +* Vamp plugin argument no longer properly reflect internal parameters +* Solve "for very long stretches" issue in calculateSizes() +* Sort out resynthesis gain + +Rejig crispness options: + +0 - no transients, no peak lock, long window +1 - no transients, no peak lock, normal window +2 - no transients, peak lock, normal window +3 - band-limited transients, peak lock, normal window +4 - transients, no peak lock, normal window * - is this a good option to have? +5 - transients, peak lock, normal window +6 - transients, no peak lock, short window + diff --git a/configure.ac b/configure.ac index 0f64877..aced9fa 100644 --- a/configure.ac +++ b/configure.ac @@ -31,8 +31,8 @@ AC_SUBST(VAMP_LIBS) changequote(,)dnl if test "x$GCC" = "xyes"; then case " $CXXFLAGS " in - *[\ \ ]-Wall[\ \ ]*) ;; - *) CXXFLAGS="$CXXFLAGS -Wall" ;; + *[\ \ ]-fPIC -Wall[\ \ ]*) ;; + *) CXXFLAGS="$CXXFLAGS -fPIC -Wall" ;; esac fi changequote([,])dnl diff --git a/src/StretcherProcess.cpp b/src/StretcherProcess.cpp index 076f992..866682a 100644 --- a/src/StretcherProcess.cpp +++ b/src/StretcherProcess.cpp @@ -567,7 +567,15 @@ RubberBandStretcher::Impl::modifyChunk(size_t channel, size_t outputIncrement, pp = cd.freqPeak[i-1]; } - if (!lock) { + bool lockThis = lock; +/*!!! + size_t low = lrint((150 * m_blockSize) / rate); + size_t high = lrint((1000 * m_blockSize) / rate); + if (lockThis) { + if (i > low && i < high) lockThis = false; + } +*/ + if (!lockThis) { if (i == 0 || p != pp) {