hsc3-0.20: 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)