hsc3-0.14: Haskell SuperCollider

Safe HaskellSafe-Inferred

Sound.SC3.UGen.Envelope

Contents

Description

Envelope generators.

Synopsis

Envelope

data Envelope a Source

SC3 envelope segment model

Constructors

Envelope 

Fields

env_levels :: [a]

Set of n levels, n is >= 1

env_times :: [a]

Set of n-1 time intervals

env_curves :: [Envelope_Curve a]

Possibly empty curve set

env_release_node :: Maybe Int

Maybe index to release node

env_loop_node :: Maybe Int

Maybe index to loop node

Instances

Eq a => Eq (Envelope a) 
Show a => Show (Envelope a) 

envelope_duration :: Num n => Envelope n -> nSource

Duration of Envelope, ie. sum . env_times.

envelope_n_segments :: (Num n, Integral i) => Envelope n -> iSource

Number of segments at Envelope, ie. length . env_times.

envelope_segment_ix :: (Ord a, Num a) => Envelope a -> a -> Maybe IntSource

Determine which envelope segment a given time t falls in.

type Envelope_Segment t = (t, t, t, t, Envelope_Curve t)Source

A set of start time, start level, end time, end level and curve.

envelope_segment :: Num t => Envelope t -> Int -> Envelope_Segment tSource

Extract envelope segment given at index i.

envelope_at :: (Ord t, Floating t) => Envelope t -> t -> tSource

Get value for Envelope at time t, or zero if t is out of range.

envelope_render :: (Ord t, Floating t, Enum t) => t -> Envelope t -> [(t, t)]Source

Render Envelope to breakpoint set of n places.

envelope_table :: (Ord t, Floating t, Enum t) => t -> Envelope t -> [t]Source

Contruct a lookup table of n places from Envelope.

envelope_curves :: Num a => Envelope a -> [Envelope_Curve a]Source

Variant on env_curves that expands the, possibly empty, user list by cycling (if not empty) or by filling with EnvLin.

envelope_sc3_array :: Num a => Envelope a -> Maybe [a]Source

Linear SC3 form of Envelope data.

env_delay :: Envelope a -> a -> Envelope aSource

Delay the onset of the envelope.

env_circle :: (Num a, Fractional a) => Envelope a -> a -> Envelope_Curve a -> Envelope aSource

Connect releaseNode (or end) to first node of envelope.

UGen

envGen :: Rate -> UGen -> UGen -> UGen -> UGen -> DoneAction -> Envelope UGen -> UGenSource

Segment based envelope generator.

line :: Rate -> UGen -> UGen -> UGen -> DoneAction -> UGenSource

Line generator.

xLine :: Rate -> UGen -> UGen -> UGen -> DoneAction -> UGenSource

Exponential line generator.

freeSelf :: UGen -> UGenSource

Free node on trigger.

freeSelfWhenDone :: UGen -> UGenSource

Free node on done action at source.

pause :: UGen -> UGen -> UGenSource

Pause specified node on trigger.

pauseSelf :: UGen -> UGenSource

Pause node on trigger.

pauseSelfWhenDone :: UGen -> UGenSource

Pause node on done action at source.

done :: UGen -> UGenSource

One while the source is marked done, else zero.

detectSilence :: UGen -> UGen -> UGen -> DoneAction -> UGenSource

Raise specified done action when input goes silent.

free :: UGen -> UGen -> UGenSource

When triggered free specified node.

linen :: UGen -> UGen -> UGen -> UGen -> DoneAction -> UGenSource

Linear envelope generator.

List

d_dx :: Num a => [a] -> [a]Source

dx_d :: Num n => [n] -> [n]Source