{-# LANGUAGE NoImplicitPrelude #-} module Synthesizer.Physical.Noise where import qualified Synthesizer.SampleRateContext.Noise as NoiseC -- import qualified Synthesizer.SampleRateContext.Signal as SigC import qualified Synthesizer.Physical.Signal as SigP import System.Random (Random) import qualified Algebra.Algebraic as Algebraic import qualified Algebra.Ring as Ring -- import PreludeBase -- import NumericPrelude {- * Noise -} white :: (Ring.C yv, Random yv, Algebraic.C q') => q' {-^ sample rate -} -> q' {-^ width of the frequency band -} -> q' {-^ volume caused by the given frequency band -} -> SigP.T t q' y q' yv {-^ noise -} white sampleRate bandWidth volume = SigP.lift0 (NoiseC.white bandWidth volume) sampleRate