// karplus + strong plucked string filter// Ge Wang (gewang@cs.princeton.edu) // feedforwardNoise imp => OneZero lowpass => dac;// feedbacklowpass => Delay delay => lowpass; // our radius.99999 => float R;// our delay order500 => float L;// set delayL::samp => delay.delay;// set dissipation factorMath.pow( R, L ) => delay.gain;// place zero-1 => lowpass.zero; // fire excitation1 => imp.gain;// for one delay round tripL::samp => now;// cease fire0 => imp.gain; // advance time(Math.log(.0001) / Math.log(R))::samp => now;
// karplus + strong plucked string filter
// Ge Wang (gewang@cs.princeton.edu)
// feedforward
Noise imp => OneZero lowpass => dac;
// feedback
lowpass => Delay delay => lowpass;
// our radius
.99999 => float R;
// our delay order
500 => float L;
// set delay
L::samp => delay.delay;
// set dissipation factor
Math.pow( R, L ) => delay.gain;
// place zero
-1 => lowpass.zero;
// fire excitation
1 => imp.gain;
// for one delay round trip
L::samp => now;
// cease fire
0 => imp.gain;
// advance time
(Math.log(.0001) / Math.log(R))::samp => now;