Making Virtual Electric Guitars and Guitar Effects
Using Faust and Octave
Coupled Strings in FaustSearch 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 diagram for two coupled strings is given in Fig.H.28. A Faust template for this block diagram is displayed in Fig.D.13 and specified as follows:
import("music.lib");
g1 = 0.999; g2 = 0.995; P = 200; Pmax = 256; detune = 1;
d1 = fdelay(Pmax,P-2);
d2 = delay(Pmax,P*(1.0 - 0.01*detune)-2);
bridgefilter = + : *(-0.5);
g = g1;
stringloop = ( _,+ : ((d2 <: _,_),(d1 <: _,_))
: (_, (bridgefilter <: _,_) ,_)
: +,+) ~ (*(g2),*(g1)) ;
process = stringloop;
where P is the fundamental period, in samples, and
Note that the excitation only enters one of the string loops in Fig.D.13. This corresponds, for example, to plucking the string in the horizontal plane, say (the d1 loop), with the vertical plane (d2 loop) vibrating ``sympathetically''. More generally, the two loops may be excited by varying amounts of the excitation signal, corresponding to a physically inexact excitation plane.
As discussed in §H.11.1, the bridgefilter
is
of the form
stringloop = (+ <: (d2,d1) : + : *(0.5)) ~ *(g);