Really simple question.
Why does ...
1 gateWhen: ((1 bpm: !BPM) nextRandom abs gt: !Thres)
not produce the same result as ...
1 bpm: !BPM
when !Thres is set to zero ...?
Because ((1 bpm: !BPM) nextRandom abs gt: !Thres) is always true (so it is always 1). In order to create a trigger or a gate, the value has to dip down to -1 or 0 first and then come back to 1.