// Door Pound, P. Cook, Feb. 6 2009 Noise n => Gain g => PoleZero pz => LPF lp => Delay d => Gain gglobal => dac; lp => gglobal => dac; .085 => gglobal.gain; 0.1 :: second => d.max => d.delay; Impulse i => OnePole p => g; 0.999 => p.pole; 3 => g.op; 1 => pz.blockZero; 150.0 => lp.freq; 1 => lp.Q; knock(5,1.0); 1.0 :: second => now; knock(6,1.05); 0.8 :: second => now; knock(3,1.20); fun void knock(int numTimes, float howEnergetic) { while (numTimes > 0) { Std.rand2f(0.01,0.04) :: second => d.delay; Math.pow(10.0,howEnergetic) * 20000.0 => i.next; (Std.rand2f(0.25,0.32)/howEnergetic) :: second => now; numTimes - 1 => numTimes; } }