hsc3-0.15: Sound/SC3/UGen/Bindings/Monad.hs
-- | Monad constructors for 'UGen's.
module Sound.SC3.UGen.Bindings.Monad where
import Sound.SC3.UGen.Bindings.DB
import Sound.SC3.UGen.Bindings.HW
import Sound.SC3.UGen.Enum
import Sound.SC3.UGen.Rate
import Sound.SC3.UGen.Type
import Sound.SC3.UGen.UId
-- * Demand
-- | Buffer demand ugen.
dbufrdM :: (UId m) => UGen -> UGen -> Loop -> m UGen
dbufrdM = liftUId3 dbufrd
-- | Buffer write on demand unit generator.
dbufwrM :: (UId m) => UGen -> UGen -> UGen -> Loop -> m UGen
dbufwrM = liftUId4 dbufwr
-- | Demand rate white noise.
dwhiteM :: (UId m) => UGen -> UGen -> UGen -> m UGen
dwhiteM = liftUId3 dwhite
-- | Demand rate integer white noise.
diwhiteM :: (UId m) => UGen -> UGen -> UGen -> m UGen
diwhiteM = liftUId3 diwhite
-- | Demand rate brown noise.
dbrownM :: (UId m) => UGen -> UGen -> UGen -> UGen -> m UGen
dbrownM = liftUId4 dbrown
-- | Demand rate integer brown noise.
dibrownM :: (UId m) => UGen -> UGen -> UGen -> UGen -> m UGen
dibrownM = liftUId4 dibrown
-- | Demand rate random selection.
drandM :: (UId m) => UGen -> UGen -> m UGen
drandM = liftUId2 drand
-- | Demand rate weighted random sequence generator.
dwrandM :: (UId m) => UGen -> UGen -> UGen -> m UGen
dwrandM = liftUId3 dwrand
-- | Demand rate random selection with no immediate repetition.
dxrandM :: (UId m) => UGen -> UGen -> m UGen
dxrandM = liftUId2 dxrand
-- | Demand rate arithmetic series.
dseriesM :: (UId m) => UGen -> UGen -> UGen -> m UGen
dseriesM = liftUId3 dseries
-- | Demand rate geometric series.
dgeomM :: (UId m) => UGen -> UGen -> UGen -> m UGen
dgeomM = liftUId3 dgeom
-- | Demand rate sequence generator.
dseqM :: (UId m) => UGen -> UGen -> m UGen
dseqM = liftUId2 dseq
-- | Demand rate series generator.
dserM :: (UId m) => UGen -> UGen -> m UGen
dserM = liftUId2 dser
-- | Demand rate sequence shuffler.
dshufM :: (UId m) => UGen -> UGen -> m UGen
dshufM = liftUId2 dshuf
-- | Demand input replication
dstutterM :: (UId m) => UGen -> UGen -> m UGen
dstutterM = liftUId2 dstutter
-- | Demand rate input switching.
dswitch1M :: (UId m) => UGen -> UGen -> m UGen
dswitch1M = liftUId2 dswitch1
-- | Demand rate input switching.
dswitchM :: (UId m) => UGen -> UGen -> m UGen
dswitchM = liftUId2 dswitch
-- * FFT
-- | Randomize order of bins.
pv_BinScrambleM :: (UId m) => UGen -> UGen -> UGen -> UGen -> m UGen
pv_BinScrambleM = liftUId4 pv_BinScramble
-- | Randomly clear bins.
pv_RandCombM :: (UId m) => UGen -> UGen -> UGen -> m UGen
pv_RandCombM = liftUId3 pv_RandComb
-- | Cross fade, copying bins in random order.
pv_RandWipeM :: (UId m) => UGen -> UGen -> UGen -> UGen -> m UGen
pv_RandWipeM = liftUId4 pv_RandWipe
-- * Noise
-- | Brown noise.
brownNoiseM :: (UId m) => Rate -> m UGen
brownNoiseM = liftUId brownNoise
-- | Clip noise.
clipNoiseM :: (UId m) => Rate -> m UGen
clipNoiseM = liftUId clipNoise
-- | Randomly pass or block triggers.
coinGateM :: (UId m) => UGen -> UGen -> m UGen
coinGateM = liftUId2 coinGate
-- | Random impulses in (-1, 1).
dust2M :: (UId m) => Rate -> UGen -> m UGen
dust2M = liftUId2 dust2
-- | Random impulse in (0,1).
dustM :: (UId m) => Rate -> UGen -> m UGen
dustM = liftUId2 dust
-- | Random value in exponential distribution.
expRandM :: (UId m) => UGen -> UGen -> m UGen
expRandM = liftUId2 expRand
-- | Gray noise.
grayNoiseM :: (UId m) => Rate -> m UGen
grayNoiseM = liftUId grayNoise
-- | Random integer in uniform distribution.
iRandM :: (UId m) => UGen -> UGen -> m UGen
iRandM = liftUId2 iRand
-- | Clip noise.
lfClipNoiseM :: (UId m) => Rate -> UGen -> m UGen
lfClipNoiseM = liftUId2 lfClipNoise
-- | Dynamic clip noise.
lfdClipNoiseM :: (UId m) => Rate -> UGen -> m UGen
lfdClipNoiseM = liftUId2 lfdClipNoise
-- | Dynamic step noise.
lfdNoise0M :: (UId m) => Rate -> UGen -> m UGen
lfdNoise0M = liftUId2 lfdNoise0
-- | Dynamic ramp noise.
lfdNoise1M :: (UId m) => Rate -> UGen -> m UGen
lfdNoise1M = liftUId2 lfdNoise1
-- | Dynamic cubic noise
lfdNoise3M :: (UId m) => Rate -> UGen -> m UGen
lfdNoise3M = liftUId2 lfdNoise3
-- | Step noise.
lfNoise0M :: (UId m) => Rate -> UGen -> m UGen
lfNoise0M = liftUId2 lfNoise0
-- | Ramp noise.
lfNoise1M :: (UId m) => Rate -> UGen -> m UGen
lfNoise1M = liftUId2 lfNoise1
-- | Quadratic noise.
lfNoise2M :: (UId m) => Rate -> UGen -> m UGen
lfNoise2M = liftUId2 lfNoise2
-- | Random value in skewed linear distribution.
linRandM :: (UId m) => UGen -> UGen -> UGen -> m UGen
linRandM = liftUId3 linRand
-- | Random value in sum of n linear distribution.
nRandM :: (UId m) => UGen -> UGen -> UGen -> m UGen
nRandM = liftUId3 nRand
-- | Pink noise.
pinkNoiseM :: (UId m) => Rate -> m UGen
pinkNoiseM = liftUId pinkNoise
-- | Random value in uniform distribution.
randM :: (UId m) => UGen -> UGen -> m UGen
randM = liftUId2 rand
-- | Random value in exponential distribution on trigger.
tExpRandM :: (UId m) => UGen -> UGen -> UGen -> m UGen
tExpRandM = liftUId3 tExpRand
-- | Random integer in uniform distribution on trigger.
tIRandM :: (UId m) => UGen -> UGen -> UGen -> m UGen
tIRandM = liftUId3 tIRand
-- | Random value in uniform distribution on trigger.
tRandM :: (UId m) => UGen -> UGen -> UGen -> m UGen
tRandM = liftUId3 tRand
-- | Triggered windex.
tWindexM :: (UId m) => UGen -> UGen -> UGen -> m UGen
tWindexM = liftUId3 tWindex
-- | White noise.
whiteNoiseM :: (UId m) => Rate -> m UGen
whiteNoiseM = liftUId whiteNoise