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

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 FieldscomputePiece :: y -> y -> t -> sig

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 FieldspieceType :: Piece t y sig pieceY0 :: y pieceY1 :: y pieceDur :: t

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 #

Constructors

 FlatLeft FlatRight

Instances

 Source # Methods Source # Methods Source # Methods Source # MethodsshowList :: [FlatPosition] -> ShowS # Source # Methodsrange :: (FlatPosition, FlatPosition) -> [FlatPosition] #

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