Safe Haskell | None |
---|---|
Language | Haskell2010 |
Sound.Tidal.Transition
Synopsis
- type TransitionMapper = Time -> [ControlPattern] -> ControlPattern
- transition :: Stream -> Bool -> TransitionMapper -> ID -> ControlPattern -> IO ()
- _mortalOverlay :: Time -> Time -> [Pattern a] -> Pattern a
- _wash :: (Pattern a -> Pattern a) -> (Pattern a -> Pattern a) -> Time -> Time -> Time -> Time -> [Pattern a] -> Pattern a
- _washIn :: (Pattern a -> Pattern a) -> Time -> Time -> [Pattern a] -> Pattern a
- _xfadeIn :: Time -> Time -> [ControlPattern] -> ControlPattern
- _histpan :: Int -> Time -> [ControlPattern] -> ControlPattern
- _wait :: Time -> Time -> [ControlPattern] -> ControlPattern
- _waitT :: (Time -> [ControlPattern] -> ControlPattern) -> Time -> Time -> [ControlPattern] -> ControlPattern
- _jump :: Time -> [ControlPattern] -> ControlPattern
- _jumpIn :: Int -> Time -> [ControlPattern] -> ControlPattern
- _jumpIn' :: Int -> Time -> [ControlPattern] -> ControlPattern
- _jumpMod :: Int -> Time -> [ControlPattern] -> ControlPattern
- _jumpMod' :: Int -> Int -> Time -> [ControlPattern] -> ControlPattern
- _mortal :: Time -> Time -> Time -> [ControlPattern] -> ControlPattern
- _interpolate :: Time -> [ControlPattern] -> ControlPattern
- _interpolateIn :: Time -> Time -> [ControlPattern] -> ControlPattern
- _clutch :: Time -> [Pattern a] -> Pattern a
- _clutchIn :: Time -> Time -> [Pattern a] -> Pattern a
- _anticipateIn :: Time -> Time -> [ControlPattern] -> ControlPattern
- _anticipate :: Time -> [ControlPattern] -> ControlPattern
- mortalOverlay :: Time -> Time -> [Pattern a] -> Pattern a
- wash :: (Pattern a -> Pattern a) -> (Pattern a -> Pattern a) -> Time -> Time -> Time -> Time -> [Pattern a] -> Pattern a
- washIn :: (Pattern a -> Pattern a) -> Time -> Time -> [Pattern a] -> Pattern a
- xfadeIn :: Time -> Time -> [ControlPattern] -> ControlPattern
- histpan :: Int -> Time -> [ControlPattern] -> ControlPattern
- wait :: Time -> Time -> [ControlPattern] -> ControlPattern
- waitT :: (Time -> [ControlPattern] -> ControlPattern) -> Time -> Time -> [ControlPattern] -> ControlPattern
- jump :: Time -> [ControlPattern] -> ControlPattern
- jumpIn :: Int -> Time -> [ControlPattern] -> ControlPattern
- jumpIn' :: Int -> Time -> [ControlPattern] -> ControlPattern
- jumpMod :: Int -> Time -> [ControlPattern] -> ControlPattern
- jumpMod' :: Int -> Int -> Time -> [ControlPattern] -> ControlPattern
- mortal :: Time -> Time -> Time -> [ControlPattern] -> ControlPattern
- interpolate :: Time -> [ControlPattern] -> ControlPattern
- interpolateIn :: Time -> Time -> [ControlPattern] -> ControlPattern
- clutch :: Time -> [Pattern a] -> Pattern a
- clutchIn :: Time -> Time -> [Pattern a] -> Pattern a
- anticipateIn :: Time -> Time -> [ControlPattern] -> ControlPattern
- anticipate :: Time -> [ControlPattern] -> ControlPattern
Documentation
type TransitionMapper = Time -> [ControlPattern] -> ControlPattern Source #
transition :: Stream -> Bool -> TransitionMapper -> ID -> ControlPattern -> IO () Source #
_wash :: (Pattern a -> Pattern a) -> (Pattern a -> Pattern a) -> Time -> Time -> Time -> Time -> [Pattern a] -> Pattern a Source #
Washes away the current pattern after a certain delay by applying a function to it over time, then switching over to the next pattern to which another function is applied.
_xfadeIn :: Time -> Time -> [ControlPattern] -> ControlPattern Source #
_histpan :: Int -> Time -> [ControlPattern] -> ControlPattern Source #
Pans the last n versions of the pattern across the field
_wait :: Time -> Time -> [ControlPattern] -> ControlPattern Source #
Just stop for a bit before playing new pattern
_waitT :: (Time -> [ControlPattern] -> ControlPattern) -> Time -> Time -> [ControlPattern] -> ControlPattern Source #
_jump :: Time -> [ControlPattern] -> ControlPattern Source #
Jumps directly into the given pattern, this is essentially the _no transition_-transition.
Variants of jump
provide more useful capabilities, see jumpIn
and jumpMod
_jumpIn :: Int -> Time -> [ControlPattern] -> ControlPattern Source #
Sharp jump
transition after the specified number of cycles have passed.
t1 (jumpIn 2) $ sound "kick(3,8)"
_jumpIn' :: Int -> Time -> [ControlPattern] -> ControlPattern Source #
_jumpMod :: Int -> Time -> [ControlPattern] -> ControlPattern Source #
Sharp jump
transition at next cycle boundary where cycle mod n == 0
_jumpMod' :: Int -> Int -> Time -> [ControlPattern] -> ControlPattern Source #
Sharp jump
transition at next cycle boundary where cycle mod n == p
_mortal :: Time -> Time -> Time -> [ControlPattern] -> ControlPattern Source #
Degrade the new pattern over time until it ends in silence
_interpolate :: Time -> [ControlPattern] -> ControlPattern Source #
_interpolateIn :: Time -> Time -> [ControlPattern] -> ControlPattern Source #
_clutch :: Time -> [Pattern a] -> Pattern a Source #
Degrades the current pattern while undegrading the next.
This is like xfade
but not by gain of samples but by randomly removing events from the current pattern and slowly adding back in missing events from the next one.
d1 $ sound "bd(3,8)" t1 clutch $ sound "[hh*4, odx(3,8)]"
clutch
takes two cycles for the transition, essentially this is clutchIn 2
.
_clutchIn :: Time -> Time -> [Pattern a] -> Pattern a Source #
Also degrades the current pattern and undegrades the next.
To change the number of cycles the transition takes, you can use clutchIn
like so:
d1 $ sound "bd(5,8)" t1 (clutchIn 8) $ sound "[hh*4, odx(3,8)]"
will take 8 cycles for the transition.
_anticipateIn :: Time -> Time -> [ControlPattern] -> ControlPattern Source #
same as anticipate
though it allows you to specify the number of cycles until dropping to the new pattern, e.g.:
d1 $ sound "jvbass(3,8)" t1 (anticipateIn 4) $ sound "jvbass(5,8)"
_anticipate :: Time -> [ControlPattern] -> ControlPattern Source #
anticipate
is an increasing comb filter.
Build up some tension, culminating in a _drop_ to the new pattern after 8 cycles.
wash :: (Pattern a -> Pattern a) -> (Pattern a -> Pattern a) -> Time -> Time -> Time -> Time -> [Pattern a] -> Pattern a Source #
xfadeIn :: Time -> Time -> [ControlPattern] -> ControlPattern Source #
histpan :: Int -> Time -> [ControlPattern] -> ControlPattern Source #
wait :: Time -> Time -> [ControlPattern] -> ControlPattern Source #
waitT :: (Time -> [ControlPattern] -> ControlPattern) -> Time -> Time -> [ControlPattern] -> ControlPattern Source #
jump :: Time -> [ControlPattern] -> ControlPattern Source #
jumpIn :: Int -> Time -> [ControlPattern] -> ControlPattern Source #
jumpIn' :: Int -> Time -> [ControlPattern] -> ControlPattern Source #
jumpMod :: Int -> Time -> [ControlPattern] -> ControlPattern Source #
jumpMod' :: Int -> Int -> Time -> [ControlPattern] -> ControlPattern Source #
mortal :: Time -> Time -> Time -> [ControlPattern] -> ControlPattern Source #
interpolate :: Time -> [ControlPattern] -> ControlPattern Source #
interpolateIn :: Time -> Time -> [ControlPattern] -> ControlPattern Source #
anticipateIn :: Time -> Time -> [ControlPattern] -> ControlPattern Source #
anticipate :: Time -> [ControlPattern] -> ControlPattern Source #