public class Allpass { Gain feedforward; Gain feedback; Gain sum; Delay delay; // feedback sum => feedback => delay => sum; feedforward => sum; //public void connect( UGen in, UGen out) { // in => feedforward; // in => delay; // sum => out; //} public UGen chuck(UGen in){ in => feedforward; in => delay; return sum; } public UGen chuck () { return sum; } public void param(dur duration, float damping ) { duration => delay.max; duration => delay.delay; damping => feedback.gain; damping * -1.0 => feedforward.gain; } public void nest (Allpass nest){ delay =< sum; delay => nest.chuck => sum; } public void nest (Allpass nest, Allpass nest2){ delay =< sum; delay => nest.chuck => nest2.chuck => sum; } // // Schematic of the Allpass // ---<----feeback -<---------- // | | // in -->-+| delay | -->-+ (nest)-sum ---> out // | | // ==->----feedforward->----------- // }