-- | When input falls below a threshhold, evaluate doneAction.
module Sound.SC3.UGen.Record.DetectSilence where
import qualified Sound.SC3.UGen as S
import Sound.SC3.UGen.Record
data DetectSilence = DetectSilence {
  rate :: S.Rate,
  input :: S.UGen,
  amp :: S.UGen,
  time :: S.UGen,
  doneAction :: S.UGen
  } deriving (Show)
detectSilence :: DetectSilence
detectSilence = DetectSilence {
  rate = S.AR,
  input = 0.0,
  amp = 0.0001,
  time = 0.1,
  doneAction = 0.0
  }
mkDetectSilence :: DetectSilence -> S.UGen
mkDetectSilence (DetectSilence r a' b' c' d') = S.mkOsc r "DetectSilence" [a',b',c',d'] 1
instance Make DetectSilence where
  ugen = mkDetectSilence