- mix :: (C y, C y, C y yv, C v, Arrow arrow) => T arrow (DNS v y yv, DNS v y yv) (DNS v y yv)
- mixVolume :: (C y, C y yv, C v, Arrow arrow) => T v y -> T arrow (DNS v y yv, DNS v y yv) (DNS v y yv)
- fanoutAndMixMulti :: (C y, C y yv, C v, Arrow arrow) => [T arrow sample (DNS v y yv)] -> T arrow sample (DNS v y yv)
- fanoutAndMixMultiVolume :: (C y, C y yv, C v, Arrow arrow) => T v y -> [T arrow sample (DNS v y yv)] -> T arrow sample (DNS v y yv)
- raise :: (C y, C y yv, C v, Arrow arrow) => T v y -> yv -> T arrow (DNS v y yv) (DNS v y yv)
- distort :: (C y, C y yv, C v, Arrow arrow) => (yv -> yv) -> T arrow (DNS v y y, DNS v y yv) (DNS v y yv)
Documentation
mix :: (C y, C y, C y yv, C v, Arrow arrow) => T arrow (DNS v y yv, DNS v y yv) (DNS v y yv)Source
Mix two signals.
In contrast to zipWith
the result has the length of the longer signal.
mixVolume :: (C y, C y yv, C v, Arrow arrow) => T v y -> T arrow (DNS v y yv, DNS v y yv) (DNS v y yv)Source
fanoutAndMixMulti :: (C y, C y yv, C v, Arrow arrow) => [T arrow sample (DNS v y yv)] -> T arrow sample (DNS v y yv)Source
Mix one or more signals.
fanoutAndMixMultiVolume :: (C y, C y yv, C v, Arrow arrow) => T v y -> [T arrow sample (DNS v y yv)] -> T arrow sample (DNS v y yv)Source
Mix zero or more signals.
raise :: (C y, C y yv, C v, Arrow arrow) => T v y -> yv -> T arrow (DNS v y yv) (DNS v y yv)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, Arrow arrow) => (yv -> yv) -> T arrow (DNS v y y, DNS v y yv) (DNS 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 emitted.
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.