Experimentally (re-)introduce short window mode

This commit is contained in:
Chris Cannam
2022-07-14 11:55:21 +01:00
parent dc74c993cf
commit 02928a3c86
4 changed files with 109 additions and 26 deletions

View File

@@ -253,19 +253,22 @@ protected:
struct ScaleData {
int fftSize;
bool shortWindowMode;
FFT fft;
Window<process_t> analysisWindow;
Window<process_t> synthesisWindow;
process_t windowScaleFactor;
GuidedPhaseAdvance guided;
ScaleData(GuidedPhaseAdvance::Parameters guidedParameters,
Log log) :
fftSize(guidedParameters.fftSize),
shortWindowMode(guidedParameters.shortWindowMode),
fft(fftSize),
analysisWindow(analysisWindowShape(fftSize),
analysisWindowLength(fftSize)),
synthesisWindow(synthesisWindowShape(fftSize),
synthesisWindowLength(fftSize)),
analysisWindow(analysisWindowShape(),
analysisWindowLength()),
synthesisWindow(synthesisWindowShape(),
synthesisWindowLength()),
windowScaleFactor(0.0),
guided(guidedParameters, log)
{
@@ -277,10 +280,10 @@ protected:
}
}
WindowType analysisWindowShape(int fftSize);
int analysisWindowLength(int fftSize);
WindowType synthesisWindowShape(int fftSize);
int synthesisWindowLength(int fftSize);
WindowType analysisWindowShape();
int analysisWindowLength();
WindowType synthesisWindowShape();
int synthesisWindowLength();
};
Parameters m_parameters;
@@ -367,6 +370,11 @@ protected:
return m_parameters.options &
RubberBandStretcher::OptionProcessRealTime;
}
bool isShortWindowed() const {
return m_parameters.options &
RubberBandStretcher::OptionWindowShort;
}
};
}