-- | A Karplus-Strong UGen
module Sound.SC3.UGen.Record.Pluck where
import qualified Sound.SC3.UGen as S
import Sound.SC3.UGen.Record
data Pluck = Pluck {
  input :: S.UGen,
  trig :: S.UGen,
  maxdelaytime :: S.UGen,
  delaytime :: S.UGen,
  decaytime :: S.UGen,
  coef :: S.UGen
  } deriving (Show)
pluck :: Pluck
pluck = Pluck {
  input = 0.0,
  trig = 1.0,
  maxdelaytime = 0.2,
  delaytime = 0.2,
  decaytime = 1.0,
  coef = 0.5
  }
mkPluck :: Pluck -> S.UGen
mkPluck (Pluck  a' b' c' d' e' f') = S.mkOsc S.AR "Pluck" [a',b',c',d',e',f'] 1
instance Make Pluck where
  ugen = mkPluck