Current version: 1.0.04b
The typical BiQuad filter implementation is only safe within a range of it's frequency parameter - in our case, we have clamped the "frequency" parameter to min (SR/24576.0) and max (SR/2.125) ranges, and placed assertions if our parameter goes beyond the range of 20hz...20,000hz.
In our latest build, we have variable oversampling (up to x16) which can be used to combat the ill-effects of digital cramping (at the expense of heavy phase distortion, no less!) which affects the audio path only.
During testing and building, any increase in OS rate would be reflected in our filter's centre frequency shifting upwards by the same multiplicative amount as our selected OS setting. A quick and dirty fix is to apply our variable named "overSampling factor" to the frequency parameter by a division, before going into the biquad processor.
The above works just fine operationally - the correct centre frequency is returned by the filter output. However, we are able to crash via assertion if we move up to, say, x16 oversampling and bring our frequency down toward it's minimum position. The position is marked on the GUI as 20hz, but of course our division is causing the actual number to be changed inside our BiQuad processor - our hz value, as the BiQaud processor sees it, goes beyond the lower bounds of 20hz, causing the assertion.
The above quick and dirty fix has been substituted for a BiQuad processor-wide fix in which the "sampleRate" variable which is now made public, accessed via the Wrapper and multiplied by "overSampling factor" - which is all updated on parameter change - and this new SR, being processor-wide, is then propagated to the assertions as well as the parameter control. Everything makes sense again.
Making the sampleRate variable public is not really an ideal fix in the wider world - this variable shouldn't really be accessible outside by the user (or other processors), particularly at run time. It may indeed be possible to call the BiQuad's prepare() method each time the OS is changed, but this also will potentially incur much more run-time hassle than is needed.
A solid fix would leave the sampleRate variable private, similar to the juce DSP modules, but allow our filter's real centre frequency (and related safety assertions) to be oversampling-friendly.