[Sc-devel] SF.net SVN: supercollider: [6080] branches/universal/build/Help/Control

Joshua Parmenter josh at realizedsound.net
Sun Jun 10 09:34:57 PDT 2007


On Jun 10, 2007, at 2:05 AM, Julian Rohrhuber wrote:

> Hi Josh,
>
> nice and useful ugen!

Thanks...
>
> 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);
> 		}
> 	}
>
>
The helpfile mentions that a new InterpEnv is returned, but I agree  
with you that this isn't how a class should behave now that I think  
about it. Here is part of the problem with the change above:

	a = InterplXYC([[-1, 1, \sin], [0, 2, \lin], [1, 0]]);
	a.postcs; // slots are definitely for InterplEnv, but it says XYC

I'll work on this a bit to make sure code isn't broken. Probably the  
answer is to have creation methods of InterplEnv for newXYC and  
newPairs that take the arguments that InterplXYC and InterplPairs  
takes... Then, remove the helpfiles and references in the helpfiles  
for InterplXYC and InterplPairs.

>
> //////////////
>
>
> 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

It allows this:

a = [1, 2, \sin, 50, 100, \lin];

a.flat.clump(3).flop

a.flop


where a single array of XY and curves are simply passed in. I don't  
mention anywhere that this can happen, so I think it can change (I  
have to look over some old code of mine though... this is from  
thinking about these envs like I would use them in CommonMusic and  
LISP).

>
> //////////////
>
> 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..)

I'll change it... makes sense (avoids creation of a new Object).

Thanks!

Josh

>
>
>
>
>> 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