IIR Filter BandPass Parameters

What’s “frequency” in dsp::IIR::Coefficients::makeBandPass(samplerate, frequency, qFactor)? How would you design a 1kHz - 8kHz band pass filter in JUCE?
In another forum thread “frequency” is called “frequency response” and is calculated as freqResp = sqrt(fStart * fEnd) and qFactor as freqResp/bandwidth, is this correct?

I noticed the default order of the filter is 2, can it be modified?

The frequency of a band-pass filter is usually the centre frequency, which is the frequency mid-way between the lower cutoff and the higher cutoff on a logarithmic scale.

That frequency calculation is correct, yes. E.g. sqrt(20 * 2000) == 200.

As for the bandwidth calculation, I’d have to look into the implementation of makeBandPass, but the proposed calculation there seems reasonable.

Short answer is no. You’ll have to cascade the filters to get a higher order - although I don’t know how well that’d work for the bandpass filters as cascading filters causes the magnitude of the cutoff frequency to change unless the Q is adjusted to compensate. However for the bandpass filters you only have control over the Q for the bandwidth, not the response of the high-pass/low-pass filters.

EarLevel has a calculator for the Q’s of cascading filters which I’ve found useful in the past: Cascading filters | EarLevel Engineering