fun void in1(float dynamic, dur length){ Event in1_off; spork ~ in1(dynamic, in1_off); length => now; in1_off.broadcast(); 10::second => now; } fun void in1(float dynamic, Event off){ <<<"in1 on", dynamic>>>; off => now; <<<"in1 off",dynamic>>>; 1::second => now; <<<"in1, 1 second after off",dynamic>>>; } fun void in2(float dynamic, dur length){ Event in2_off; spork ~ in2(dynamic, in2_off); length => now; in2_off.broadcast(); 10::second => now; } fun void in2(float dynamic, Event off){ <<<"in2 on",dynamic>>>; off => now; <<<"in2 off",dynamic>>>; 2::second => now; <<<"in2, 2 seconds after off",dynamic>>>; } Event in1_off, in2_off; spork ~ in1(1,in1_off); spork ~ in2(.9,in2_off); spork ~ in1(.6, 1::second); spork ~ in2(.1, 2::second); 200::ms => now; in1_off.broadcast(); 1::week => now;