X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Fdsp_filter.cc;h=a85e98fd556c5677a9ebcf5f85038cb3c91edc32;hb=fb430a7738d4d6d38de8ac3fba491c3572bed386;hp=0eef61a0f4b5a032fe2f346662e724f522ad1d3f;hpb=a09fec02139770c90bdadffb56b356826c314dfd;p=ardour.git diff --git a/libs/ardour/dsp_filter.cc b/libs/ardour/dsp_filter.cc index 0eef61a0f4..a85e98fd55 100644 --- a/libs/ardour/dsp_filter.cc +++ b/libs/ardour/dsp_filter.cc @@ -53,7 +53,7 @@ ARDOUR::DSP::mmult (float *data, float *mult, const uint32_t n_samples) { float ARDOUR::DSP::log_meter (float power) { - // compare to gtk2_ardour/logmeter.h + // compare to libs/ardour/log_meter.h static const float lower_db = -192.f; static const float upper_db = 0.f; static const float non_linearity = 8.0; @@ -197,9 +197,9 @@ Biquad::configure (double a1, double a2, double b0, double b1, double b2) void Biquad::compute (Type type, double freq, double Q, double gain) { - if (Q <= .001) { Q = 0.001; } - if (freq <= 1.) { freq = 1.; } - if (freq >= _rate) { freq = _rate; } + if (Q <= .001) { Q = 0.001; } + if (freq <= 1.) { freq = 1.; } + if (freq >= 0.4998 * _rate) { freq = 0.4998 * _rate; } /* Compute biquad filter settings. * Based on 'Cookbook formulae for audio EQ biquad filter coefficents' @@ -354,6 +354,7 @@ FFTSpectrum::~FFTSpectrum () void FFTSpectrum::init (uint32_t window_size, double rate) { + assert (window_size > 0); Glib::Threads::Mutex::Lock lk (fft_planner_lock); _fft_window_size = window_size;