module Synthesizer.Inference.Reader.Noise
(white,
whiteGen,
randomPeeks) where
import qualified Synthesizer.SampleRateContext.Noise as NoiseC
import qualified Synthesizer.Inference.Reader.Signal as SigR
import qualified Synthesizer.Inference.Reader.Process as Proc
import qualified Algebra.OccasionallyScalar as OccScalar
import qualified Algebra.Algebraic as Algebraic
import qualified Algebra.Field as Field
import qualified Algebra.Ring as Ring
import System.Random (Random, RandomGen)
import PreludeBase as P
white :: (Ring.C yv, Random yv, Algebraic.C q') =>
q'
-> q'
-> Proc.T t q' (SigR.T y q' yv)
white bandWidth volume = SigR.lift $ NoiseC.white bandWidth volume
whiteGen :: (Ring.C yv, Random yv, RandomGen g, Algebraic.C q') =>
g
-> q'
-> q'
-> Proc.T t q' (SigR.T y q' yv)
whiteGen gen bandWidth volume = SigR.lift (NoiseC.whiteGen gen bandWidth volume)
randomPeeks ::
(Field.C q, Random q, Ord q,
Field.C q', OccScalar.C q q') =>
Proc.T q q'
( SigR.T q q' q
-> [Bool])
randomPeeks = SigR.lift NoiseC.randomPeeks