hsc3-lang-0.8: Help/Pattern/Step/pclutch.help.lhs
pclutch :: (Num b, Ord b) => P a -> P b -> P a
pclutch' :: P a -> P Bool -> P a
i - input
c - clutch
Sample and hold a pattern. For values greater than
zero in the control pattern, step the value pattern,
else hold the previous value.
> import Sound.SC3.Lang.Pattern.Step
> let { p = pseq [1, 2, 3, 4, 5] 3
> ; q = pseq [1, 0, 1, 0, 0, 0, 1, 1] 1 }
> in evalP (pclutch p q)
There is a variant that requires a boolean
pattern.
> let { p = pseq [1, 2, 3, 4, 5] 3
> ; q = fmap not (pbool (pseq [0, 0, 1, 0, 0, 0, 1, 1] 1)) }
> in evalP (pclutch' p q)
Note the initialization behavior, nothing
is generated until the first true value.
> let { p = pseq [1, 2, 3, 4, 5] 3
> ; q = pseq [0, 0, 0, 1, 0, 0, 1] 1 }
> in evalP (pclutch p q)