hsc3-0.21: Sound/Sc3/Ugen/Primitive.hs
-- | SuperCollider Ugen primitive.
module Sound.Sc3.Ugen.Primitive where
import Sound.Sc3.Common.Rate {- hsc3 -}
import Sound.Sc3.Ugen.Brackets {- hsc3 -}
-- | Identifier used to distinguish otherwise equal non-deterministic nodes.
data UgenId = NoId | Uid Int deriving (Ord, Eq, Read, Show)
-- | Alias of 'NoId', the 'UgenId' used for deterministic Ugens.
no_id :: UgenId
no_id = NoId
-- | Unit generator output descriptor.
type Output = Rate
-- | Selector for unary and binary operators.
newtype Special = Special Int
deriving (Ord, Eq, Read, Show)
-- | Sc Ugen primitive.
data Primitive t = Primitive
{ ugenRate :: Rate
, ugenName :: String
, ugenInputs :: [t]
, ugenOutputs :: [Output]
, ugenSpecial :: Special
, ugenId :: UgenId
, primitiveBrackets :: Brackets
}
deriving (Ord, Eq, Read, Show)