module Synthesizer.SampleRateContext.Displacement (
mix, mixVolume,
mixMulti, mixMultiVolume,
raise,
) where
import qualified Synthesizer.Amplitude.Displacement as MiscV
import qualified Synthesizer.SampleRateContext.Signal as SigC
import qualified Synthesizer.SampleRateContext.Rate as Rate
import qualified Algebra.OccasionallyScalar as OccScalar
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, OccScalar.C y y') =>
Rate.T t t'
-> SigC.T y y' yv
-> SigC.T y y' yv
-> SigC.T y y' yv
mix = Rate.pure MiscV.mix
mixVolume ::
(Real.C y', Field.C y', Module.C y yv, OccScalar.C y y') =>
y'
-> Rate.T t t'
-> SigC.T y y' yv
-> SigC.T y y' yv
-> SigC.T y y' yv
mixVolume v = Rate.pure $ MiscV.mixVolume v
mixMulti ::
(Real.C y', Field.C y', Module.C y yv, OccScalar.C y y') =>
Rate.T t t'
-> [SigC.T y y' yv]
-> SigC.T y y' yv
mixMulti = Rate.pure MiscV.mixMulti
mixMultiVolume ::
(Real.C y', Field.C y', Module.C y yv, OccScalar.C y y') =>
y'
-> Rate.T t t'
-> [SigC.T y y' yv]
-> SigC.T y y' yv
mixMultiVolume v = Rate.pure $ MiscV.mixMultiVolume v
raise :: (Field.C y', Module.C y yv, OccScalar.C y y') =>
y'
-> yv
-> Rate.T t t'
-> SigC.T y y' yv
-> SigC.T y y' yv
raise y' yv = Rate.pure $ MiscV.raise y' yv