X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Ffft_result.cc;h=37c045b7b052a1b38bd299263060de4a575d0f5c;hb=6ee23029a338951705c589be6c61ab52099758b6;hp=d692b9152b8c662871189b62d1a1205626aedf76;hpb=997e4b1f9cd7ccfc704b7c035051da7f60d831e7;p=ardour.git diff --git a/gtk2_ardour/fft_result.cc b/gtk2_ardour/fft_result.cc index d692b9152b..37c045b7b0 100644 --- a/gtk2_ardour/fft_result.cc +++ b/gtk2_ardour/fft_result.cc @@ -21,6 +21,7 @@ #include #include #include +#include #include #include @@ -31,7 +32,7 @@ using namespace std; FFTResult::FFTResult(FFTGraph *graph, Gdk::Color color, string trackname) { _graph = graph; - + _windowSize = _graph->windowSize(); _dataSize = _windowSize / 2; @@ -72,12 +73,12 @@ FFTResult::analyzeWindow(float *window) _data_avg[0] += b; if (b < _data_min[0]) _data_min[0] = b; if (b > _data_max[0]) _data_max[0] = b; - + for (i=1; i < _dataSize - 1; i++) { // TODO: check with Jesse whether this is really correct b = (_out[i] * _out[i]); _data_avg[i] += b; // + (_out[_windowSize-i] * _out[_windowSize-i]);, TODO: thanks to Stefan Kost - + if (_data_min[i] > b) _data_min[i] = b; if (_data_max[i] < b ) _data_max[i] = b; } @@ -98,18 +99,18 @@ FFTResult::finalize() // Average & scale for (int i = 0; i < _dataSize; i++) { _data_avg[i] /= _averages; - _data_avg[i] = 10.0f * log10f(_data_avg[i]); + _data_avg[i] = 10.0f * log10f(_data_avg[i]); - _data_min[i] = 10.0f * log10f(_data_min[i]); + _data_min[i] = 10.0f * log10f(_data_min[i]); if (_data_min[i] < -10000.0f) { _data_min[i] = -10000.0f; } - _data_max[i] = 10.0f * log10f(_data_max[i]); + _data_max[i] = 10.0f * log10f(_data_max[i]); } // find min & max _minimum = _maximum = _data_avg[0]; - + for (int i = 1; i < _dataSize; i++) { if (_data_avg[i] < _minimum && !isinf(_data_avg[i])) { _minimum = _data_avg[i];