public class MediumRoom { // // Delay Lines // Delay delay1; 5::ms => delay1.max; 5::ms => delay1.delay; Delay delay2; 67::ms => delay2.max; 67::ms => delay2.delay; Delay delay3; 15::ms => delay3.max; 15::ms => delay3.delay; 0.4 => delay3.gain; Delay delay4; 108::ms => delay4.max; 108::ms => delay4.delay; 0.4 => delay4.gain; // // All pass filters // // Double nested allpass Allpass inner_ap0; Allpass inner_ap1; Allpass double_nested_ap; // The parameters supplied in the csound book blow up. double_nested_ap.param(4.7::ms, 0.15); inner_ap0.param(22::ms, 0.25); inner_ap1.param(8.3::ms, 0.3); double_nested_ap.nest(inner_ap0, inner_ap1); // Single nested allpass Allpass inner_ap2; Allpass single_nested_ap; single_nested_ap.param(29.2::ms, 0.25); inner_ap2.param(9.8::ms, 0.35); inner_ap2 => single_nested_ap.nest; // single allpass Allpass allpass; allpass.param(30::ms, 0.45); // // // // // Frequency filters // LPF lpf; 6000 => 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; 0.5 => preOut1.gain; Gain preOut2; 0.5 => preOut2.gain; // // // // // Circuit // lpf => double_nested_ap.chuck => preOut1 => out; bpfH => double_nested_ap.chuck => delay1 => allpass.chuck => delay2 => preOut1; delay2 => delay3 => single_nested_ap.chuck => preOut2 => out; single_nested_ap.chuck() => delay4 => bpfL => bpfH; lpf => single_nested_ap.chuck; // // // public UGen chuck(UGen in){ in => lpf; return out; } public UGen chuck () { return out; } }