temporal-media-0.1.1: data types for temporal media

Temporal.Media.Double

Contents

Description

Special case of Temporal.Media. Time is Double

Synopsis

Time classes

none :: Temporal Dur a => Dur -> aSource

dur :: Temporal Dur a => a -> DurSource

stretch :: Stretchable Dur a => Dur -> a -> aSource

class ToMaybe m whereSource

Values covertible to Maybe

auxiliary class for conversion to EventList

Methods

toMaybe :: m a -> Maybe aSource

Instances

Dur t => ToMaybe (Unit t) 

tmap :: TemporalFunctor Dur f => (Time -> a -> b) -> f a -> f bSource

dmap :: TemporalFunctor Dur f => (Dur -> a -> b) -> f a -> f bSource

tdmap :: TemporalFunctor Dur f => (Time -> Dur -> a -> b) -> f a -> f bSource

sustain :: Sustainable Dur f => Dur -> f a -> f aSource

sustainBy :: Sustainable Dur f => (Dur -> Dur -> a -> (b, Dur)) -> f a -> f bSource

tstretch :: TemporalStretchable Dur a => (Time -> Dur) -> a -> aSource

temporal stretch

Transformers

class Reversible a whereSource

Methods

reverse :: a -> aSource

Instances

Dur t => Reversible (Unit t a) 
Reversible a => Reversible (Media c a) 
Dur t => Reversible (MediaUnit t c a) 

slice :: Sliceable Dur a => Dur -> Dur -> a -> aSource

take :: Sliceable Dur a => Dur -> a -> aSource

drop :: Sliceable Dur a => Dur -> a -> aSource

cut :: (Reversible a, Sliceable Dur a) => Dur -> Dur -> a -> aSource

Structure

class Construct m whereSource

constructor for generic structures

Methods

prim :: a -> m aSource

Instances

Dur t => Construct (Unit t) 
Dur t => Construct (EventList t) 
Construct (Media c) 
Dur t => Construct (MediaUnit t c) 

class Arrangeable a whereSource

composing structures in sequent and parallel ways

Methods

(+:+) :: a -> a -> aSource

(=:=) :: a -> a -> aSource

Instances

class Controlable c a whereSource

modifer

Methods

control :: c -> a -> aSource

Instances

Dur t => Controlable () (EventList t a) 
Controlable c (Media c a) 
Dur t => Controlable c (MediaUnit t c a) 

sequent :: Arrangeable a => [a] -> aSource

parallel :: Arrangeable a => [a] -> aSource

loop :: Arrangeable a => Int -> a -> aSource

delay :: (Temporal Dur a, Arrangeable a) => Dur -> a -> aSource

temp :: (Construct m, Temporal Dur (m a), Stretchable Dur (m a)) => Dur -> a -> m aSource

Media

data Media c a Source

Data type to represent temporal media

Constructors

Prim a

single value

(Media c a) :+: (Media c a)

sequential composition

(Media c a) :=: (Media c a)

parallel composition

Control c (Media c a)

specific environment modifier

Instances

Controlable c (Media c a) 
Sliceable t a => Sliceable t (Media c a) 
Stretchable t a => TemporalStretchable t (Media c a) 
Stretchable t a => Stretchable t (Media c a) 
Temporal t a => Temporal t (Media c a) 
Monad (Media c) 
Functor (Media c) 
Applicative (Media c) 
Construct (Media c) 
(Eq c, Eq a) => Eq (Media c a) 
(Show c, Show a) => Show (Media c a) 
Arrangeable (Media c a) 
Reversible a => Reversible (Media c a) 

fold :: (a -> b) -> (b -> b -> b) -> (b -> b -> b) -> (c -> b -> b) -> Media c a -> bSource

Folding Media

 fold prim seq par mod x
  • prim - responds to Prim
  • seq - responds to :+:
  • par - responds to :=:
  • mod - responds to Control

fromMedia :: Arrangeable b => (a -> b) -> (c -> b -> b) -> Media c a -> bSource

Media interpretation

given two functions (to convert elementary value (a -> b), and to convert modifiers (c -> b -> b)) fromMedia interprets Media structure

Simple interperetation

Event list

type Event a = Event Dur aSource

mapEvent :: (a -> b) -> Event a -> Event bSource

toEvent :: (Temporal Dur (m a), ToMaybe m) => m a -> EventList aSource

toEventList :: (Temporal Dur (m a), ToMaybe m) => (c -> EventList a -> EventList a) -> Media c (m a) -> EventList aSource

Unit Media

foldU :: (Dur -> a -> b) -> (b -> b -> b) -> (b -> b -> b) -> (c -> b -> b) -> MediaUnit c a -> Maybe bSource

type Unit a = Unit Dur aSource

Misc

tmapRel :: (Temporal Dur (f a), TemporalFunctor Dur f) => (Time -> a -> b) -> f a -> f bSource

dmapRel :: (Temporal Dur (f a), TemporalFunctor Dur f) => (Dur -> a -> b) -> f a -> f bSource

tdmapRel :: (Temporal Dur (f a), TemporalFunctor Dur f) => (Time -> Dur -> a -> b) -> f a -> f bSource

tstretchRel :: TemporalStretchable Dur a => (Time -> Dur) -> a -> aSource

linseg :: (Ord t, Fractional t) => [t] -> t -> tSource

linear interpolation

linseg [a, da, b, db, c, ... ]

a, b, c ... - values

da, db, ... - duration of segments