Difference between revisions of "every"

From TidalCycles userbase
Jump to: navigation, search
Line 1: Line 1:
<syntaxhighlight lang="haskell">
+
[[Type signature|Type]]: <syntaxhighlight lang="haskell" inline>every :: Pattern Int -> (Pattern a -> Pattern a) -> Pattern a -> Pattern a</syntaxhighlight>
every :: Pattern Int -> (Pattern a -> Pattern a) -> Pattern a -> Pattern a
 
</syntaxhighlight>
 
  
 
'''every''' is function, that allows you to apply another function conditionally. It takes three inputs, how often the function should be applied (e.g. <syntaxhighlight lang="haskell" inline>3</syntaxhighlight> to apply it every 3 cycles), the function to be applied, and the pattern you are applying it to.  
 
'''every''' is function, that allows you to apply another function conditionally. It takes three inputs, how often the function should be applied (e.g. <syntaxhighlight lang="haskell" inline>3</syntaxhighlight> to apply it every 3 cycles), the function to be applied, and the pattern you are applying it to.  

Revision as of 16:45, 23 November 2018

Type: every :: Pattern Int -> (Pattern a -> Pattern a) -> Pattern a -> Pattern a

every is function, that allows you to apply another function conditionally. It takes three inputs, how often the function should be applied (e.g. 3 to apply it every 3 cycles), the function to be applied, and the pattern you are applying it to.

For example to reverse a pattern every three cycles (and for the other two play it normally):

d1 $ every 3 rev $ n "0 1 [~ 2] 3" # sound "arpy"

Note that if the function you're applying requires additional parameters itself (such as fast 2 to make a pattern twice as fast), then you'll need to wrap it in parenthesis, like so:

d1 $ every 3 (fast 2) $ n "0 1 [~ 2] 3" # sound "arpy"

Otherwise, the every function will think it is being passed too many parameters.