UGen data structure representation and associated functions.
- data UGenId
- isNoId :: UGenId -> Bool
- isUserId :: UGenId -> Bool
- isSystemId :: UGenId -> Bool
- hash :: Hashable32 a => a -> Int
- userIdProtect :: Int -> UGenId -> UGenId
- userIdIncr :: Int -> UGenId -> UGenId
- data UGen
- = Constant { }
- | Control { }
- | Primitive {
- ugenRate :: Rate
- ugenName :: String
- ugenInputs :: [UGen]
- ugenOutputs :: [Output]
- ugenSpecial :: Special
- ugenId :: UGenId
- | Proxy {
- proxySource :: UGen
- proxyIndex :: Int
- | MCE {
- mceProxies :: [UGen]
- | MRG { }
- ugenTraverse :: (UGen -> UGen) -> UGen -> UGen
- ugenFoldr :: (UGen -> a -> a) -> a -> UGen -> a
- ugenIds :: UGen -> [UGenId]
- ugenReplaceIds :: [(UGenId, UGenId)] -> UGen -> UGen
- ugenProtectUserId :: Int -> UGen -> UGen
- uprotect :: ID a => a -> UGen -> UGen
- uprotect' :: ID a => a -> [UGen] -> [UGen]
- uclone' :: ID a => a -> Int -> UGen -> [UGen]
- uclone :: ID a => a -> Int -> UGen -> UGen
- ucompose :: ID a => a -> [UGen -> UGen] -> UGen -> UGen
- useq :: ID a => a -> Int -> (UGen -> UGen) -> UGen -> UGen
- ugenIncrUserId :: Int -> UGen -> UGen
- udup' :: Int -> UGen -> [UGen]
- udup :: Int -> UGen -> UGen
- hashUGen :: UGen -> Int
- type Output = Rate
- newtype Special = Special Int
- constant :: Real a => a -> UGen
- control :: Rate -> String -> Double -> UGen
- tr_control :: String -> Double -> UGen
- mce :: [UGen] -> UGen
- mrg2 :: UGen -> UGen -> UGen
- proxy :: UGen -> Int -> UGen
- data UGenType
- = Constant_U
- | Control_U
- | Primitive_U
- | Proxy_U
- | MCE_U
- | MRG_U
- isMCE :: UGen -> Bool
- isConstant :: UGen -> Bool
- ugenType :: UGen -> UGenType
- mce2 :: UGen -> UGen -> UGen
- mce2c :: UGen -> (UGen, UGen)
- clone :: UId m => Int -> m UGen -> m UGen
- mceDegree :: UGen -> Int
- mceExtend :: Int -> UGen -> [UGen]
- mceInputTransform :: [UGen] -> Maybe [[UGen]]
- mceBuild :: ([UGen] -> UGen) -> [UGen] -> UGen
- mceMap :: (UGen -> UGen) -> UGen -> UGen
- mceEdit :: ([UGen] -> [UGen]) -> UGen -> UGen
- mceReverse :: UGen -> UGen
- mceChannel :: Int -> UGen -> UGen
- mceChannels :: UGen -> [UGen]
- mceTranspose :: UGen -> UGen
- mceSum :: UGen -> UGen
- mrg :: [UGen] -> UGen
- proxify :: UGen -> UGen
- rateOf :: UGen -> Rate
- is_sink :: UGen -> Bool
- check_input :: UGen -> UGen
- mkUGen :: Maybe ([Double] -> Double) -> [Rate] -> Maybe Rate -> String -> [UGen] -> Int -> Special -> UGenId -> UGen
- all_rates :: [Rate]
- mkOperator :: ([Double] -> Double) -> String -> [UGen] -> Int -> UGen
- mkUnaryOperator :: Unary -> (Double -> Double) -> UGen -> UGen
- mkBinaryOperator :: Binary -> (Double -> Double -> Double) -> UGen -> UGen -> UGen
- mk_osc :: [Rate] -> UGenId -> Rate -> String -> [UGen] -> Int -> UGen
- mkOsc :: Rate -> String -> [UGen] -> Int -> UGen
- mkOscR :: [Rate] -> Rate -> String -> [UGen] -> Int -> UGen
- toUserId :: ID a => String -> a -> UGenId
- mkOscId :: ID a => a -> Rate -> String -> [UGen] -> Int -> UGen
- mk_osc_mce :: UGenId -> Rate -> String -> [UGen] -> UGen -> Int -> UGen
- mkOscMCE :: Rate -> String -> [UGen] -> UGen -> Int -> UGen
- mkOscMCEId :: ID a => a -> Rate -> String -> [UGen] -> UGen -> Int -> UGen
- mk_filter :: [Rate] -> UGenId -> String -> [UGen] -> Int -> UGen
- mkFilter :: String -> [UGen] -> Int -> UGen
- mkFilterR :: [Rate] -> String -> [UGen] -> Int -> UGen
- mkFilterId :: ID a => a -> String -> [UGen] -> Int -> UGen
- mkFilterKeyed :: String -> Int -> [UGen] -> Int -> UGen
- mk_filter_mce :: [Rate] -> UGenId -> String -> [UGen] -> UGen -> Int -> UGen
- mkFilterMCER :: [Rate] -> String -> [UGen] -> UGen -> Int -> UGen
- mkFilterMCE :: String -> [UGen] -> UGen -> Int -> UGen
- mkFilterMCEId :: ID a => a -> String -> [UGen] -> UGen -> Int -> UGen
- mkInfo :: String -> UGen
UGen Id type and functions
Data type for internalised identifier at UGen
.
isSystemId :: UGenId -> BoolSource
Predicate for SystemId
.
hash :: Hashable32 a => a -> IntSource
Hash value to Int
.
Unit Generator type
Unit generator.
Constant | |
Control | |
Primitive | |
| |
Proxy | |
| |
MCE | |
| |
MRG | |
UGen graph functions
ugenTraverse :: (UGen -> UGen) -> UGen -> UGenSource
Depth first traversal of graph at u
applying f
to each node.
UGen graph Id reassignment
ugenReplaceIds :: [(UGenId, UGenId)] -> UGen -> UGenSource
Recursive replacement of UGenId
s according to table.
ugenProtectUserId :: Int -> UGen -> UGenSource
Protect user specified UGen Ids.
uprotect' :: ID a => a -> [UGen] -> [UGen]Source
Variant of uprotect
with subsequent identifiers derived by
incrementing initial identifier.
uclone' :: ID a => a -> Int -> UGen -> [UGen]Source
Make n parallel instances of UGen
with protected identifiers.
ucompose :: ID a => a -> [UGen -> UGen] -> UGen -> UGenSource
Left to right UGen function composition with user id protection.
useq :: ID a => a -> Int -> (UGen -> UGen) -> UGen -> UGenSource
Make n sequential instances of f
with protected Ids.
ugenIncrUserId :: Int -> UGen -> UGenSource
Increment user specified UGen Ids.
UGen ID Instance
Operating mode of unary and binary operators.
Unit generator node constructors
control :: Rate -> String -> Double -> UGenSource
Control input node constructor.
Note that if the name begins with a t_ prefix the control is not converted to a triggered control. Please see tr_control.
tr_control :: String -> Double -> UGenSource
Triggered (kr) control input node constructor.
Unit generator node predicates
Enumeration of UGen
types.
isConstant :: UGen -> BoolSource
Constant node predicate.
Multiple channel expansion
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.
mceReverse :: UGen -> UGenSource
Reverse order of channels at MCE.
mceChannel :: Int -> UGen -> UGenSource
Obtain indexed channel at MCE.
mceChannels :: UGen -> [UGen]Source
Output channels of UGen as a list.
mceTranspose :: UGen -> UGenSource
Transpose rows and columns, ie. {{a,b},{c,d}} to {{a,c},{b,d}}.
Multiple root graphs
Unit generator function builders
check_input :: UGen -> UGenSource
Ensure input UGen
is valid, ie. not a sink.
mkUGen :: Maybe ([Double] -> Double) -> [Rate] -> Maybe Rate -> String -> [UGen] -> Int -> Special -> UGenId -> UGenSource
Construct proxied and multiple channel expanded UGen.
mkOperator :: ([Double] -> Double) -> String -> [UGen] -> Int -> UGenSource
Operator UGen constructor.
mkUnaryOperator :: Unary -> (Double -> Double) -> UGen -> UGenSource
Unary math constructor with constant optimization.
mkBinaryOperator :: Binary -> (Double -> Double -> Double) -> UGen -> UGen -> UGenSource
Binary math constructor with constant optimization.
mk_osc :: [Rate] -> UGenId -> Rate -> String -> [UGen] -> Int -> UGenSource
Oscillator constructor with constrained set of operating Rate
s.
mkOscR :: [Rate] -> Rate -> String -> [UGen] -> Int -> UGenSource
Oscillator constructor, rate restricted variant.
mkOscId :: ID a => a -> Rate -> String -> [UGen] -> Int -> UGenSource
Oscillator constructor, setting identifier.
mkOscMCE :: Rate -> String -> [UGen] -> UGen -> Int -> UGenSource
Variant oscillator constructor with MCE collapsing input.
mkOscMCEId :: ID a => a -> Rate -> String -> [UGen] -> UGen -> Int -> UGenSource
Variant oscillator constructor with MCE collapsing input.
mk_filter :: [Rate] -> UGenId -> String -> [UGen] -> Int -> UGenSource
Rate constrained filter UGen
constructor.
mkFilterKeyed :: String -> Int -> [UGen] -> Int -> UGenSource
Variant filter with rate derived from keyed input.
mkFilterMCER :: [Rate] -> String -> [UGen] -> UGen -> Int -> UGenSource
Variant filter constructor with MCE collapsing input.
mkFilterMCE :: String -> [UGen] -> UGen -> Int -> UGenSource
Variant filter constructor with MCE collapsing input.