-- | Granular synthesis with frequency modulated sine tones module Sound.SC3.UGen.Record.GrainFM where import qualified Sound.SC3.UGen as S import Sound.SC3.UGen.Record data GrainFM = GrainFM { trigger :: S.UGen, dur :: S.UGen, carfreq :: S.UGen, modfreq :: S.UGen, index :: S.UGen, pan :: S.UGen, envbufnum :: S.UGen, maxGrains :: S.UGen } deriving (Show) grainFM :: GrainFM grainFM = GrainFM { trigger = 0.0, dur = 1.0, carfreq = 440.0, modfreq = 200.0, index = 1.0, pan = 0.0, envbufnum = -1.0, maxGrains = 512.0 } mkGrainFM :: GrainFM -> S.UGen mkGrainFM (GrainFM a' b' c' d' e' f' g' h') = S.mkOsc S.AR "GrainFM" [a',b',c',d',e',f',g',h'] undefined instance Make GrainFM where ugen = mkGrainFM