Dust generates randomly distributed triggers, but you don't know how much time will pass between each trigger. Here, you calculate the time you want and the pulse generator adjusts to it.
I use this trick all the time.
SynthDef(\trigDelta, { var initTrig = Impulse.kr(0), delta = Select.kr(initTrig, [LocalIn.kr(1), Rand(0.5, 1.5)]), trig = Impulse.kr(delta.reciprocal), nextdelta = TRand.kr(0.5, 1.5, trig); LocalOut.kr(nextdelta); SendTrig.kr(trig, 0, delta); }).send(s); o = OSCresponderNode(s.addr, '/tr', { |t, r, m| "last = %, now = %, delta = %, actual delta = %\n" .postf(x, t, m[3], t - x); x = t; }).add; x = Main.elapsedTime; a = Synth(\trigDelta); a.free; o.remove;
hjh