[Meta: not sure how to format the above code block to Haskell, anyone?]
[Admin: I just enabled this - write ‘haskell’ immediately after the first three backticks. You might need to refresh your browser for it to work.]
As far as Tidal is concerned, silence is a pattern the same as any other. If you run p "foo" silence then list, it’ll list it as running.
For your above use case I think we need a separate function called stop or similar (e.g. stop "foo") that really stops a pattern.
As for trigger UI, howabout
trigger - on its own, triggers on evaluation (i.e. as now but without having to give a pattern id)
triggerFrom - the current trigger
triggerWith - retrigger using a pattern of bools, e.g. d1 $ s "bd*8" # gain (triggerWith $ slow 8 "t" envL) to retrigger every 8 cycles
That would be an evolution from the current trigger function, but actually I think I’d prefer the last one in the list being called trigger as the starting point. Then we could have: