At first that seemed like an easy task but I can't find a way to do it without using a feedback loop:
- every 100 ms decide on a certain probability to trigger a ramp00
- if the ramp00 is triggered don't retrigger it until it finished
- the random spacing should always be active (so also when the ramp length is fixed)
| trigger |
trigger := ( ((1 - (FeedbackLoopOutput L asLogicValue)) * ((100 ms random) gt: !Density)) + (1 ramp00: 20 ms)) seed: 0.1.
(trigger ramp00: (!CenterDuration s + (trigger nextRandom * !Deviation s))) seed: 0.1
The output of the constant with this expression feeds the corresponding FeedbackLoopInput. So here I am preventing the retriggering by checking if the ramp is still running. That works but I'm scratching my head how I could do that with CapyTalk only - any ideas?