synthesizer-dimensional-0.8.1.1: Audio signal processing with static physical dimensions
Copyright(c) Henning Thielemann 2008-2009
LicenseGPL
Maintainersynthesizer@henning-thielemann.de
Stabilityprovisional
Portabilityrequires multi-parameter type classes
Safe HaskellSafe-Inferred
LanguageHaskell2010

Synthesizer.Dimensional.RateAmplitude.Displacement

Description

 
Synopsis
  • 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.

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) Source #

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.

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) Source #

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.