packages feed

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)