-- | lorenz 2D chaotic generator
module Sound.SC3.UGen.Record.Lorenz2DC where
import qualified Sound.SC3.UGen as S
import Sound.SC3.UGen.Record
data Lorenz2DC = Lorenz2DC {
  rate :: S.Rate,
  minfreq :: S.UGen,
  maxfreq :: S.UGen,
  s :: S.UGen,
  r :: S.UGen,
  b :: S.UGen,
  h :: S.UGen,
  x0 :: S.UGen,
  y0 :: S.UGen,
  z0 :: S.UGen
  } deriving (Show)
lorenz2DC :: Lorenz2DC
lorenz2DC = Lorenz2DC {
  rate = S.AR,
  minfreq = 11025.0,
  maxfreq = 22050.0,
  s = 10.0,
  r = 28.0,
  b = 2.6666667,
  h = 0.02,
  x0 = 0.090879182417163,
  y0 = 2.97077458055,
  z0 = 24.282041054363
  }
mkLorenz2DC :: Lorenz2DC -> S.UGen
mkLorenz2DC (Lorenz2DC r a' b' c' d' e' f' g' h' i') = S.mkOsc r "Lorenz2DC" [a',b',c',d',e',f',g',h',i'] 1
instance Make Lorenz2DC where
  ugen = mkLorenz2DC