synthesizer-0.2.0.1: Audio signal processing coded in HaskellSource codeContentsIndex
Synthesizer.Interpolation.Module
Description
Special interpolations defined in terms of Module operations.
Synopsis
data 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
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
Documentation
data T t y Source
interpolation as needed for resampling
constant :: T t ySource
Consider the signal to be piecewise constant.
linear :: C t y => T t ySource
Consider the signal to be piecewise linear.
cubic :: (C t, C t y) => T t ySource
Consider the signal to be piecewise cubic, with smooth connections at the nodes. It uses a cubic curve which has node values x0 at 0 and x1 at 1 and derivatives (x1-xm1)2 and (x2-x0)2, respectively. You can see how it works if you evaluate the expression for t=0 and t=1 as well as the derivative at these points.
cubicAlt :: (C t, C t y) => T t ySource
The interpolators for module operations do not simply compute a straight linear combination of some vectors. Instead they add then scale, then add again, and so on. This is efficient whenever scaling and addition is cheap. In this case they might save multiplications. I can't say much about numeric cancellations, however.
piecewise :: C t y => Int -> [t -> t] -> T t ySource
piecewiseConstant :: C t y => T t ySource
piecewiseLinear :: C t y => T t ySource
piecewiseCubic :: (C t, C t y) => T t ySource
functionSource
:: C t y
=> (Int, Int)(left extent, right extent), e.g. (1,1) for linear hat
-> t -> t
-> T t y
with this wrapper you can use the collection of interpolating functions from Donadio's DSP library
Produced by Haddock version 2.4.2