If you can actually modify the Q, then it’s just not a butterworth. Perhaps they errornously refer to a standard abstract/analog filter as “butterworth”.

DaveH’s system *can* make a “standard” (where standard usually is RBJ’s cookbook formulas) bandpass if you tune the filters *just* right. However, it is not straightforward and 2x times slower for both coefficient calculation and processing than a direct bandpass, with (possibly) worse signal quality.

Calculating a highpass from a lowpass should work for any filter implemented using BLT. But please,

```
IIRCoefficients::makeBandPass(double sampleRate, double frequency, double Q);
```

is exactly what you want. If you want to analyse the response, use this formula:

http://musicdsp.org/showone.php?id=186

Where a0, a1, a2, b0, b1 is, respectively:

IIRCoefficients.coeffcients[0], IIRCoefficients.coeffcients[1] … etc.

If you don’t like the JUCE implementation, you can use this one:

http://www.earlevel.com/main/2012/11/26/biquad-c-source-code/

However, be aware that it doesn’t calculate shelving filters correctly (neglects Q) and that biquads in general are poor for modulation and low center frequencies. Note that juce’s IIRFilter is also a biquad. If this is a problem, find a suitable SVF filter (but that is a different conversion - welcome to the rabbit hole )