[Sc-devel] SF.net SVN: supercollider: [6080]
branches/universal/build/Help/Control
Joshua Parmenter
josh at realizedsound.net
Sun Jun 10 11:34:27 PDT 2007
Hi Julian (and others)... what do you think of this: there is now
newXYC and newPairs creation methods for InterplEnv. newXYC takes a
single array of breakpoints, newPairs takes an array of breakpoints
followed by a single curve value:
*new(levels, times, curves, offset = 0.0)
Create a new envelope specification.
levels - an array of levels. The first level is the initial value of
the envelope.
times - an array of durations of segments in seconds. There should
be one fewer duration than there are levels.
curve - this parameter determines the shape of the envelope segments.
The possible values are:
'step' - flat segments
'linear' - linear segments, the default
'exponential' - natural exponential growth and decay. In this case,
the levels must all be nonzero
and the have the same sign.
'sine' - sinusoidal S shaped segments.
'welch' - sinusoidal segments shaped like the sides of a Welch window.
a Float - a curvature value for all segments.
An Array of Floats - curvature values for each segments.
offset - used to offset an envelope into negative starttimes.
*newXYC([x0, y0, curve0 x1, y1, curve1 ... xn, yn])
*newPairs([x0, y0, x1, y1 ... xn, yn], curve)
// index with Amplitude of input, control freq of SinOsc...
using .newXYC
SynthDef(\test, {arg inbus;
var env, point;
point = Amplitude.ar(In.ar(inbus), 0.01, 0.2);
// use offset so negative values of SinOsc will map into the InterplEnv
env = InterplEnv.newXYC([0, 330, \exp, 0.5, 440, \sin, 1.0, 1760]);
Out.ar(1, SinOsc.ar(IEnvGen.kr(env, point), 0, 0.2))
}).load(s);
s.sendMsg(\s_new, \test, a = s.nextNodeID, 0, 1, \inbus,
s.options.numOutputBusChannels);
s.sendMsg(\n_free, a);
// index with Amplitude of input, control freq of SinOsc...
using .newPairs
SynthDef(\test, {arg inbus;
var env, point;
point = Amplitude.ar(In.ar(inbus), 0.01, 0.2);
// use offset so negative values of SinOsc will map into the InterplEnv
env = InterplEnv.newPairs([0, 330, 0.5, 440, 1.0, 1760], \exp);
Out.ar(1, SinOsc.ar(IEnvGen.kr(env, point), 0, 0.2))
}).load(s);
s.sendMsg(\s_new, \test, a = s.nextNodeID, 0, 1, \inbus,
s.options.numOutputBusChannels);
s.sendMsg(\n_free, a);
Look ok? I think this is the most consistent way to do it...
Josh
On Jun 10, 2007, at 2:05 AM, Julian Rohrhuber wrote:
> Hi Josh,
>
> nice and useful ugen!
>
> a minor note: when returning the instance of the InterplXYC, you
> could call super, then *new would return the right class.
>
>
>
> InterplXYC : InterplEnv {
> *new {arg ... xyc;
> var x, y, c, times, levels, curves, offset;
> #x, y, c = xyc.flat.clump(3).flop;
> offset = x[0];
> levels = y;
> times = Array.fill(x.size - 1, {arg i; x[i + 1] - x[i]});
> c.removeAt(c.size - 1);
> ^super.new(levels, times, c, offset);
> }
> }
>
>
>
> //////////////
>
>
> Also it seems to me that xyc.flat.clump(3).flop is equivalent to
> a.flop ? Is there a special reason you do the flat.clump ?
>
>
> a = [[1, 2, \sin], [50, 100, \lin]];
>
> a.flat.clump(3).flop
>
> a.flop
>
> //////////////
>
> times = Array.fill(x.size - 1, {arg i; x[i + 1] - x[i]});
>
> this could be written as
> times = x.differentiate; times.removeAt(0);
>
> (well, not exactly shorter..)
>
>
>
>
>> Revision: 6080
>> http://svn.sourceforge.net/supercollider/?rev=6080&view=rev
>> Author: joshpar
>> Date: 2007-06-09 21:35:58 -0700 (Sat, 09 Jun 2007)
>>
>> Log Message:
>> -----------
>> add InterplEnv classes and IEnvGen
>>
>> Added Paths:
>> -----------
>> branches/universal/build/Help/Control/IEnvGen.htm
>> branches/universal/build/Help/Control/InterplEnv.htm
>> branches/universal/build/Help/Control/InterplPairs.htm
>> branches/universal/build/Help/Control/InterplXYC.htm
>>
>> Added: branches/universal/build/Help/Control/IEnvGen.htm
>> ===================================================================
>> --- branches/universal/build/Help/Control/IEnvGen.htm (rev 0)
>> +++ branches/universal/build/Help/Control/IEnvGen.htm 2007-06-10
>> 04:35:58 UTC (rev 6080)
>> @@ -0,0 +1,84 @@
>> +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://
>> www.w3.org/TR/html4/strict.dtd">
>> +<html>
>> +<head>
>> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
>> +<meta http-equiv="Content-Style-Type" content="text/css">
>> +<title></title>
>> +<meta name="Generator" content="Cocoa HTML Writer">
>> +<meta name="CocoaVersion" content="824.42">
>> +<style type="text/css">
>> +p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Helvetica;
>> color: #000000}
>> +p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color:
>> #000000; min-height: 12.0px}
>> +p.p3 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica;
>> color: #000000}
>> +p.p4 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica;
>> color: #000000; min-height: 14.0px}
>> +p.p5 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; min-
>> height: 12.0px}
>> +p.p6 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color:
>> #bf0000}
>> +p.p7 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco}
>> +p.p8 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color:
>> #0000bf}
>> +span.s1 {font: 18.0px Helvetica}
>> +span.s2 {font: 9.0px Monaco}
>> +span.s3 {color: #0000bf}
>> +span.s4 {color: #007300}
>> +span.s5 {color: #000000}
>> +span.Apple-tab-span {white-space:pre}
>> +</style>
>> +</head>
>> +<body>
>> +<p class="p1"><span class="s1"><b>IEnvGen</b></span><span
>> class="s2"><span class="Apple-tab-span"> </span><span class="Apple-
>> tab-span"> </span><span class="Apple-tab-span"> </span><span
>> class="Apple-tab-span"> </span></span><b>envelope generator for
>> polling values from an InterplEnv</b></p>
>> +<p class="p2"><br></p>
>> +<p class="p3"><b>superclass: UGen</b></p>
>> +<p class="p4"><b></b><br></p>
>> +<p class="p3"><b><span class="Apple-tab-span"> </span>*ar
>> (ienvelope, index, mul, add)</b></p>
>> +<p class="p3"><b><span class="Apple-tab-span"> </span>*kr
>> (ienvelope, index, mul, add)</b></p>
>> +<p class="p4"><br></p>
>> +<p class="p3"><span class="Apple-tab-span"> </span>Plays back
>> break point envelopes from the index point. The envelopes are
>> instances of the InterplEnv <span class="Apple-tab-span"> </
>> span>class. See the <b>InterplEnv</b> help file for more
>> info.<span class="Apple-converted-space"> </span></p>
>> +<p class="p2"><br></p>
>> +<p class="p2"><span class="Apple-tab-span"> </span></p>
>> +<p class="p3"><span class="s2"><span class="Apple-tab-span"> </
>> span></span><b>ienvelope</b> <span class="Apple-tab-span"> </
>> span>an instance of InterplEnv (this is static for the life of the
>> UGen)</p>
>> +<p class="p3"><span class="Apple-tab-span"> </span><b>index<span
>> class="Apple-tab-span"> </span><span class="Apple-tab-span"> </
>> span></b>a point to access within the InterplEnv</p>
>> +<p class="p4"><br></p>
>> +<p class="p5"><br></p>
>> +<p class="p6">// example</p>
>> +<p class="p5"><br></p>
>> +<p class="p7"><span class="s3">SynthDef</span>(<span class="s4">
>> \test</span>, {<span class="s3">arg</span> gate = 1;</p>
>> +<p class="p7"><span class="Apple-tab-span"> </span><span
>> class="s3">var</span> env, sin;</p>
>> +<p class="p7"><span class="Apple-tab-span"> </span>sin = <span
>> class="s3">SinOsc</span>.ar(440, 0, 1);</p>
>> +<p class="p7"><span class="Apple-tab-span"> </span>env = <span
>> class="s3">InterplEnv</span>([0, 0.6, 0.3, 1.0, 0], [0.1, 0.02,
>> 0.4, 1.1], [<span class="s4">\lin</span>, <span class="s4">\exp</
>> span>, -6, <span class="s4">\sin</span>]).plot;<span class="Apple-
>> tab-span"> </span><span class="s3">Out</span>.ar(0, sin *<span
>> class="Apple-converted-space"> </span></p>
>> +<p class="p6"><span class="s5"><span class="Apple-tab-span"> </
>> span><span class="Apple-tab-span"> </span></span>// use MouseX to
>> index into the InterplEnv to control amps</p>
>> +<p class="p7"><span class="Apple-tab-span"> </span><span
>> class="Apple-tab-span"> </span><span class="s3">IEnvGen</span>.kr
>> (env, <span class="s3">MouseX</span>.kr(0, env.times.sum)) *</p>
>> +<p class="p7"><span class="Apple-tab-span"> </span><span
>> class="Apple-tab-span"> </span><span class="s3">EnvGen</span>.kr
>> (<span class="s3">Env</span>.asr(0.01, 1, 0.01), gate, doneAction:
>> 2);</p>
>> +<p class="p7"><span class="Apple-tab-span"> </span><span
>> class="Apple-tab-span"> </span>)</p>
>> +<p class="p7">}).load(s);</p>
>> +<p class="p5"><br></p>
>> +<p class="p7">s = <span class="s3">Server</span>.internal.boot;</p>
>> +<p class="p7">s.scope;</p>
>> +<p class="p5"><br></p>
>> +<p class="p7">s.sendMsg(<span class="s4">\s_new</span>, <span
>> class="s4">\test</span>, a = s.nextNodeID, 0, 1);</p>
>> +<p class="p7">s.sendMsg(<span class="s4">\n_set</span>, a, <span
>> class="s4">\gate</span>, 0);</p>
>> +<p class="p5"><br></p>
>> +<p class="p6">// index with an SinOsc ... mouse controls
>> amplitude of SinOsc</p>
>> +<p class="p8">SynthDef<span class="s5">(</span><span class="s4">
>> \test</span><span class="s5">, {</span></p>
>> +<p class="p7"><span class="Apple-tab-span"> </span><span
>> class="s3">var</span> env, sin;</p>
>> +<p class="p7"><span class="Apple-tab-span"> </span>sin = <span
>> class="s3">SinOsc</span>.ar(440, 0, <span class="s3">MouseX</
>> span>.kr(0, 1));</p>
>> +<p class="p6"><span class="s5"><span class="Apple-tab-span"> </
>> span></span>// use offset so negative values of SinOsc will map
>> into the InterplEnv</p>
>> +<p class="p7"><span class="Apple-tab-span"> </span>env = <span
>> class="s3">InterplEnv</span>([-1, -0.7, 0.7, 1], [ 0.8666, 0.2666,
>> 0.8668 ], <span class="s4">\lin</span>, -1.0);</p>
>> +<p class="p7"><span class="Apple-tab-span"> </span><span
>> class="s3">Out</span>.ar(0, <span class="s3">IEnvGen</span>.ar
>> (env, sin))<span class="Apple-converted-space"> </span></p>
>> +<p class="p7">}).load(s);</p>
>> +<p class="p5"><br></p>
>> +<p class="p7">s.sendMsg(<span class="s4">\s_new</span>, <span
>> class="s4">\test</span>, a = s.nextNodeID, 0, 1);</p>
>> +<p class="p7">s.sendMsg(<span class="s4">\n_free</span>, a);</p>
>> +<p class="p5"><br></p>
>> +<p class="p5"><br></p>
>> +<p class="p6">// index with Amplitude of input, control freq of
>> SinOsc</p>
>> +<p class="p7"><span class="s3">SynthDef</span>(<span class="s4">
>> \test</span>, {<span class="s3">arg</span> inbus;</p>
>> +<p class="p7"><span class="Apple-tab-span"> </span><span
>> class="s3">var</span> env, point;</p>
>> +<p class="p7"><span class="Apple-tab-span"> </span>point = <span
>> class="s3">Amplitude</span>.ar(<span class="s3">In</span>.ar
>> (inbus), 0.01, 0.2);</p>
>> +<p class="p6"><span class="s5"><span class="Apple-tab-span"> </
>> span></span>// use offset so negative values of SinOsc will map
>> into the InterplEnv</p>
>> +<p class="p7"><span class="Apple-tab-span"> </span>env = <span
>> class="s3">InterplXYC</span>([[0, 330, <span class="s4">\exp</
>> span>], [0.5, 440, <span class="s4">\exp</span>], [1.0, 1760]]);</p>
>> +<p class="p7"><span class="Apple-tab-span"> </span><span
>> class="s3">Out</span>.ar(1, <span class="s3">SinOsc</span>.ar
>> (<span class="s3">IEnvGen</span>.kr(env, point), 0, 0.2))<span
>> class="Apple-converted-space"> </span></p>
>> +<p class="p7">}).load(s);</p>
>> +<p class="p5"><br></p>
>> +<p class="p7">s.sendMsg(<span class="s4">\s_new</span>, <span
>> class="s4">\test</span>, a = s.nextNodeID, 0, 1, <span class="s4">
>> \inbus</span>, s.options.numOutputBusChannels);</p>
>> +<p class="p7">s.sendMsg(<span class="s4">\n_free</span>, a);</p>
>> +</body>
>> +</html>
>>
>> Added: branches/universal/build/Help/Control/InterplEnv.htm
>> ===================================================================
>> --- branches/universal/build/Help/Control/InterplEnv.htm (rev 0)
>> +++ branches/universal/build/Help/Control/InterplEnv.htm
>> 2007-06-10 04:35:58 UTC (rev 6080)
>> @@ -0,0 +1,77 @@
>> +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://
>> www.w3.org/TR/html4/strict.dtd">
>> +<html>
>> +<head>
>> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
>> +<meta http-equiv="Content-Style-Type" content="text/css">
>> +<title></title>
>> +<meta name="Generator" content="Cocoa HTML Writer">
>> +<meta name="CocoaVersion" content="824.42">
>> +<style type="text/css">
>> +p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica}
>> +p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica;
>> min-height: 14.0px}
>> +p.p3 {margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Helvetica}
>> +p.p4 {margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Helvetica;
>> min-height: 17.0px}
>> +p.p5 {margin: 0.0px 0.0px 0.0px 56.0px; text-indent: -56.0px;
>> font: 12.0px Helvetica}
>> +p.p6 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Monaco; min-
>> height: 16.0px}
>> +p.p7 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px;
>> font: 12.0px Helvetica}
>> +p.p8 {margin: 0.0px 0.0px 0.0px 28.0px; text-indent: -28.0px;
>> font: 12.0px Helvetica}
>> +p.p9 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco}
>> +span.s1 {font: 18.0px Helvetica}
>> +span.s2 {font: 12.0px Helvetica}
>> +span.s3 {text-decoration: underline}
>> +span.s4 {color: #0000bf}
>> +span.Apple-tab-span {white-space:pre}
>> +</style>
>> +</head>
>> +<body>
>> +<p class="p1"><span class="s1"><b>InterplEnv<span class="Apple-
>> tab-span"> </span><span class="Apple-tab-span"> </span><span
>> class="Apple-tab-span"> </span><span class="Apple-tab-span"> </
>> span><span class="Apple-tab-span"> </span></b></span><b>envelope
>> specification</b></p>
>> +<p class="p2"><br></p>
>> +<p class="p1"><b>superclass: Object</b></p>
>> +<p class="p2"><br></p>
>> +<p class="p1">An InterplEnv is a specification for a segmented
>> envelope. InterplEnvs can be used both server-side, by an
>> <b>IEnvGen </b>within a SynthDef, and clientside, with methods
>> such as <b>at</b>. An InterplEnv can have any number of segments.
>> An InterplEnv can have several shapes for its segments.</p>
>> +<p class="p2"><br></p>
>> +<p class="p3"><b>Differences between InterplEnv and Env</b></p>
>> +<p class="p2"><br></p>
>> +<p class="p1">InterplEnvs do not have release or loop nodes.<span
>> class="Apple-converted-space"> </span>They are of a fixed
>> duration. Mostly, it is meant to be used with IEnvGen, where
>> 'times' are actually an index into the envelope curves that are
>> described.</p>
>> +<p class="p4"><b></b><br></p>
>> +<p class="p3"><b>Basic Creation</b></p>
>> +<p class="p2"><br></p>
>> +<p class="p1">*<b>new(levels, times, curves, offset = 0.0)</b></p>
>> +<p class="p2"><br></p>
>> +<p class="p1"><span class="Apple-tab-span"> </span>Create a new
>> envelope specification.</p>
>> +<p class="p1"><span class="Apple-tab-span"> </span><b>levels</b>
>> - an array of levels. The first level is the initial value of the
>> envelope.</p>
>> +<p class="p5"><span class="Apple-tab-span"> </span><b>times</b> -
>> an array of durations of segments in seconds. There should be one
>> fewer duration than there are levels.</p>
>> +<p class="p1"><span class="Apple-tab-span"> </span><b>curve</b> -
>> this parameter determines the shape of the envelope segments.</p>
>> +<p class="p1"><span class="Apple-tab-span"> </span>The possible
>> values are:</p>
>> +<p class="p1"><span class="Apple-tab-span"> </span><span
>> class="Apple-tab-span"> </span>'step' - flat segments</p>
>> +<p class="p1"><span class="Apple-tab-span"> </span><span
>> class="Apple-tab-span"> </span>'linear' - linear segments, the
>> default</p>
>> +<p class="p1"><span class="Apple-tab-span"> </span><span
>> class="Apple-tab-span"> </span>'exponential' - natural exponential
>> growth and decay. In this case, the levels must all be nonzero</p>
>> +<p class="p1"><span class="Apple-tab-span"> </span><span
>> class="Apple-tab-span"> </span><span class="Apple-tab-span"> </
>> span><span class="Apple-tab-span"> </span><span class="Apple-tab-
>> span"> </span>and the have the same sign.</p>
>> +<p class="p1"><span class="Apple-tab-span"> </span><span
>> class="Apple-tab-span"> </span>'sine' - sinusoidal S shaped
>> segments.</p>
>> +<p class="p1"><span class="Apple-tab-span"> </span><span
>> class="Apple-tab-span"> </span>'welch' - sinusoidal segments
>> shaped like the sides of a Welch window.</p>
>> +<p class="p1"><span class="Apple-tab-span"> </span><span
>> class="Apple-tab-span"> </span>a Float - a curvature value for all
>> segments.</p>
>> +<p class="p1"><span class="Apple-tab-span"> </span><span
>> class="Apple-tab-span"> </span>An Array of Floats - curvature
>> values for each segments.</p>
>> +<p class="p1"><b><span class="Apple-tab-span"> </span>offset</b>
>> - used to offset an envelope into negative starttimes.<span
>> class="Apple-converted-space"> </span></p>
>> +<p class="p2"><br></p>
>> +<p class="p3"><b>Instance Methods</b></p>
>> +<p class="p6"><span class="s2"><span class="Apple-tab-span"> </
>> span></span><span class="Apple-tab-span"> </span></p>
>> +<p class="p1"><b>plot(size)</b></p>
>> +<p class="p2"><br></p>
>> +<p class="p1"><span class="Apple-tab-span"> </span>Plot this
>> envelope's shape in a window.</p>
>> +<p class="p7"><span class="Apple-tab-span"> </span><b>size</b> -
>> The size of the plot. The default is 400.</p>
>> +<p class="p6"><span class="Apple-tab-span"> </span></p>
>> +<p class="p2"><span class="Apple-tab-span"> </span></p>
>> +<p class="p1"><b>asArray</b></p>
>> +<p class="p2"><br></p>
>> +<p class="p8"><span class="Apple-tab-span"> </span>Converts the
>> Env to an Array in a specially ordered format. This allows for Env
>> parameters to be settable arguments in a <b>[</b><b><span
>> class="s3">SynthDef</span></b><b>]</b>. See example above under
>> *<b>newClear</b>.</p>
>> +<p class="p2"><span class="Apple-tab-span"> </span></p>
>> +<p class="p3"><b>Client-side Access and Stream Support</b></p>
>> +<p class="p6"><br></p>
>> +<p class="p1"><b>at(time)</b></p>
>> +<p class="p2"><br></p>
>> +<p class="p1"><span class="Apple-tab-span"> </span>Returns the
>> value of the InterplEnv at <b>time</b>.</p>
>> +<p class="p2"><span class="Apple-tab-span"> </span></p>
>> +<p class="p9"><span class="s2"><span class="Apple-tab-span"> </
>> span><span class="Apple-tab-span"> </span></span><span
>> class="s4">InterplEnv</span>([0, 1, 0.707], [0.2, 1.3], [\lin,
>> \sin]).at(0.5);</p>
>> +<p class="p6"><span class="Apple-tab-span"> </span><span
>> class="Apple-tab-span"> </span><span class="Apple-tab-span"> </
>> span><span class="Apple-tab-span"> </span></p>
>> +</body>
>> +</html>
>>
>> Added: branches/universal/build/Help/Control/InterplPairs.htm
>> ===================================================================
>> --- branches/universal/build/Help/Control/InterplPairs.htm (rev 0)
>> +++ branches/universal/build/Help/Control/InterplPairs.htm
>> 2007-06-10 04:35:58 UTC (rev 6080)
>> @@ -0,0 +1,44 @@
>> +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://
>> www.w3.org/TR/html4/strict.dtd">
>> +<html>
>> +<head>
>> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
>> +<meta http-equiv="Content-Style-Type" content="text/css">
>> +<title></title>
>> +<meta name="Generator" content="Cocoa HTML Writer">
>> +<meta name="CocoaVersion" content="824.42">
>> +<style type="text/css">
>> +p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica}
>> +p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica;
>> min-height: 14.0px}
>> +p.p3 {margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Helvetica}
>> +p.p4 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco}
>> +p.p5 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; min-
>> height: 12.0px}
>> +span.s1 {font: 18.0px Helvetica}
>> +span.s2 {font: 12.0px Helvetica}
>> +span.Apple-tab-span {white-space:pre}
>> +</style>
>> +</head>
>> +<body>
>> +<p class="p1"><span class="s1"><b>InterplPairs<span class="Apple-
>> tab-span"> </span><span class="Apple-tab-span"> </span><span
>> class="Apple-tab-span"> </span><span class="Apple-tab-span"> </
>> span><span class="Apple-tab-span"> </span></b></span><b>envelope
>> specification</b></p>
>> +<p class="p2"><br></p>
>> +<p class="p1"><b>superclass: InterplEnv</b></p>
>> +<p class="p2"><br></p>
>> +<p class="p1">See InterplEnv Help for more info</p>
>> +<p class="p2"><br></p>
>> +<p class="p3"><b>Basic Creation</b></p>
>> +<p class="p2"><br></p>
>> +<p class="p1"><b>takes an array of [x, y] pairs and a curve value
>> for all break points</b></p>
>> +<p class="p1"><b>x values can be negative (for use in indexing
>> with negartive values or signals).</b></p>
>> +<p class="p2"><b></b><br></p>
>> +<p class="p2"><br></p>
>> +<p class="p1">*<b>new([[x0, y0], [x1, y1] ... [xn, yn]], curve)</
>> b></p>
>> +<p class="p2"><br></p>
>> +<p class="p4"><span class="s2"><span class="Apple-tab-span"> </
>> span></span>a = InterplPairs([[0, 1], [1, 2], [2, 0]], \sin);</p>
>> +<p class="p5"><span class="Apple-tab-span"> </span></p>
>> +<p class="p4"><span class="Apple-tab-span"> </span>a.plot;</p>
>> +<p class="p5"><span class="Apple-tab-span"> </span></p>
>> +<p class="p4"><span class="Apple-tab-span"> </span>a =
>> InterplPairs([[-1, 1], [0, 2], [1, 0]], \sin);</p>
>> +<p class="p4"><span class="Apple-tab-span"> </span>a.plot;<span
>> class="Apple-converted-space"> </span></p>
>> +<p class="p4"><span class="Apple-tab-span"> </span>a.at
>> (-0.5);<span class="Apple-converted-space"> </span></p>
>> +<p class="p4"><span class="Apple-tab-span"> </span>a.at(0.2);</p>
>> +</body>
>> +</html>
>>
>> Added: branches/universal/build/Help/Control/InterplXYC.htm
>> ===================================================================
>> --- branches/universal/build/Help/Control/InterplXYC.htm (rev 0)
>> +++ branches/universal/build/Help/Control/InterplXYC.htm
>> 2007-06-10 04:35:58 UTC (rev 6080)
>> @@ -0,0 +1,46 @@
>> +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://
>> www.w3.org/TR/html4/strict.dtd">
>> +<html>
>> +<head>
>> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
>> +<meta http-equiv="Content-Style-Type" content="text/css">
>> +<title></title>
>> +<meta name="Generator" content="Cocoa HTML Writer">
>> +<meta name="CocoaVersion" content="824.42">
>> +<style type="text/css">
>> +p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica}
>> +p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica;
>> min-height: 14.0px}
>> +p.p3 {margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Helvetica}
>> +p.p4 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco}
>> +p.p5 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; min-
>> height: 12.0px}
>> +span.s1 {font: 18.0px Helvetica}
>> +span.s2 {font: 12.0px Helvetica}
>> +span.s3 {color: #001ab6}
>> +span.s4 {color: #347019}
>> +span.Apple-tab-span {white-space:pre}
>> +</style>
>> +</head>
>> +<body>
>> +<p class="p1"><span class="s1"><b>InterplXYC<span class="Apple-
>> tab-span"> </span><span class="Apple-tab-span"> </span><span
>> class="Apple-tab-span"> </span><span class="Apple-tab-span"> </
>> span><span class="Apple-tab-span"> </span></b></span><b>envelope
>> specification</b></p>
>> +<p class="p2"><br></p>
>> +<p class="p1"><b>superclass: InterplEnv</b></p>
>> +<p class="p2"><br></p>
>> +<p class="p1">See InterplEnv Help for more info</p>
>> +<p class="p2"><br></p>
>> +<p class="p3"><b>Basic Creation</b></p>
>> +<p class="p2"><br></p>
>> +<p class="p1"><b>takes sets of x, y and curve values and returns
>> a new instance of InterplEnv.</b></p>
>> +<p class="p1"><b>x values can be negative (for use in indexing
>> with negartive values or signals).</b></p>
>> +<p class="p2"><br></p>
>> +<p class="p1">*<b>new([x0, y0, c0], [x1, y1, c1]...[xn, yn])</b></p>
>> +<p class="p2"><br></p>
>> +<p class="p4"><span class="s2"><span class="Apple-tab-span"> </
>> span></span>a = <span class="s3">InterplXYC</span>([0, 0, <span
>> class="s4">\lin</span>], [1, 2, <span class="s4">\sin</span>], [2,
>> 0]);</p>
>> +<p class="p5"><span class="Apple-tab-span"> </span></p>
>> +<p class="p4"><span class="Apple-tab-span"> </span>a.plot;</p>
>> +<p class="p5"><span class="Apple-tab-span"> </span></p>
>> +<p class="p4"><span class="Apple-tab-span"> </span>a = InterplXYC
>> ([[-1, 1, \sin], [0, 2, \lin], [1, 0]]);</p>
>> +<p class="p4"><span class="Apple-tab-span"> </span>a.plot;<span
>> class="Apple-converted-space"> </span></p>
>> +<p class="p4"><span class="Apple-tab-span"> </span>a.at
>> (-0.5);<span class="Apple-converted-space"> </span></p>
>> +<p class="p4"><span class="Apple-tab-span"> </span>a.at(0.2);</p>
>> +<p class="p2"><br></p>
>> +</body>
>> +</html>
>>
>>
>> This was sent by the SourceForge.net collaborative development
>> platform, the world's largest Open Source development site.
>> _______________________________________________
>> Sc-devel mailing list
>> Sc-devel at create.ucsb.edu
>> http://www.create.ucsb.edu/mailman/listinfo/sc-devel
>
>
> --
>
>
>
>
>
> .
> _______________________________________________
> Sc-devel mailing list
> Sc-devel at create.ucsb.edu
> http://www.create.ucsb.edu/mailman/listinfo/sc-devel
******************************************
Joshua D. Parmenter
http://www.realizedsound.net/josh/
“Every composer – at all times and in all cases – gives his own
interpretation of how modern society is structured: whether actively
or passively, consciously or unconsciously, he makes choices in this
regard. He may be conservative or he may subject himself to continual
renewal; or he may strive for a revolutionary, historical or social
palingenesis." - Luigi Nono
More information about the Sc-devel
mailing list