Copyright | (c) Henning Thielemann 2008-2009 |
---|---|
License | GPL |
Maintainer | synthesizer@henning-thielemann.de |
Stability | provisional |
Portability | requires multi-parameter type classes |
Safe Haskell | None |
Language | Haskell2010 |
- mix :: (C y, C y, C y yv, C v) => T s u t (R s v y yv -> R s v y yv -> R s v y yv)
- mixVolume :: (C y, C y, C y yv, C v) => T v y -> T s u t (R s v y yv -> R s v y yv -> R s v y yv)
- mixMulti :: (C y, C y, C y yv, C v) => T s u t ([R s v y yv] -> R s v y yv)
- mixMultiVolume :: (C y, C y, C y yv, C v) => T v y -> T s u t ([R s v y yv] -> R s v y yv)
- raise :: (C y, C v) => T v y -> T s u t (R s v y y -> R s v y y)
- raiseVector :: (C y, C y yv, C v) => T v y -> yv -> T s u t (R s v y yv -> R s v y yv)
- distort :: (C y, C y yv, C v) => (yv -> yv) -> T s u t (R s v y y -> R s v y yv -> R s v y yv)
Documentation
mix :: (C y, C y, C y yv, C v) => T s u t (R s v y yv -> R s v y yv -> R s v y yv) Source #
Mix two signals.
In opposition to zipWith
the result has the length of the longer signal.
mixVolume :: (C y, C y, C y yv, C v) => T v y -> T s u t (R s v y yv -> R s v y yv -> R s v y yv) Source #
mixMulti :: (C y, C y, C y yv, C v) => T s u t ([R s v y yv] -> R s v y yv) Source #
Mix one or more signals.
raise :: (C y, C v) => T v y -> T s u t (R s v y y -> R s v y y) Source #
Add a number to all of the signal values. This is useful for adjusting the center of a modulation.
distort :: (C y, C y yv, C v) => (yv -> yv) -> T s u t (R s v y y -> R s v y yv -> R s v y yv) Source #
Distort the signal using a flat function.
The first signal gives the scaling of the function.
If the scaling is c and the input sample is y,
then c * f(y/c)
is output.
This way we can use an (efficient) flat function
and have a simple, yet dimension conform, way of controlling the distortion.
E.g. if the distortion function is tanh
then the value c
controls the saturation level.