diff options
Diffstat (limited to 'externals/grill/fftease/src/fftease.cpp')
-rw-r--r-- | externals/grill/fftease/src/fftease.cpp | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/externals/grill/fftease/src/fftease.cpp b/externals/grill/fftease/src/fftease.cpp index d29ecf27..4944e839 100644 --- a/externals/grill/fftease/src/fftease.cpp +++ b/externals/grill/fftease/src/fftease.cpp @@ -22,9 +22,8 @@ fftease::~fftease() {} BL fftease::Init() { - BL ret = flext_dsp::Init(); Clear(); - return ret; + return flext_dsp::Init(); } V fftease::Exit() @@ -71,6 +70,13 @@ V fftease::m_signal(I n,S *const *in,S *const *out) _input1[i] = in[0][j]; } + _rms = 0.; + if(_flags&F_RMS) { + for ( i=0; i < _Nw; i++ ) + _rms += _input1[i] * _input1[i]; + _rms = sqrt(_rms / _Nw); + } + /* apply hamming window and fold our window buffer into the fft buffer */ fold( _input1, _Wanal, _Nw, _buffer1, _N, _inCount ); if(_flags&F_STEREO) fold( _input2, _Wanal, _Nw, _buffer2, _N, _inCount ); @@ -133,11 +139,11 @@ void fftease::Set() /* assign memory to the buffers */ _input1 = new F[_Nw]; _buffer1 = new F[_N]; - if(_flags&F_CONVERT) _channel1 = new F[_N+2]; + if(_flags&(F_CONVERT|F_CRES)) _channel1 = new F[_N+2]; if(_flags&F_STEREO) { _input2 = new F[_Nw]; _buffer2 = new F[_N]; - if(_flags&F_CONVERT) _channel2 = new F[_N+2]; + if(_flags&(F_CONVERT|F_CRES)) _channel2 = new F[_N+2]; } _output = new F[_Nw]; |