Next  |  Prev  |  Up  |  Top  |  REALSIMPLE Top

Faust Implementation (effect.lib)

  levelfilter(L,freq,x) = (L * L0 * x) + ((1.0-L) * lp2out(x))
  with {
    L0 = pow(L,1/3);
    Lw = PI*freq/SR; // = w1 T / 2
    Lgain = Lw / (1.0 + Lw);
    Lpole2 = (1.0 - Lw) / (1.0 + Lw);
    lp2out = *(Lgain) : + ~ *(Lpole2);
  };

To intensify the effect, $N_d$ units can be used in series, with the desired Nyquist-limit level divided by $N_d$ for each section:

  levelfilterN(Nd,freq,L) = seq(i,Nd,levelfilter((L/Nd),freq));


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