Synthesizer.State.Interpolation
 Contents Interpolation with various padding methods Helper methods for interpolation of multiple nodes Different kinds of interpolation Hard-wired interpolations Interpolation based on piecewise defined functions Interpolation based on arbitrary functions Helper functions
Description
ToDo: use AffineSpace instead of Module for the particular interpolation types, since affine combinations assert reconstruction of constant functions. They are more natural for interpolation of internal control parameters. However, how can cubic interpolation expressed by affine combinations without divisions?
Synopsis
data T t y = Cons {
 number :: Int offset :: Int func :: t -> T y -> y
}
toGeneric :: (C y, C sig) => T t y -> T sig t y
zeroPad :: C t => (T t y -> t -> T y -> a) -> y -> T t y -> t -> T y -> a
constantPad :: C t => (T t y -> t -> T y -> a) -> T t y -> t -> T y -> a
cyclicPad :: C t => (T t y -> t -> T y -> a) -> T t y -> t -> T y -> a
extrapolationPad :: C t => (T t y -> t -> T y -> a) -> T t y -> t -> T y -> a
skip :: C t => T t y -> (t, T y) -> (t, T y)
single :: C t => T t y -> t -> T y -> y
data PrefixReader y a = PrefixReader Int (StateT (T y) Maybe a)
getNode :: PrefixReader y y
fromPrefixReader :: String -> Int -> PrefixReader y (t -> y) -> T t y
constant :: T t y
linear :: C t y => T t y
cubic :: (C t, C t y) => T t y
cubicAlt :: (C t, C t y) => T t y
cubicHalf :: C t y => t -> y -> y -> y
piecewise :: C t y => Int -> [t -> t] -> T t y
piecewiseConstant :: C t y => T t y
piecewiseLinear :: C t y => T t y
piecewiseCubic :: (C t, C t y) => T t y
function :: C t y => (Int, Int) -> (t -> t) -> T t y
delayPad :: y -> Int -> T y -> T y
Documentation
 data T t y Source
interpolation as needed for resampling
Constructors
Cons
 number :: Int offset :: Int func :: t -> T y -> y
 toGeneric :: (C y, C sig) => T t y -> T sig t y Source
Interpolation with various padding methods
 zeroPad :: C t => (T t y -> t -> T y -> a) -> y -> T t y -> t -> T y -> a Source
 constantPad :: C t => (T t y -> t -> T y -> a) -> T t y -> t -> T y -> a Source
 cyclicPad :: C t => (T t y -> t -> T y -> a) -> T t y -> t -> T y -> a Source
 extrapolationPad :: C t => (T t y -> t -> T y -> a) -> T t y -> t -> T y -> a Source
Helper methods for interpolation of multiple nodes
 skip :: C t => T t y -> (t, T y) -> (t, T y) Source
 single :: C t => T t y -> t -> T y -> y Source
Different kinds of interpolation
Hard-wired interpolations
 data PrefixReader y a Source
Constructors
 PrefixReader Int (StateT (T y) Maybe a)
Instances
 getNode :: PrefixReader y y Source
 fromPrefixReader :: String -> Int -> PrefixReader y (t -> y) -> T t y Source
 constant :: T t y Source
 linear :: C t y => T t y Source
 cubic :: (C t, C t y) => T t y Source
 cubicAlt :: (C t, C t y) => T t y Source
 cubicHalf :: C t y => t -> y -> y -> y Source
Interpolation based on piecewise defined functions
 piecewise :: C t y => Int -> [t -> t] -> T t y Source
 piecewiseConstant :: C t y => T t y Source
 piecewiseLinear :: C t y => T t y Source
 piecewiseCubic :: (C t, C t y) => T t y Source
Interpolation based on arbitrary functions
 function Source
 :: C t y => (Int, Int) (left extent, right extent), e.g. (1,1) for linear hat -> t -> t -> T t y
Helper functions
 delayPad :: y -> Int -> T y -> T y Source
Produced by Haddock version 2.3.0