Right drag spectrum vertically to adjust scale

This commit is contained in:
Charles J. Cliffe
2015-10-25 00:07:01 -04:00
parent 010d899895
commit 11aa8e9b05
7 changed files with 103 additions and 6 deletions
+15 -2
View File
@@ -17,6 +17,7 @@ SpectrumVisualProcessor::SpectrumVisualProcessor() : lastInputBandwidth(0), last
fft_floor_ma = fft_floor_maa = 0.0;
desiredInputSize.store(0);
fft_average_rate = 0.65;
scaleFactor.store(1.0);
}
SpectrumVisualProcessor::~SpectrumVisualProcessor() {
@@ -307,10 +308,12 @@ void SpectrumVisualProcessor::process() {
fft_floor_ma = fft_floor_ma + (fft_floor - fft_floor_ma) * 0.05;
fft_floor_maa = fft_floor_maa + (fft_floor_ma - fft_floor_maa) * 0.05;
float sf = scaleFactor.load();
for (int i = 0, iMax = fftSize; i < iMax; i++) {
float v = (log10(fft_result_maa[i]+0.25 - (fft_floor_maa-0.75)) / log10((fft_ceil_maa+0.25) - (fft_floor_maa-0.75)));
output->spectrum_points[i * 2] = ((float) i / (float) iMax);
output->spectrum_points[i * 2 + 1] = v;
output->spectrum_points[i * 2 + 1] = v*sf;
}
if (hideDC.load()) { // DC-spike removal
@@ -349,7 +352,7 @@ void SpectrumVisualProcessor::process() {
}
}
output->fft_ceiling = fft_ceil_maa;
output->fft_ceiling = fft_ceil_maa/sf;
output->fft_floor = fft_floor_maa;
}
@@ -361,3 +364,13 @@ void SpectrumVisualProcessor::process() {
busy_run.unlock();
}
void SpectrumVisualProcessor::setScaleFactor(float sf) {
scaleFactor.store(sf);
}
float SpectrumVisualProcessor::getScaleFactor() {
return scaleFactor.load();
}
+4
View File
@@ -35,6 +35,9 @@ public:
void setup(int fftSize);
void setHideDC(bool hideDC);
void setScaleFactor(float sf);
float getScaleFactor();
protected:
void process();
@@ -70,4 +73,5 @@ private:
std::atomic_int desiredInputSize;
std::mutex busy_run;
std::atomic_bool hideDC;
std::atomic<float> scaleFactor;
};