synthesizer-core-0.8.1.2: Audio signal processing coded in Haskell: Low level part

Safe HaskellNone
LanguageHaskell2010

Synthesizer.Piecewise

Description

Construction of a data type that describes piecewise defined curves.

Synopsis

Documentation

type T t y sig = [PieceData t y sig] Source #

newtype Piece t y sig Source #

The curve type of a piece of a piecewise defined control curve.

Constructors

Piece 

Fields

pieceFromFunction :: (y -> y -> t -> sig) -> Piece t y sig Source #

data PieceData t y sig Source #

The full description of a control curve piece.

Constructors

PieceData 

Fields

newtype PieceRightSingle y Source #

Constructors

PRS y 

newtype PieceRightDouble y Source #

Constructors

PRD y 

data PieceDist t y sig Source #

Constructors

PD t (Piece t y sig) y 

(#|-) :: (t, Piece t y sig) -> (PieceRightSingle y, T t y sig) -> (PieceDist t y sig, T t y sig) infixr 5 Source #

The 6 operators simplify constructing a list of PieceData a. The description consists of nodes (namely the curve values at nodes) and the connecting curve types. The naming scheme is as follows: In the middle there is a bar |. With respect to the bar, the pad symbol # is at the side of the curve type, at the other side there is nothing, a minus sign -, or an equality sign =.

  1. Nothing means that here is the start or the end node of a curve.
  2. Minus means that here is a node where left and right curve meet at the same value. The node description is thus one value.
  3. Equality sign means that here is a split node, where left and right curve might have different ending and beginning values, respectively. The node description consists of a pair of values.

(-|#) :: y -> (PieceDist t y sig, T t y sig) -> (PieceRightSingle y, T t y sig) infixr 5 Source #

(#|=) :: (t, Piece t y sig) -> (PieceRightDouble y, T t y sig) -> (PieceDist t y sig, T t y sig) infixr 5 Source #

(=|#) :: (y, y) -> (PieceDist t y sig, T t y sig) -> (PieceRightDouble y, T t y sig) infixr 5 Source #

(#|) :: (t, Piece t y sig) -> y -> (PieceDist t y sig, T t y sig) infixr 5 Source #

(|#) :: y -> (PieceDist t y sig, T t y sig) -> T t y sig infixr 5 Source #

data FlatPosition Source #

Constructors

FlatLeft 
FlatRight 

splitDurations :: C t => [t] -> [(Int, t)] Source #