Safe Haskell  SafeInferred 

Language  Haskell98 
Envelope generators.
 data Envelope a = Envelope {
 env_levels :: [a]
 env_times :: [a]
 env_curves :: [Envelope_Curve a]
 env_release_node :: Maybe Int
 env_loop_node :: Maybe Int
 envelope :: [a] > [a] > [Envelope_Curve a] > Envelope a
 envelope_duration :: Num n => Envelope n > n
 envelope_n_segments :: (Num n, Integral i) => Envelope n > i
 envelope_segment_ix :: (Ord a, Num a) => Envelope a > a > Maybe Int
 type Envelope_Segment t = (t, t, t, t, Envelope_Curve t)
 envelope_segment :: Num t => Envelope t > Int > Envelope_Segment t
 envelope_segments :: Num t => Envelope t > [Envelope_Segment t]
 pack_envelope_segments :: Num t => [Envelope_Segment t] > ([t], [t], [Envelope_Curve t])
 envelope_is_normal :: (Eq n, Num n) => Envelope n > Bool
 envelope_normalise :: (Num a, Ord a) => Envelope a > Envelope a
 envelope_at :: (Ord t, Floating t) => Envelope t > t > t
 envelope_render :: (Ord t, Floating t, Enum t) => t > Envelope t > [(t, t)]
 envelope_table :: (Ord t, Floating t, Enum t) => t > Envelope t > [t]
 envelope_curves :: Num a => Envelope a > [Envelope_Curve a]
 envelope_sc3_array :: Num a => Envelope a > Maybe [a]
 envelope_sc3_ienvgen_array :: Num a => Envelope a > Maybe [a]
 env_is_sustained :: Envelope a > Bool
 env_delay :: Envelope a > a > Envelope a
 env_circle :: (Num a, Fractional a) => Envelope a > a > Envelope_Curve a > Envelope a
 envelope_to_ugen :: Envelope UGen > UGen
 d_dx :: Num a => [a] > [a]
 dx_d :: Num n => [n] > [n]
 d_dx' :: Num n => [n] > [n]
 dx_d' :: Num n => [n] > [n]
Envelope
SC3 envelope segment model
Envelope  

envelope :: [a] > [a] > [Envelope_Curve a] > Envelope a Source
Variant without release and loop node inputs (defaulting to nil).
envelope_n_segments :: (Num n, Integral i) => Envelope n > i Source
envelope_segment_ix :: (Ord a, Num a) => Envelope a > a > Maybe Int Source
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 t Source
Extract envelope segment given at index i.
envelope_segments :: Num t => Envelope t > [Envelope_Segment t] Source
Extract all segments.
pack_envelope_segments :: Num t => [Envelope_Segment t] > ([t], [t], [Envelope_Curve t]) Source
Transform list of Envelope_Segment
s into lists (env_levels
,env_times
,env_curves
).
envelope_is_normal :: (Eq n, Num n) => Envelope n > Bool Source
An envelope is normal if it has no segments with zero duration.
envelope_normalise :: (Num a, Ord a) => Envelope a > Envelope a Source
Normalise envelope by deleting segments of zero duration.
envelope_at :: (Ord t, Floating t) => Envelope t > t > t Source
Get value for Envelope
at time t, or zero if t is out of
range. By convention if the envelope has a segment of zero
duration we give the rightmost value.
envelope_render :: (Ord t, Floating t, Enum t) => t > Envelope t > [(t, t)] Source
Render Envelope
to breakpoint set of n equidistant 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.
Form is: l0 #t reset loop l1 t0 c0 c0' ...
let {l = [0,0.6,0.3,1.0,0] ;t = [0.1,0.02,0.4,1.1] ;c = [EnvLin,EnvExp,EnvNum (6),EnvSin] ;e = Envelope l t c Nothing Nothing ;r = [0,4,99,99,0.6,0.1,1,0,0.3,0.02,2,0,1,0.4,5,6,0,1.1,3,0]} in envelope_sc3_array e == Just r
envelope_sc3_ienvgen_array :: Num a => Envelope a > Maybe [a] Source
IEnvGen
SC3 form of Envelope
data. Offset not supported (zero).
let {l = [0,0.6,0.3,1.0,0] ;t = [0.1,0.02,0.4,1.1] ;c = [EnvLin,EnvExp,EnvNum (6),EnvSin] ;e = Envelope l t c Nothing Nothing ;r = [0,0,4,1.62,0.1,1,0,0.6,0.02,2,0,0.3,0.4,5,6,1,1.1,3,0,0]} in envelope_sc3_ienvgen_array e == Just r
env_is_sustained :: Envelope a > Bool Source
True
if env_release_node
is not Nothing
.
env_circle :: (Num a, Fractional a) => Envelope a > a > Envelope_Curve a > Envelope a Source
Connect releaseNode (or end) to first node of envelope.
UGen
envelope_to_ugen :: Envelope UGen > UGen Source