public class LargeRoom { // // Delay Lines // Delay delay0; 4::ms => delay0.max; 4::ms => delay0.delay; Delay delay1; 17::ms => delay1.max; 17::ms => delay1.delay; Delay delay2; 31::ms => delay2.max; 31::ms => delay2.delay; Delay delay3; 3::ms => delay3.max; 3::ms => delay3.delay; // // All pass filters // // Double nested allpass Allpass inner_ap0; Allpass inner_ap1; Allpass double_nested_ap; double_nested_ap.param(14::ms, 0.40); inner_ap0.param(76::ms, 0.25); inner_ap1.param(30::ms, 0.25); double_nested_ap.nest(inner_ap0, inner_ap1); // Single nested allpass Allpass inner_ap2; Allpass single_nested_ap; single_nested_ap.param(25::ms, 0.5); inner_ap2.param(62::ms, 0.25); inner_ap2 => single_nested_ap.nest; // single allpass Allpass allpass0; allpass0.param(8::ms, 0.3); Allpass allpass1; allpass1.param(12::ms, 0.3); // // // // // Frequency filters // LPF lpf; 4000 => lpf.freq; HPF bpfL; 500 => bpfL.freq; LPF bpfH; 1500 => bpfH.freq; 0.5 => bpfH.gain; // // // // // Gains // Gain out; 1.0 => out.gain; Gain preOut1; 1.5 => preOut1.gain; Gain preOut2; 0.8 => preOut2.gain; Gain preOut3; 0.8 => preOut3.gain; Gain Feedback; 0.5 => Feedback.gain; // // // // // Circuit // lpf => allpass0.chuck => allpass1.chuck => delay0 => preOut1 => out; delay0 => delay1 => single_nested_ap.chuck => delay2 => preOut2 => out; delay2 => delay3 => double_nested_ap.chuck => preOut3 => out; double_nested_ap.chuck() => Feedback => bpfL => bpfH => allpass0.chuck; // // // public UGen chuck(UGen in){ in => lpf; return out; } public UGen chuck () { return out; } }