tidal-0.4.6: Pattern language for improvised music

Safe Haskell Safe-Inferred

Sound.Tidal.Time

Synopsis

# Documentation

type Time = RationalSource

Time is represented by a rational number. Each natural number represents both the start of the next rhythmic cycle, and the end of the previous one. Rational numbers are used so that subdivisions of each cycle can be accurately represented.

type Arc = (Time, Time)Source

`(s,e) :: Arc` represents a time interval with a start and end value. ` { t : s <= t && t < e } `

type Event a = (Arc, Arc, a)Source

An Event is a value that occurs during the period given by the first `Arc`. The second one indicates the event's domain of influence. These will often be the same, but many temporal transformations, such as rotation and scaling time, may resuqlt in arcs being split or truncated. In such cases, the first arc is preserved, but the second arc reflects the portion of the event which is relevant.

The starting point of the current cycle. A cycle occurs from each natural number to the next, so this is equivalent to `floor`.

The end point of the current cycle (and starting point of the next cycle)

The position of a time value relative to the start of its cycle.

isIn :: Arc -> Time -> BoolSource

`isIn a t` is `True` iff `t` is inside the arc represented by `a`.

arcCycles :: Arc -> [Arc]Source

Splits the given `Arc` into a list of `Arc`s, at cycle boundaries.

`subArc i j` is the arc that is the intersection of `i` and `j`.

mapArc :: (Time -> Time) -> Arc -> ArcSource

Map the given function over both the start and end `Time` values of the given `Arc`.

Returns the `mirror image' of an `Arc`, used by `Sound.Tidal.Pattern.rev`.

The start time of the given `Event`

The start time of the given `Event`

The midpoint of an `Arc`