hsc3-0.14: Haskell SuperCollider

Safe HaskellSafe-Inferred

Sound.SC3.UGen.Type

Contents

Synopsis

Basic types

data UGenId Source

Data type for internalised identifier at UGen.

Constructors

NoId 
UId Int 

Instances

data Constant Source

Constants.

 Constant 3 == Constant 3
 (Constant 3 > Constant 1) == True

Constructors

Constant 

Fields

constantValue :: Float
 

data Control Source

Control inputs.

Instances

data Label Source

Labels.

Constructors

Label 

Fields

ugenLabel :: String
 

Instances

type Output = RateSource

Unit generator output descriptor.

newtype Special Source

Operating mode of unary and binary operators.

Constructors

Special Int 

Instances

data Primitive Source

UGen primitives.

data Proxy Source

Proxy to multiple channel input.

Constructors

Proxy 

Instances

data MRG Source

Multiple root graph.

Constructors

MRG 

Fields

mrgLeft :: UGen
 
mrgRight :: UGen
 

Instances

data UGen Source

Union type of Unit Generator forms.

Instances

Enum UGen

Unit generators are enumerable.

Eq UGen 
Floating UGen

Unit generators are floating point.

Fractional UGen

Unit generators are fractional.

Integral UGen

Unit generators are integral.

Num UGen

Unit generators are numbers.

Ord UGen

Unit generators are orderable (when Constants).

 (constant 2 > constant 1) == True
Real UGen

Unit generators are real.

RealFrac UGen 
Show UGen 
Bits UGen

UGens are bit patterns.

Random UGen

Unit generators are stochastic.

ID UGen 
BinaryOp UGen 
UnaryOp UGen 
RealFracE UGen 
OrdE UGen 
EqE UGen 
Audible UGen 
Audible UGen 

Predicates

isConstant :: UGen -> BoolSource

Constant node predicate.

isSink :: UGen -> BoolSource

True if input is a sink UGen, ie. has no outputs.

Validators

checkInput :: UGen -> UGenSource

Ensure input UGen is valid, ie. not a sink.

Accessors

Constructors

constant :: Real n => n -> UGenSource

Constant value node constructor.

mce :: [UGen] -> UGenSource

Multiple channel expansion node constructor.

mrg :: [UGen] -> UGenSource

Multiple root graph constructor.

proxy :: UGen -> Int -> UGenSource

Unit generator proxy node constructor.

MCE

mceProxies :: MCE UGen -> [UGen]Source

Type specified mce_elem.

isMCE :: UGen -> BoolSource

Multiple channel expansion node (MCE_U) predicate.

mceChannels :: UGen -> [UGen]Source

Output channels of UGen as a list.

mceDegree :: UGen -> IntSource

Number of channels to expand to.

mceExtend :: Int -> UGen -> [UGen]Source

Extend UGen to specified degree.

mceInputTransform :: [UGen] -> Maybe [[UGen]]Source

Apply MCE transform to a list of inputs.

mceBuild :: ([UGen] -> UGen) -> [UGen] -> UGenSource

Build a UGen after MCE transformation of inputs.

rateOf :: UGen -> RateSource

Determine the rate of a UGen.

proxify :: UGen -> UGenSource

Apply proxy transformation if required.

mkUGen :: Maybe ([Float] -> Float) -> [Rate] -> Maybe Rate -> String -> [UGen] -> Int -> Special -> UGenId -> UGenSource

Construct proxied and multiple channel expanded UGen.

Operators

mkOperator :: ([Float] -> Float) -> String -> [UGen] -> Int -> UGenSource

Operator UGen constructor.

mkUnaryOperator :: Unary -> (Float -> Float) -> UGen -> UGenSource

Unary math constructor with constant optimization.

mkBinaryOperator_optimize :: Binary -> (Float -> Float -> Float) -> (Either Float Float -> Bool) -> UGen -> UGen -> UGenSource

Binary math constructor with constant optimization.

 let o = sinOsc AR 440 0
 o * 1 == o && 1 * o == o && o * 2 /= o
 o + 0 == o && 0 + o == o && o + 1 /= o
 o - 0 == o && 0 - o /= o
 o / 1 == o && 1 / o /= o
 o ** 1 == o && o ** 2 /= o

mkBinaryOperator :: Binary -> (Float -> Float -> Float) -> UGen -> UGen -> UGenSource

Binary math constructor with constant optimization.

Numeric instances

UGen ID Instance

hashUGen :: UGen -> IntSource

Hash function for unit generators.