Synthesizer.Causal.ToneModulation
Synopsis
 interpolateCell :: Read sig y => T a y -> T b y -> (a, b) -> Cell sig y -> y seekCell :: (C t, Transform sig y) => Int -> t -> ((t, T t), sig y) -> ((t, t), Cell sig y) oscillatorCells :: (C t, Transform sig y) => Margin -> Margin -> Int -> t -> sig y -> (t, T t) -> T (t, t) ((t, t), Cell sig y) oscillatorSuffixes :: (C t, Transform sig y) => Margin -> Margin -> Int -> t -> sig y -> (t, T t) -> T (t, t) ((t, T t), sig y) integrateFractional :: C t => t -> (t, T t) -> (Skip t, T (t, t) (Skip t)) integrateFractionalClip :: C t => t -> (t, T t) -> T (t, t) (Skip t) limitRelativeShapes :: (C t, Ord t) => Margin -> Margin -> Int -> t -> (t, T t t) limitMinRelativeValues :: (C t, Ord t) => t -> t -> (t, T t t)
Documentation
 interpolateCell :: Read sig y => T a y -> T b y -> (a, b) -> Cell sig y -> y Source
 seekCell :: (C t, Transform sig y) => Int -> t -> ((t, T t), sig y) -> ((t, t), Cell sig y) Source
 oscillatorCells :: (C t, Transform sig y) => Margin -> Margin -> Int -> t -> sig y -> (t, T t) -> T (t, t) ((t, t), Cell sig y) Source
 oscillatorSuffixes :: (C t, Transform sig y) => Margin -> Margin -> Int -> t -> sig y -> (t, T t) -> T (t, t) ((t, T t), sig y) Source
In contrast to the counterpart of this function for plain lists, it does not use sophisticated list transposition tricks, but seeks through the prototype signal using drop. Since drop is used in an inner loop, it must be fast. This is true for StorableVectors.
 integrateFractional :: C t => t -> (t, T t) -> (Skip t, T (t, t) (Skip t)) Source
 integrateFractionalClip :: C t => t -> (t, T t) -> T (t, t) (Skip t) Source
Delays output by one element and shorten it by one element at the end.
 limitRelativeShapes :: (C t, Ord t) => Margin -> Margin -> Int -> t -> (t, T t t) Source
 limitMinRelativeValues :: (C t, Ord t) => t -> t -> (t, T t t) Source