Next  |  Prev  |  Up  |  Top  |  REALSIMPLE Top

Choice of Wah Filter Structure

A classic second-order resonator with separate controls for resonance frequency and resonance $Q$ (quality factor) is the state variable filter [16,2,3]. However, the measurements described below reveal that resonance-frequency, $Q$, 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 [12]15to 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.


Next  |  Prev  |  Up  |  Top  |  REALSIMPLE Top

Download faust_strings.pdf

``Making Virtual Electric Guitars and Associated Effects Using Faust'', by Julius O. Smith III,
REALSIMPLE Project — work supported in part by the Wallenberg Global Learning Network .
Released 2013-08-22 under the Creative Commons License (Attribution 2.5), by Julius O. Smith III
Center for Computer Research in Music and Acoustics (CCRMA),   Stanford University
CCRMA