* More work on framing, interpolation and scaling for longer window than FFT size.

This adds the --smoothing option to the command line tool and SmoothingOn/Off
  options to the API, introducing a double-length window with presum FFT and
  time-domain smoothing.  Behaviour elsewhere _should_ be unchanged.
This commit is contained in:
Chris Cannam
2010-05-29 22:07:54 +01:00
parent 49cf25d724
commit 99ba629361
10 changed files with 190 additions and 128 deletions

View File

@@ -76,6 +76,8 @@ RubberBandStretcher::Impl::ChannelData::construct(const std::set<size_t> &sizes,
accumulator = allocate<float>(maxSize);
windowAccumulator = allocate<float>(maxSize);
interpolator = allocate<float>(maxSize);
interpolatorScale = 0;
for (std::set<size_t>::const_iterator i = sizes.begin();
i != sizes.end(); ++i) {
@@ -194,6 +196,8 @@ RubberBandStretcher::Impl::ChannelData::setSizes(size_t windowSize,
deallocate(windowAccumulator);
windowAccumulator = newAcc;
interpolatorScale = 0;
//!!! and resampler?
@@ -294,6 +298,7 @@ RubberBandStretcher::Impl::ChannelData::reset()
inCount = 0;
inputSize = -1;
outCount = 0;
interpolatorScale = 0;
unchanged = true;
draining = false;
outputComplete = false;