X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Ffft_result.cc;h=a83b65e854f30183bc2f5629f2bd4eb47f3248b0;hb=2031007a3a6a2c47ec6c4dd5270afd5dc7a53de4;hp=d692b9152b8c662871189b62d1a1205626aedf76;hpb=997e4b1f9cd7ccfc704b7c035051da7f60d831e7;p=ardour.git diff --git a/gtk2_ardour/fft_result.cc b/gtk2_ardour/fft_result.cc index d692b9152b..a83b65e854 100644 --- a/gtk2_ardour/fft_result.cc +++ b/gtk2_ardour/fft_result.cc @@ -18,9 +18,10 @@ */ -#include -#include +#include "fft_result.h" +#include "fft_graph.h" #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];