scide: implement selectionLength for openDocument
[supercollider.git] / HelpSource / Classes / Pseg.schelp
blobed38607695f05d9980cf15361524edcf80a1e6d0
1 class:: Pseg
2 summary:: timed embedding of values
3 related:: Classes/Ptime, Classes/Pstep, Classes/Env
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 argument::repeats
24 a number.
26 The possible values are:
27 table::
28 ## code::\step:: || || flat segments.
29 ## code::\linear:: || code::\lin:: || linear segments, the default.
30 ## code::\exponential:: || code::\exp:: || natural exponential growth and decay. In this case, the levels must all be nonzero and the have the same sign.
31 ## code::\sine:: || code::\sin:: || sinusoidal S shaped segments.
32 ## code::\welch:: || code::\wel:: || sinusoidal segments shaped like the sides of a Welch window.
33 ## code::\squared::  || code::\sqr:: || squared segment.
34 ## code::\cubed:: || code::\cub:: || cubed segment.
35 ## a link::Classes/Float:: || || a curvature value for all segments. 0 means linear, positive and negative numbers curve the segment up and down.
36 ## an link::Classes/Array:: of symbols or floats || || curvature values for each segment.
39 Examples::
41 code::
42 // change a parameter
44 Pbind(
45         \note,  Pseg( Pseq([1, 5],inf), Pseq([4, 1],inf), \linear),
46         \dur, 0.1
47 ).play;
51 Pbind(
52         \freq,  Pseg( Pseq([400, 1500], inf), Pseq([4, 4],inf), Pseq([\linear, \exp],inf)),
53         \dur, 0.1
54 ).play;