adc => ZeroX zc => HalfRect rect => OnePole p => blackhole; -1.0 => p.a1; 1.0 => p.b0; adc => Gain gl => dac.left; adc => Gain gr => dac.right; SinOsc s => dac; 0 => float ZCs; while (1) { 0.1 :: second => now; p.last() * 10.0 => s.freq; 0.0 => p.a1; 0.0 => p.b0; 1.0 :: samp => now; -1.0 => p.a1; 1.0 => p.b0; if (p.last() < 150) { 1.0 => gl.gain; 0.0 => gr.gain; } else { 0.0 => gl.gain; 1.0 => gr.gain; } <<< ZCs >>>; 0 => ZCs; }