the dsp::FilterDesign::designIIRHighpassHighOrderButterworthMethod
functions let us compute the coefficients for a highpass filter with a slope that is a multiple of 6db/oct (the order
).
However, they don’t let us adjust the Q. Instead, the Q is computed for us automatically based on the filter order we supply.
I’m trying to replicate the Q control in Logic Pro X’s channel EQ.
I know I need to directly call IIR::Coefficients::makeHighPass()
or makeFirstOrderHighPass
for each link in my ProcessChain required for the slope I need, but I don’t know what to supply for the Q parameter to these functions.
the helper function that produces the array of coefficients computes the Q via this if the order is a multiple of 12db/oct:
auto Q = 1.0 / (2.0 * std::cos ((2.0 * i + 1.0) * MathConstants<double>::pi / (order * 2.0)));
or this, if the order is not:
auto Q = 1.0 / (2.0 * std::cos ((i + 1.0) * MathConstants<double>::pi / order));
Can anyone shed some insight on how the 0.10
and 100
work as a Q parameter in the Logic Pro X channel EQ?
How would that same computation be used as the IIR::Coefficients::makeHighPass()
Q
param?