-- | The Vibrato oscillator models a slow frequency modulation.
module Sound.SC3.UGen.Record.Vibrato where
import qualified Sound.SC3.UGen as S
import Sound.SC3.UGen.Record
data Vibrato = Vibrato {
  rate :: S.Rate,
  freq :: S.UGen,
  rate_ :: S.UGen,
  depth :: S.UGen,
  delay :: S.UGen,
  onset :: S.UGen,
  rateVariation :: S.UGen,
  depthVariation :: S.UGen,
  iphase :: S.UGen
  } deriving (Show)
vibrato :: Vibrato
vibrato = Vibrato {
  rate = S.AR,
  freq = 440.0,
  rate_ = 6.0,
  depth = 0.02,
  delay = 0.0,
  onset = 0.0,
  rateVariation = 0.04,
  depthVariation = 0.1,
  iphase = 0.0
  }
mkVibrato :: Vibrato -> S.UGen
mkVibrato (Vibrato r a' b' c' d' e' f' g' h') = S.mkOsc r "Vibrato" [a',b',c',d',e',f',g',h'] 1
instance Make Vibrato where
  ugen = mkVibrato