module Synthesizer.Dimensional.RateAmplitude.Displacement (
mix, mixVolume,
mixMulti, mixMultiVolume,
raise, distort,
) where
import qualified Synthesizer.Dimensional.Amplitude.Displacement as DispV
import qualified Synthesizer.Dimensional.RateAmplitude.Signal as SigA
import qualified Synthesizer.Dimensional.Process as Proc
import qualified Number.DimensionTerm as DN
import qualified Algebra.DimensionTerm as Dim
import qualified Algebra.Module as Module
import qualified Algebra.Field as Field
import qualified Algebra.Real as Real
import PreludeBase
import Prelude ()
mix :: (Real.C y, Field.C y, Module.C y yv, Dim.C v) =>
Proc.T s u t (
SigA.R s v y yv
-> SigA.R s v y yv
-> SigA.R s v y yv)
mix = Proc.pure DispV.mix
mixVolume ::
(Real.C y, Field.C y, Module.C y yv, Dim.C v) =>
DN.T v y
-> Proc.T s u t (
SigA.R s v y yv
-> SigA.R s v y yv
-> SigA.R s v y yv)
mixVolume v = Proc.pure $ DispV.mixVolume v
mixMulti ::
(Real.C y, Field.C y, Module.C y yv, Dim.C v) =>
Proc.T s u t (
[SigA.R s v y yv]
-> SigA.R s v y yv)
mixMulti = Proc.pure DispV.mixMulti
mixMultiVolume ::
(Real.C y, Field.C y, Module.C y yv, Dim.C v) =>
DN.T v y
-> Proc.T s u t (
[SigA.R s v y yv]
-> SigA.R s v y yv)
mixMultiVolume v = Proc.pure $ DispV.mixMultiVolume v
raise :: (Field.C y, Module.C y yv, Dim.C v) =>
DN.T v y
-> yv
-> Proc.T s u t (
SigA.R s v y yv
-> SigA.R s v y yv)
raise y' yv = Proc.pure $ DispV.raise y' yv
distort :: (Field.C y, Module.C y yv, Dim.C v) =>
(yv -> yv)
-> Proc.T s u t (
SigA.R s v y y
-> SigA.R s v y yv
-> SigA.R s v y yv)
distort f = Proc.pure $ DispV.distort f