I own a owl pedal since long ago, but I never really got into patch programming until now.
This patch was one of my favourites (I play bass), and it also seemed relatively straightforward, so I am making my first steps into digital signal processing by studying how it is done.
I stumbled on a doubt about crossover frequencies.
In particular, the crossover between mid and high frequencies is defined by:
(line 13) fParam3 = (float)0.38; //xover2 (about 438 Hz)
(line 72) fi2 = (float)powf(10.0,fParam3 - 1.05); fo2=(float)(1.0 - fi2);
(line 113) b2 = (f2i * a) + (f2o * b2); //crossovers
(where a is the current sample, b2 is the signal with high frequencies filtered out, so it is low+mid)
After an intense Wikipedia session, I managed to understand that this is an exponential smoothing filter.
The filter frequency should be related to the filter coefficient by the relation
f2o = exp(-Ts/tau)
Where Ts is the sampling time, and tau is the filter time constant.
In other words the cutoff frequency of the filter should be
fc = 1/(2*pi*tau) = Fs*ln(1/f2o)/(2*pi)
where Fs is the sampling frequency.
So, if I use Fs = 48 kHz, and ln(1/f2o) = 0.241 with the numbers defined in the code, I get a cutoff frequency
fc = 1.8 kHz
Instead of 438 Hz as written in the comment in line 13 of the patch code.
Is it just a typo in the code comment, or is there something else?
(This is a trivial matter for the patch itself, but it is really important for me to know if I missing something...)