Copyright | (c) Henning Thielemann 2008 |
---|---|
License | GPL |
Maintainer | synthesizer@henning-thielemann.de |
Stability | provisional |
Portability | requires multi-parameter type classes |
Safe Haskell | None |
Language | Haskell2010 |
- constant :: a -> T a
- line :: C y => Int -> (y, y) -> T y
- linear :: C a => a -> a -> T a
- linearMultiscale :: C y => y -> y -> T y
- linearMultiscaleNeutral :: C y => y -> T y
- exponential :: C a => a -> a -> T a
- exponentialMultiscale :: C a => a -> a -> T a
- exponentialMultiscaleNeutral :: C y => y -> T y
- exponential2 :: C a => a -> a -> T a
- exponential2Multiscale :: C a => a -> a -> T a
- exponential2MultiscaleNeutral :: C y => y -> T y
- exponentialFromTo :: C y => y -> y -> y -> T y
- exponentialFromToMultiscale :: C y => y -> y -> y -> T y
- vectorExponential :: (C a, C a v) => a -> v -> T v
- vectorExponential2 :: (C a, C a v) => a -> v -> T v
- cosine :: C a => a -> a -> T a
- cubicHermite :: C a => (a, (a, a)) -> (a, (a, a)) -> T a
- curveMultiscale :: (y -> y -> y) -> y -> y -> T y
- curveMultiscaleNeutral :: (y -> y -> y) -> y -> y -> T y
Documentation
Linear curve of a fixed length. The final value is not actually reached, instead we stop one step before. This way we can concatenate several lines without duplicate adjacent values.
linearMultiscale :: C y => y -> y -> T y Source #
As stable as the addition of time values.
linearMultiscaleNeutral :: C y => y -> T y Source #
Linear curve starting at zero.
:: (C a, C a v) | |
=> a | time where the function reaches 1/e of the initial value |
-> v | initial value |
-> T v | exponential decay |
This is an extension of exponential
to vectors
which is straight-forward but requires more explicit signatures.
But since it is needed rarely I setup a separate function.
cubicHermite :: C a => (a, (a, a)) -> (a, (a, a)) -> T a Source #
curveMultiscale :: (y -> y -> y) -> y -> y -> T y Source #
curveMultiscaleNeutral :: (y -> y -> y) -> y -> y -> T y Source #