This has come up often enough that I’m willing (after the dust settles from a few things at work) to make this my first RFC.
See this thread:
https://scsynth.org/t/pbind-and-samples-with-different-durations-2
IMO something like Pattern.rest or Pattern.asRest should exist, but there is no consensus on that. You could also take James’ suggestion Prest from there.
chuckle I just reread that thread… I don’t have a lot to add to it, and tbh, my opinion hasn’t changed very much.
-
In pattern-land, the baseline way to modify patterns’ results is a filter pattern:
Pfin
,Pcollect
etc. -
EDIT deleted one point because it wasn’t true.
-
I’d also argue that reading the code out loud doesn’t work very well for a
rest
method.pattern.collect(func)
reads as “I have these values, and I want this operation to be done for them.”pattern.rest
reads as “I have these values, and… oh, by the way, I want them to be rests.” The latter strikes me as awkward, where the former does not. -
Last, I now think
Prest
should have a count argument (like Pfin) instead of a probability, default = 1. It seems to me that the typical case is to interlace a single rest in the middle of some other sequence. (Unless you’re John Cage, you never want an infinite stream of rests.) Tendency masking should be done by another class.
hjh