// Simple FM Doorbells, P. Cook, Feb 2009 SinOsc m1 => SinOsc c1 => Gain g1 => Delay d1 => Gain gglobal => dac; SinOsc m2 => SinOsc c2 => Gain g2 => d1; 0.04 :: second => d1.max => d1.delay; 3.0 => d1.gain; g1 => gglobal => dac; g2 => gglobal => dac; .05 => gglobal.gain; 775.0 => c1.freq; 2850.0 => m1.freq; 300.0 => m1.gain; 625.0 => c2.freq; 2375.0 => m2.freq; 200.0 => m2.gain; 2 => c1.sync; 2 => c2.sync; Impulse imp1 => OnePole p1 => g1; 0.99985 => p1.pole; 3 => g1.op; Impulse imp2 => OnePole p2 => g2; 0.99985 => p2.pole; 3 => g2.op; doorBell(); 1.0 :: second => now; doorBell(); 0.9 :: second => now; 5 => int i; while (i > 0) { i - 1 => i; doorBell(); Std.rand2f(0.1,0.2) :: second => now; } 1.5 :: second => now; fun void doorBell() { 10000.0 => imp1.next; 0.2 :: second => now; 10000.0 => imp2.next; }