[Sc-devel] SF.net SVN: supercollider: [6080]
branches/universal/build/Help/Control
joshpar at users.sourceforge.net
joshpar at users.sourceforge.net
Sat Jun 9 22:35:58 PDT 2007
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.
More information about the Sc-devel
mailing list