Difference between revisions of "fastSqueeze"

From TidalCycles userbase
Jump to: navigation, search
(Created page with "Type: <source inline>fastSqueeze :: Pattern Time -> Pattern a -> Pattern a</source> '''fastSqueeze''' speeds up a pattern by a time pattern given as input...")
 
(syntax highlight on type)
 
Line 1: Line 1:
[[Type signatures|Type]]: <source inline>fastSqueeze :: Pattern Time -> Pattern a -> Pattern a</source>
+
[[Type signatures|Type]]: <syntaxhighlight lang="haskell" inline>fastSqueeze :: Pattern Time -> Pattern a -> Pattern a</syntaxhighlight>
  
 
'''fastSqueeze''' speeds up a pattern by a time pattern given as input, squeezing the resulting pattern inside one cycle and playing the original pattern ''at every repetition''.  
 
'''fastSqueeze''' speeds up a pattern by a time pattern given as input, squeezing the resulting pattern inside one cycle and playing the original pattern ''at every repetition''.  

Latest revision as of 16:56, 30 May 2020

Type: fastSqueeze :: Pattern Time -> Pattern a -> Pattern a

fastSqueeze speeds up a pattern by a time pattern given as input, squeezing the resulting pattern inside one cycle and playing the original pattern at every repetition.

To better understand how it works let's compare it with fast:

d1 $ fast "1 2" $ s "bd sn"

-- output
(0>½)|s: "bd"
(½>¾)|s: "bd"
(¾>1)|s: "sn"

This will give bd played in the first half cycle and bd sn in the second half.

On the other hand, using fastSqueeze;

fastSqueeze "1 2" $ s "bd sn"

--output
(0>¼)|s: "bd"
(¼>½)|s: "sn"
(½>⅝)|s: "bd"
(⅝>¾)|s: "sn"
(¾>⅞)|s: "bd"
(⅞>1)|s: "sn"

the original pattern will play in the first half and two repetitions of the original pattern will play in the second half. That is, every repetition contains the whole pattern.

If the time pattern has a single value, it becomes equivalent to fast:

d1 $ fastSqueeze 2 $ s "bd sn"
-- is equal to
d1 $ fast 2 $ s "bd sn"
-- and equivalent to
d1 $ s "[bd sn]*2"