diff --git a/SignalProcessing/FIRFilter.cpp b/SignalProcessing/FIRFilter.cpp index 2668f8a55..86b1261bf 100644 --- a/SignalProcessing/FIRFilter.cpp +++ b/SignalProcessing/FIRFilter.cpp @@ -69,7 +69,7 @@ static void csfilter_setIdealisedFilterResponse(short *filterCoefficients, float a = 0.5842f * powf(attenuation - 21.0f, 0.4f) + 0.7886f * (attenuation - 21.0f); } - float *filterCoefficientsFloat = (float *)malloc(sizeof(float) * numberOfTaps); + float *filterCoefficientsFloat = new float[numberOfTaps]; /* work out the right hand side of the filter coefficients */ unsigned int Np = (numberOfTaps - 1) / 2; @@ -103,7 +103,7 @@ static void csfilter_setIdealisedFilterResponse(short *filterCoefficients, float filterCoefficients[i] = (short)(filterCoefficientsFloat[i] * kCSKaiserBesselFilterFixedMultiplier * coefficientMultiplier); } - free(filterCoefficientsFloat); + delete[] filterCoefficientsFloat; } FIRFilter::FIRFilter(unsigned int number_of_taps, unsigned int input_sample_rate, float low_frequency, float high_frequency, float attenuation) diff --git a/SignalProcessing/FIRFilter.hpp b/SignalProcessing/FIRFilter.hpp index 27319d055..7fe5dff51 100644 --- a/SignalProcessing/FIRFilter.hpp +++ b/SignalProcessing/FIRFilter.hpp @@ -49,7 +49,7 @@ class FIRFilter { ~FIRFilter(); /*! A suggested default attenuation value. */ - const float DefaultAttenuation = 60.0f; + constexpr static float DefaultAttenuation = 60.0f; /*! Applies the filter to one batch of input samples, returning the net result.