Butterworth IIR filter calculation by order


#1

Very thanks for higher order Butterworth filter calculation in Juce 5.1.
But calculation by order of this filter needed more often. In EQ for example.

Pls, add it in fiture.
And how calculate now by order?


#2

Hello Rotor18 !

I had a lot of potential options for the Filter Design input arguments, and providing functions for all the possibilities would have been complicated and not very practical in the API.

Moreover, when you say you want the calculation by order, you didn’t say what are the other arguments you need. Order alone wouldn’t be enough ! You see the problem ?

I suggest you to have a look for the original code and the calculation of the order for given specifications. Using this information, and the specific arguments you need in your EQ, you might be able to code a spec to order function, and to use that function for your application. I can’t do anything simpler than that I’m afraid…


#3

Calculation by order is very basic approach.

Not alone sure. Cutoff frequency also.
Look at Matlab FDATool for example, pls.

Do it already. Not seems too simple.


#4

Holy shit :smile:


#5

I mean : i’m doing it already and code do not looks too simple.
Sorry my english.


#6

OK I see what you mean. Indeed, in MATLAB, you can get coefficients of a Butterworth filter giving only two parameters (frequency + order), and the magnitude frequency response you get is straight at N dB/octave depending on the order (and different close to the Nyquist frequency of course).

What I provided in JUCE is different, that’s the content of the classic article from Sophocles J. Orfanidis where the specification is passband frequency / stopband frequency / passband attenuation / stopband attenuation. The purpose is different, and the mapping between the two is not straightforward.

To be fair, I didn’t expect these filters to be used for standard audio processing, but more for utilities tasks, that’s why it was fine in my opinion to keep things this way. But the Butterworth filter design class could be very useful for classic filter processing, so I might code other implementations with frequency + order as well, and the option to choose between lowpass / highpass / bandpass topologies as well, since they could be quite useful.

I’ll see what I can do when I have some time.