-- | Track peak signal amplitude.
module Sound.SC3.UGen.Record.PeakFollower where
import qualified Sound.SC3.UGen as S
import Sound.SC3.UGen.Record
data PeakFollower = PeakFollower {
  rate :: S.Rate,
  input :: S.UGen,
  decay :: S.UGen
  } deriving (Show)
peakFollower :: PeakFollower
peakFollower = PeakFollower {
  rate = S.AR,
  input = 0.0,
  decay = 0.999
  }
mkPeakFollower :: PeakFollower -> S.UGen
mkPeakFollower (PeakFollower r a' b') = S.mkOsc r "PeakFollower" [a',b'] 1
instance Make PeakFollower where
  ugen = mkPeakFollower