From fc9acfe376e797b72458304a110dc7369f88ca75 Mon Sep 17 00:00:00 2001 From: Eoin Mcloughlin Date: Sun, 18 Dec 2016 14:02:29 +0000 Subject: [PATCH] Try to keep tuner at same spot when changing fft size --- spectrogramplot.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/spectrogramplot.cpp b/spectrogramplot.cpp index a756bed..8ec4396 100644 --- a/spectrogramplot.cpp +++ b/spectrogramplot.cpp @@ -33,7 +33,7 @@ SpectrogramPlot::SpectrogramPlot(std::shared_ptr>> src) : Plot(src), inputSource(src), fftSize(512), tuner(this) { - setFFTSize(512); + setFFTSize(fftSize); zoomLevel = 1; powerMax = 0.0f; powerMin = -50.0f; @@ -274,6 +274,7 @@ std::shared_ptr SpectrogramPlot::output() void SpectrogramPlot::setFFTSize(int size) { + float sizeScale = float(size) / float(fftSize); fftSize = size; fft.reset(new FFT(fftSize)); @@ -283,6 +284,8 @@ void SpectrogramPlot::setFFTSize(int size) } setHeight(fftSize); + tuner.setDeviation( tuner.deviation() * sizeScale ); + tuner.setCentre( tuner.centre() * sizeScale ); } void SpectrogramPlot::setPowerMax(int power)