Making Virtual Electric Guitars and Guitar Effects
Using Faust and Octave
Extended Karplus-Strong Algorithm
Pick-Position Comb FilterSearch 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 natural model of string excitation is an input signal summed into a virtual physical location along the length of a digital waveguide string model, as described in §4.9. This model can then be factored into a pick-position comb filter in series with a filtered delay loop, as used in the EKS [213,437] and derived in §4.9.1.
The EKS pick-position comb filter has the transfer function
In Faust, a feedforward comb filter is readily implemented using the delay function defined in music.lib:
ppdel = beta*P; // pick position as fraction of period pickpos = _ <: delay(Pmax,ppdel) : - ;where Pmax is some power of 2 larger than ppdel (see the definition of delay in music.lib to understand why a power of 2). In Faust, we can bring out a ``continuous'' pick-position control spanning half the string as follows:
beta = hslider("pick_position", 0.13, 0, 0.5, 0.01); // 0-1/2
The block diagram generated by ``faust -svg -simple-names'' is
shown in Fig.D.5. Pick position accuracy is normally not
critical, hence the 1% slider steps and lack of