sclang: ServerShmInterface - try to avoid multiple destructor calls
[supercollider.git] / HelpSource / Classes / Pseg.schelp
blob07b6115df4f553b30e2adfb9953f4e05fe2d3f17
1 class:: Pseg
2 summary:: timed embedding of values
3 related:: Classes/Ptime, Classes/Pstep
4 categories:: Streams-Patterns-Events>Patterns>Time
6 description::
8 Pseg defines a function of time as a breakpoint envelope using the same parameters as link::Classes/Env::. These patterns can be used to describe tempo or dynamic variations independent of the rhythmic patterns that express them.
10 ClassMethods::
12 method::new
14 argument::levels
15 A link::Classes/Pattern:: that returns the levels. The first level is the initial value of the envelope, all subsequent values are interpolated.
17 argument::durs
18 A link::Classes/Pattern:: that returns segments durations in seconds.
20 argument::curves
21 a link::Classes/Symbol::, link::Classes/Float::, or an link::Classes/Array:: of those. Determines the shape of the segments.
23 The possible values are:
24 table::
25 ## code::\step:: || || flat segments.
26 ## code::\linear:: || code::\lin:: || linear segments, the default.
27 ## code::\exponential:: || code::\exp:: || natural exponential growth and decay. In this case, the levels must all be nonzero and the have the same sign.
28 ## code::\sine:: || code::\sin:: || sinusoidal S shaped segments.
29 ## code::\welch:: || code::\wel:: || sinusoidal segments shaped like the sides of a Welch window.
30 ## code::\squared::  || code::\sqr:: || squared segment.
31 ## code::\cubed:: || code::\cub:: || cubed segment.
32 ## a link::Classes/Float:: || || a curvature value for all segments. 0 means linear, positive and negative numbers curve the segment up and down.
33 ## an link::Classes/Array:: of symbols or floats || || curvature values for each segment.
36 Examples::
38 code::
39 // change a parameter
41 Pbind(
42         \note,  Pseg( Pseq([1, 5],inf), Pseq([4, 1],inf), \linear),
43         \dur, 0.1
44 ).play;
48 Pbind(
49         \freq,  Pseg( Pseq([400, 1500], inf), Pseq([4, 4],inf), Pseq([\linear, \exp],inf)),
50         \dur, 0.1
51 ).play;