-- | Variable wavetable oscillator.
module Sound.SC3.UGen.Record.VOsc where
import qualified Sound.SC3.UGen as S
import Sound.SC3.UGen.Record
data VOsc = VOsc {
  rate :: S.Rate,
  bufpos :: S.UGen,
  freq :: S.UGen,
  phase :: S.UGen
  } deriving (Show)
vOsc :: VOsc
vOsc = VOsc {
  rate = S.AR,
  bufpos = 0.0,
  freq = 440.0,
  phase = 0.0
  }
mkVOsc :: VOsc -> S.UGen
mkVOsc (VOsc r a' b' c') = S.mkOsc r "VOsc" [a',b',c'] 1
instance Make VOsc where
  ugen = mkVOsc