Making Virtual Electric Guitars and Guitar Effects
Using Faust and Octave
Adding a Wah Pedal
Digitizing the CryBaby
Choice of Wah Filter StructureSearch Physical Audio Signal Processing
Would you like to be notified by email when Julius Orion Smith III publishes a new entry into his blog?
A classic second-order resonator with separate controls for
resonance frequency and resonance
(quality factor) is
the state variable filter
[490,81,101].
However, the measurements described below reveal that
resonance-frequency,
, and gain all vary significantly with pedal
angle. For that reason, and because our Faust implementation uses
floating point (thus eliminating the need to consider special filter
structures for improved fixed-point behavior), we choose the simple
biquad section [460]D.19to implement the wah resonator.
In Faust, the function TF2(b0,b1,b2,a1,a2) (defined in music.lib) implements a biquad filter section:
TF2(b0,b1,b2,a1,a2) = sub ~ conv2(a1,a2) : conv3(b0,b1,b2)
with {
conv3(k0,k1,k2,x) = k0*x + k1*x' + k2*x'';
conv2(k0,k1,x) = k0*x + k1*x';
sub(x,y) = y-x;
};
It remains to express the five biquad coefficients as a function of a single wah variable. This will be done by fitting a biquad to three measured frequency responses and coming up with an interpolation formula for the varying coefficients.
