-- | Map a linear range to an exponential range
module Sound.SC3.UGen.Record.LinExp where
import qualified Sound.SC3.UGen as S
import Sound.SC3.UGen.Record
data LinExp = LinExp {
  rate :: S.Rate,
  input :: S.UGen,
  srclo :: S.UGen,
  srchi :: S.UGen,
  dstlo :: S.UGen,
  dsthi :: S.UGen
  } deriving (Show)
linExp :: LinExp
linExp = LinExp {
  rate = S.AR,
  input = 0.0,
  srclo = 0.0,
  srchi = 1.0,
  dstlo = 1.0,
  dsthi = 2.0
  }
mkLinExp :: LinExp -> S.UGen
mkLinExp (LinExp r a' b' c' d' e') = S.mkOsc r "LinExp" [a',b',c',d',e'] 1
instance Make LinExp where
  ugen = mkLinExp