QcPenPrinter: no need to allocate QPrintDialog on heap
[supercollider.git] / HelpSource / Classes / Warp.schelp
blob236361ef1dc4958420c763cd9e277431b82b8e75
1 class:: Warp
2 summary:: specification of a shape for a mapping of numerical input
3 related:: Classes/ControlSpec, Classes/Spec
4 categories:: Control, Spec
6 description::
7 The subclasses of Warp specify translations from input (a number) to an output (another number). This is an abstract class - already available shapes are emphasis::linear, exponential, sine, cosine, decibel, curve:: (this is similar to the curves in envelopes, see also link::Classes/Env::).
9 Warps are internally created by link::Classes/ControlSpec::. Usually they are created by the message strong::asWarp::, understood by symbols and numbers. A warp has a link::Classes/Spec:: to specify a certain range of input and output values.
11 code::
12 // create a new warp:
13 a = \exp.asWarp;
14 a = -4.asWarp; // a curve warp;
17 ClassMethods::
19 private::initClass
21 InstanceMethods::
23 method::map
24 Maps and constrains a strong::value:: between 0 and 1 to the output domain.
26 method::unmap
27 in the output domain to a value in the range between 0 and 1.
29 code::
30 g = -3.asWarp;
31 g.map(0.5);
32 g.unmap(0.9);
34 // fore and back translation should be identical:
35 g.unmap(g.map(0.5));