[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[sc-dev] SF.net SVN: supercollider:[8227] trunk
Revision: 8227
http://supercollider.svn.sourceforge.net/supercollider/?rev=8227&view=rev
Author: jrhb
Date: 2008-12-21 19:30:58 +0000 (Sun, 21 Dec 2008)
Log Message:
-----------
adding helpfiles for a number of classes
Modified Paths:
--------------
trunk/Headers/server/SC_Prototypes.h
Added Paths:
-----------
trunk/build/Help/Collections/Pair.html
trunk/build/Help/Scheduling/Semaphore.html
trunk/build/Help/Streams-Patterns-Events/Pbinop.html
trunk/build/Help/Streams-Patterns-Events/Pnaryop.html
trunk/build/Help/Streams-Patterns-Events/Punop.html
Modified: trunk/Headers/server/SC_Prototypes.h
===================================================================
--- trunk/Headers/server/SC_Prototypes.h 2008-12-21 08:55:24 UTC (rev 8226)
+++ trunk/Headers/server/SC_Prototypes.h 2008-12-21 19:30:58 UTC (rev 8227)
@@ -115,6 +115,8 @@
void Graph_SetControl(struct Graph* inGraph, int32 inHash, int32 *inName, uint32 inIndex, float inValue);
void Graph_MapControl(Graph* inGraph, uint32 inIndex, uint32 inBus);
void Graph_MapControl(Graph* inGraph, int32 inHash, int32 *inName, uint32 inIndex, uint32 inBus);
+void Graph_MapAudioControl(Graph* inGraph, uint32 inIndex, uint32 inBus);
+void Graph_MapAudioControl(Graph* inGraph, int32 inHash, int32 *inName, uint32 inIndex, uint32 inBus);
void Graph_Trace(Graph *inGraph);
void Graph_RemoveID(World* inWorld, Graph *inGraph);
Added: trunk/build/Help/Collections/Pair.html
===================================================================
--- trunk/build/Help/Collections/Pair.html (rev 0)
+++ trunk/build/Help/Collections/Pair.html 2008-12-21 19:30:58 UTC (rev 8227)
@@ -0,0 +1,59 @@
+<!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="949.43">
+<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: 12.0px Helvetica; color: #0021e7}
+p.p4 {margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Helvetica}
+p.p5 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #bf0000; 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; color: #000000; min-height: 12.0px}
+p.p8 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #000000}
+span.s1 {font: 18.0px Helvetica}
+span.s2 {color: #000000}
+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>Pair</b></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>LISP-like two element cells</b></p>
+<p class="p2"><br></p>
+<p class="p1"><b>superclass: Collection</b></p>
+<p class="p2"><b></b><br></p>
+<p class="p3"><span class="s2"><b>(implementation incomplete! Use </b><a href="../Language/J_concepts_in_SC.html"><span class="s3">J Concepts In SC</span></a></span><span class="s3"> </span>for similar functionality<span class="s2">)</span></p>
+<p class="p2"><br></p>
+<p class="p2"><br></p>
+<p class="p4"><b>Instance Methods</b></p>
+<p class="p2"><br></p>
+<p class="p1">Most methods are inherited from the superclasses.</p>
+<p class="p2"><br></p>
+<p class="p1"><b>size</b></p>
+<p class="p2"><br></p>
+<p class="p1"><b>depth</b></p>
+<p class="p2"><br></p>
+<p class="p1"><b>do(function)</b></p>
+<p class="p2"><br></p>
+<p class="p1"><b>traverse(function)</b></p>
+<p class="p2"><br></p>
+<p class="p1"><b>depthFirstPreOrderTraversal(function)</b></p>
+<p class="p2"><br></p>
+<p class="p1"><b>depthFirstPostOrderTraversal(function)</b></p>
+<p class="p2"><br></p>
+<p class="p5"><br></p>
+<p class="p6">// example</p>
+<p class="p7"><br></p>
+<p class="p8">a = <span class="s4">Pair</span>(<span class="s4">Pair</span>(<span class="s4">Pair</span>(1, 2), 4), <span class="s4">Pair</span>(5, 6));</p>
+<p class="p7"><br></p>
+<p class="p8">a.size;</p>
+<p class="p8">a.depth;</p>
+<p class="p8">a.do { <span class="s4">|x|</span> x.postln };</p>
+<p class="p8">a.traverse { <span class="s4">|x|</span> x.postln };</p>
+</body>
+</html>
Added: trunk/build/Help/Scheduling/Semaphore.html
===================================================================
--- trunk/build/Help/Scheduling/Semaphore.html (rev 0)
+++ trunk/build/Help/Scheduling/Semaphore.html 2008-12-21 19:30:58 UTC (rev 8227)
@@ -0,0 +1,175 @@
+<!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="949.43">
+<style type="text/css">
+p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; color: #000000}
+p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; color: #000000; min-height: 14.0px}
+p.p3 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #000000; min-height: 12.0px}
+p.p4 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #bf0000}
+p.p5 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #000000}
+p.p6 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #0000bf}
+p.p7 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #606060}
+span.s1 {font: 18.0px Helvetica}
+span.s2 {font: 9.0px Monaco}
+span.s3 {color: #000000}
+span.s4 {color: #bf0000}
+span.s5 {color: #0000bf}
+span.s6 {color: #606060}
+span.Apple-tab-span {white-space:pre}
+</style>
+</head>
+<body>
+<p class="p1"><span class="s1"><b>Semaphore</b></span><span class="s2"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></span><b>control parallel execution of threads</b></p>
+<p class="p2"><br></p>
+<p class="p2"><br></p>
+<p class="p1">superclass: Object</p>
+<p class="p2"><br></p>
+<p class="p2"><br></p>
+<p class="p1"><b><span class="Apple-tab-span"> </span>*new(count)<span class="Apple-tab-span"> </span></b>create a new instance, set the maximum number of running threads (default: 1).</p>
+<p class="p2"><b><span class="Apple-tab-span"> </span></b></p>
+<p class="p1"><b><span class="Apple-tab-span"> </span>count<span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></b>determines the number of running threads</p>
+<p class="p2"><b><span class="Apple-tab-span"> </span></b></p>
+<p class="p1"><b><span class="Apple-tab-span"> </span>clear<span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></b>remove any reference to threads, but do not rescedule any pending ones.</p>
+<p class="p2"><span class="Apple-tab-span"> </span></p>
+<p class="p1"><b><span class="Apple-tab-span"> </span>wait<span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></b>stop current thread if already too many are running, otherwise continue.</p>
+<p class="p2"><b><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></b></p>
+<p class="p1"><b><span class="Apple-tab-span"> </span>signal<span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></b>unblock the semaphore, reschedule next pending thread.</p>
+<p class="p2"><b><span class="Apple-tab-span"> </span></b></p>
+<p class="p3"><br></p>
+<p class="p3"><br></p>
+<p class="p3"><br></p>
+<p class="p4">// example</p>
+<p class="p3"><br></p>
+<p class="p3"><br></p>
+<p class="p4">// allow only one thread</p>
+<p class="p5">(</p>
+<p class="p6"><span class="s3">c = </span>Semaphore<span class="s3">(1);</span></p>
+<p class="p5">fork {<span class="Apple-converted-space"> </span></p>
+<p class="p5"><span class="Apple-tab-span"> </span>c.wait;<span class="Apple-converted-space"> </span></p>
+<p class="p7"><span class="s3"><span class="Apple-tab-span"> </span></span>"thread 1> now I am doing something for 10 seconds. Block the semaphore meanwhile."<span class="s3">.postln;<span class="Apple-converted-space"> </span></span></p>
+<p class="p5"><span class="Apple-tab-span"> </span>10.wait;</p>
+<p class="p5"><span class="Apple-tab-span"> </span>c.signal;</p>
+<p class="p7"><span class="s3"><span class="Apple-tab-span"> </span></span>"thread 1> ok, done. Release the semaphore."<span class="s3">.postln;<span class="Apple-converted-space"> </span></span></p>
+<p class="p5">};</p>
+<p class="p5">fork {</p>
+<p class="p5"><span class="Apple-tab-span"> </span>3.0.rand.wait;</p>
+<p class="p7"><span class="s3"><span class="Apple-tab-span"> </span></span>"thread 2> I would like to go on, if I may."<span class="s3">.postln;</span></p>
+<p class="p5"><span class="Apple-tab-span"> </span>c.wait; <span class="s4">// may I?</span></p>
+<p class="p7"><span class="s3"><span class="Apple-tab-span"> </span></span>"thread 2> this took until the other thread has released the semaphore. "</p>
+<p class="p7"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>"Blocking for 4 seconds."<span class="s3">.postln;</span></p>
+<p class="p5"><span class="Apple-tab-span"> </span>4.wait;</p>
+<p class="p7"><span class="s3"><span class="Apple-tab-span"> </span></span>"thread 2> ok, done. Releasing the semaphore"<span class="s3">.postln;</span></p>
+<p class="p5"><span class="Apple-tab-span"> </span>c.signal;</p>
+<p class="p5">};</p>
+<p class="p5">fork {</p>
+<p class="p5"><span class="Apple-tab-span"> </span>4.wait;</p>
+<p class="p7"><span class="s3"><span class="Apple-tab-span"> </span></span>"thread 3> I, too, would like to go on, if I may."<span class="s3">.postln;</span></p>
+<p class="p5"><span class="Apple-tab-span"> </span>c.wait; <span class="s4">// may I?</span></p>
+<p class="p7"><span class="s3"><span class="Apple-tab-span"> </span></span>"thread 3> this took until both other threads had released the semaphore."<span class="s3">.postln;</span></p>
+<p class="p5"><span class="Apple-tab-span"> </span>c.signal;</p>
+<p class="p5">};</p>
+<p class="p5">)</p>
+<p class="p3"><br></p>
+<p class="p3"><br></p>
+<p class="p3"><br></p>
+<p class="p4">// allow two threads at a time.</p>
+<p class="p5">(</p>
+<p class="p6"><span class="s3">c = </span>Semaphore<span class="s3">(2);</span></p>
+<p class="p5">fork {<span class="Apple-converted-space"> </span></p>
+<p class="p5"><span class="Apple-tab-span"> </span>c.wait;<span class="Apple-converted-space"> </span></p>
+<p class="p7"><span class="s3"><span class="Apple-tab-span"> </span></span>"thread 1> now I am doing something for 20 seconds. Block the semaphore."<span class="s3">.postln;<span class="Apple-converted-space"> </span></span></p>
+<p class="p5"><span class="Apple-tab-span"> </span>10.wait;</p>
+<p class="p7"><span class="s3"><span class="Apple-tab-span"> </span></span>"thread 1> ok, done. Releasing the semaphore"<span class="s3">.postln;</span></p>
+<p class="p5"><span class="Apple-tab-span"> </span>c.signal;</p>
+<p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-converted-space"> </span></p>
+<p class="p5">};</p>
+<p class="p5">fork {</p>
+<p class="p5"><span class="Apple-tab-span"> </span>rrand(3.0, 5.0).wait;</p>
+<p class="p7"><span class="s3"><span class="Apple-tab-span"> </span></span>"thread 2> I would like to go on, if I may."<span class="s3">.postln;</span></p>
+<p class="p7"><span class="s3"><span class="Apple-tab-span"> </span>if(c.count <= 0) { </span>"thread 3> ok, then I wait ..."<span class="s3">.postln };</span></p>
+<p class="p5"><span class="Apple-tab-span"> </span>c.wait; <span class="s4">// may I?</span></p>
+<p class="p7"><span class="s3"><span class="Apple-tab-span"> </span></span>"thread 1> ok, going ahead."<span class="s3">.postln;</span></p>
+<p class="p5"><span class="Apple-tab-span"> </span>17.wait;</p>
+<p class="p7"><span class="s3"><span class="Apple-tab-span"> </span></span>"thread 2> ok, done. Releasing the semaphore"<span class="s3">.postln;</span></p>
+<p class="p5"><span class="Apple-tab-span"> </span>c.signal;</p>
+<p class="p5">};</p>
+<p class="p5">fork {</p>
+<p class="p5"><span class="Apple-tab-span"> </span>6.wait;</p>
+<p class="p7"><span class="s3"><span class="Apple-tab-span"> </span></span>"thread 3> I, too, would like to go on, if I may."<span class="s3">.postln;</span></p>
+<p class="p7"><span class="s3"><span class="Apple-tab-span"> </span>if(c.count <= 0) { </span>"thread 3> ok, then I wait ..."<span class="s3">.postln };</span></p>
+<p class="p5"><span class="Apple-tab-span"> </span>c.wait; <span class="s4">// may I?</span></p>
+<p class="p7"><span class="s3"><span class="Apple-tab-span"> </span></span>"thread 3> ok, this took until the first thread had released the semaphore. "</p>
+<p class="p7"><span class="s3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></span>"Ok, doing something for 4 seconds. Block the semaphore"<span class="s3">.postln;</span></p>
+<p class="p5"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>4.wait;</p>
+<p class="p7"><span class="s3"><span class="Apple-tab-span"> </span></span>"Releasing the semaphore."<span class="s3">.postln;</span></p>
+<p class="p5"><span class="Apple-tab-span"> </span>c.signal;</p>
+<p class="p3"><span class="Apple-tab-span"> </span></p>
+<p class="p5">};</p>
+<p class="p5">fork {</p>
+<p class="p5"><span class="Apple-tab-span"> </span>7.wait;</p>
+<p class="p7"><span class="s3"><span class="Apple-tab-span"> </span></span>"thread 4> Me, the fourth one, would like to go on, if I may."<span class="s3">.postln;</span></p>
+<p class="p7"><span class="s3"><span class="Apple-tab-span"> </span>if(c.count <= 0) { </span>"thread 4> ok, then I wait ..."<span class="s3">.postln };</span></p>
+<p class="p5"><span class="Apple-tab-span"> </span>c.wait; <span class="s4">// may I?</span></p>
+<p class="p7"><span class="s3"><span class="Apple-tab-span"> </span></span>"thread 4> ok, this took until the third thread had released the semaphore. "</p>
+<p class="p7"><span class="s3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></span>"Ok, doing something for 3 seconds. Block the semaphore"<span class="s3">.postln;</span></p>
+<p class="p5"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>3.wait;</p>
+<p class="p7"><span class="s3"><span class="Apple-tab-span"> </span></span>"Releasing the semaphore."<span class="s3">.postln;</span></p>
+<p class="p5"><span class="Apple-tab-span"> </span>c.signal;</p>
+<p class="p5">};</p>
+<p class="p3"><br></p>
+<p class="p5">)</p>
+<p class="p3"><br></p>
+<p class="p3"><br></p>
+<p class="p4">// grant exclusive access to data to only one thread</p>
+<p class="p4">// there should never be mixed values in the data array</p>
+<p class="p3"><br></p>
+<p class="p5">(</p>
+<p class="p5"><span class="s5">var</span> data, useAndModify;</p>
+<p class="p3"><br></p>
+<p class="p5">data = [1, 2, 3];</p>
+<p class="p6"><span class="s3">c = </span>Semaphore<span class="s3">(1);</span></p>
+<p class="p4">// c = Semaphore(2); use this to test how it would behave without exclusive access.</p>
+<p class="p5">useAndModify = { <span class="s5">|newData, who|</span></p>
+<p class="p7"><span class="s3"><span class="Apple-tab-span"> </span>postln(who + </span>"trying to get blocking access."<span class="s3">);</span></p>
+<p class="p5"><span class="Apple-tab-span"> </span>if(c.count <= 0) { who + <span class="s6">"ok, then I wait ..."</span>.postln };</p>
+<p class="p4"><span class="s3"><span class="Apple-tab-span"> </span>c.wait; </span>// may I access? if not, I wait. if yes, disallow others.</p>
+<p class="p5"><span class="Apple-tab-span"> </span><span class="s6">"\n"</span>.post;</p>
+<p class="p5"><span class="Apple-tab-span"> </span>(who + <span class="s6">"continuing..."</span>).postln;</p>
+<p class="p5"><span class="Apple-tab-span"> </span>data.do({ <span class="s5">|x|</span></p>
+<p class="p5"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>0.1.wait;</p>
+<p class="p5"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>postln(who + x);</p>
+<p class="p3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></p>
+<p class="p5"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>});</p>
+<p class="p5"><span class="Apple-tab-span"> </span><span class="s6">"\n"</span>.post;</p>
+<p class="p5"><span class="Apple-tab-span"> </span>newData.do { <span class="s5">|x, i|</span> data[i] = x };</p>
+<p class="p5"><span class="Apple-tab-span"> </span>postln(who + <span class="s6">"rewriting data to:"</span> + newData);</p>
+<p class="p5"><span class="Apple-tab-span"> </span>postln(who + <span class="s6">"releasing"</span>);</p>
+<p class="p4"><span class="s3"><span class="Apple-tab-span"> </span>c.signal; </span>// allow others access again</p>
+<p class="p5">};</p>
+<p class="p3"><br></p>
+<p class="p4">// e.g. set the values to integers</p>
+<p class="p6"><span class="s3">u = </span>Routine<span class="s3"> {</span></p>
+<p class="p5"><span class="Apple-tab-span"> </span><span class="s5">inf</span>.do { <span class="s5">|i|</span></p>
+<p class="p5"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>useAndModify.value([100, 200, 300], <span class="s6">"thread 1>"</span>);</p>
+<p class="p5"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>rrand(1, 3).wait;</p>
+<p class="p5"><span class="Apple-tab-span"> </span>}</p>
+<p class="p5">};</p>
+<p class="p3"><br></p>
+<p class="p4">// e.g. set the values to floats</p>
+<p class="p5">k =<span class="Apple-converted-space"> </span><span class="s5">Routine</span> {</p>
+<p class="p5"><span class="Apple-tab-span"> </span>0.5.wait;</p>
+<p class="p5"><span class="Apple-tab-span"> </span><span class="s5">inf</span>.do { <span class="s5">|i|</span></p>
+<p class="p5"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>useAndModify.value([pi, 0.5pi, 2pi], <span class="s6">"thread 2>"</span>);</p>
+<p class="p5"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>rrand(1, 5).wait;</p>
+<p class="p5"><span class="Apple-tab-span"> </span>}</p>
+<p class="p5">};</p>
+<p class="p5">u.play;</p>
+<p class="p5">k.play;</p>
+<p class="p5">);</p>
+</body>
+</html>
Added: trunk/build/Help/Streams-Patterns-Events/Pbinop.html
===================================================================
--- trunk/build/Help/Streams-Patterns-Events/Pbinop.html (rev 0)
+++ trunk/build/Help/Streams-Patterns-Events/Pbinop.html 2008-12-21 19:30:58 UTC (rev 8227)
@@ -0,0 +1,129 @@
+<!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="949.43">
+<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: 12.0px Helvetica; color: #0021e7}
+p.p4 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; min-height: 12.0px}
+p.p5 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #bf0000}
+p.p6 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #000000; min-height: 12.0px}
+p.p7 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #000000}
+p.p8 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #007300}
+p.p9 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #0000bf}
+span.s1 {font: 18.0px Helvetica}
+span.s2 {color: #000000}
+span.s3 {text-decoration: underline}
+span.s4 {color: #0000ff}
+span.s5 {color: #0000bf}
+span.s6 {color: #007300}
+span.Apple-tab-span {white-space:pre}
+</style>
+</head>
+<body>
+<p class="p1"><span class="s1"><b>Pbinop<span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></b></span><b>binary operator pattern</b></p>
+<p class="p2"><br></p>
+<p class="p1">superclass: Pattern</p>
+<p class="p2"><br></p>
+<p class="p1"><b>Pbinop(operator, a, b)</b></p>
+<p class="p2"><br></p>
+<p class="p1">Returns a stream that applies the binary operator to the stream values of the receiver</p>
+<p class="p1">Usually, this is the result of applying a binary operator (i.e. a method with one argument) to a pattern.</p>
+<p class="p2"><br></p>
+<p class="p1"><b>operator </b>- operator to be applied</p>
+<p class="p1"><b>a</b> - a pattern (or compatible pattern input)</p>
+<p class="p1"><b>b</b> -<span class="Apple-converted-space"> </span>a pattern (or compatible pattern input)</p>
+<p class="p2"><br></p>
+<p class="p1">examples of binary operators are: +, -, /, *, min, max, hypot ...</p>
+<p class="p2"><br></p>
+<p class="p3"><span class="s2"><b>See also: </b><a href="Pnaryop.html"><span class="s3">Pnaryop</span></a>, <a href="Punop.html"><span class="s4">Punop</span></a>, <a href="../Core/BinaryOpFunction.html"><span class="s3">BinaryOpFunction</span></a></span></p>
+<p class="p2"><br></p>
+<p class="p4"><br></p>
+<p class="p5">// example</p>
+<p class="p6"><br></p>
+<p class="p7">(</p>
+<p class="p7"><span class="s5">var</span> a;</p>
+<p class="p7">a = <span class="s5">Pbinop</span>(<span class="s6">\hypot</span>, <span class="s5">Pseries</span>(0, 1, 12), <span class="s5">Pseries</span>(3, -1, 12));</p>
+<p class="p7">a.asStream.all;</p>
+<p class="p7">)</p>
+<p class="p6"><br></p>
+<p class="p5">// this is the same as:</p>
+<p class="p7">(</p>
+<p class="p7"><span class="s5">var</span> a;</p>
+<p class="p7">a = <span class="s5">Pseries</span>(0, 1, 12).hypot(<span class="s5">Pseries</span>(3, -1, 12));</p>
+<p class="p7">a.asStream.all;</p>
+<p class="p7">)</p>
+<p class="p6"><br></p>
+<p class="p5">// also written as:</p>
+<p class="p7">(</p>
+<p class="p7"><span class="s5">var</span> a;</p>
+<p class="p7">a = <span class="s5">Pseries</span>(0, 1, 12) hypot: <span class="s5">Pseries</span>(3, -1, 12);</p>
+<p class="p7">a.asStream.all;</p>
+<p class="p7">)</p>
+<p class="p6"><br></p>
+<p class="p5">// some common cases:</p>
+<p class="p7"><span class="s5">Pseq</span>([1, 2, 3]) + 2;</p>
+<p class="p7"><span class="s5">Pseq</span>([1, 2, 3]) / <span class="s5">Pseq</span>([3, 4, 5, 6]);</p>
+<p class="p7">max(<span class="s5">Pwhite</span>(-10, 10, <span class="s5">inf</span>), <span class="s5">Pseq</span>([0, 2, 3, 4]));</p>
+<p class="p6"><br></p>
+<p class="p5">// sound example</p>
+<p class="p7">(</p>
+<p class="p8"><span class="s5">SynthDef</span><span class="s2">(</span>\help_sinegrain<span class="s2">,<span class="Apple-converted-space"> </span></span></p>
+<p class="p7"><span class="Apple-tab-span"> </span>{ <span class="s5">arg</span> out=0, freq=440, sustain=0.05, amp=0.1;</p>
+<p class="p7"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s5">var</span> env;</p>
+<p class="p7"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>env = <span class="s5">EnvGen</span>.kr(<span class="s5">Env</span>.perc(0.01, sustain, 0.2, amp), doneAction:2);</p>
+<p class="p7"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s5">Out</span>.ar(out, <span class="s5">SinOsc</span>.ar(freq, 0, env))</p>
+<p class="p7"><span class="Apple-tab-span"> </span>}).store;</p>
+<p class="p7">)</p>
+<p class="p6"><br></p>
+<p class="p6"><br></p>
+<p class="p7">(</p>
+<p class="p7"><span class="s5">var</span> a;</p>
+<p class="p7">a = <span class="s5">Pn</span>(<span class="s5">Pbinop</span>(<span class="s6">\hypot</span>, <span class="s5">Pseries</span>(0, 1, 34), <span class="s5">Pseries</span>(3, -1, 34)), <span class="s5">inf</span>).asStream;</p>
+<p class="p7">{</p>
+<p class="p7"><span class="Apple-tab-span"> </span>a.do { <span class="s5">|val|</span></p>
+<p class="p7"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s5">Synth</span>(<span class="s6">\help_sinegrain</span>, [<span class="s6">\freq</span>, a * 200 + 300].postln);</p>
+<p class="p7"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>0.05.wait;</p>
+<p class="p7"><span class="Apple-tab-span"> </span>}</p>
+<p class="p7">}.fork;</p>
+<p class="p7">)</p>
+<p class="p6"><br></p>
+<p class="p7">(</p>
+<p class="p9">Pbind<span class="s2">(</span></p>
+<p class="p7"><span class="Apple-tab-span"> </span><span class="s6">\dur</span>, 0.01,</p>
+<p class="p8"><span class="s2"><span class="Apple-tab-span"> </span></span>\instrument<span class="s2">, </span>\help_sinegrain<span class="s2">,</span></p>
+<p class="p7"><span class="Apple-tab-span"> </span><span class="s6">\note</span>, <span class="s5">Pn</span>(<span class="s5">Pbinop</span>(<span class="s6">\hypot</span>, <span class="s5">Pwhite</span>(0, 12, 13), <span class="s5">Pseries</span>(3, -1, 12)))</p>
+<p class="p7">).play;</p>
+<p class="p7">)</p>
+<p class="p6"><br></p>
+<p class="p6"><br></p>
+<p class="p6"><br></p>
+<p class="p5">// these are the same as:</p>
+<p class="p6"><br></p>
+<p class="p7">(</p>
+<p class="p7"><span class="s5">var</span> a;</p>
+<p class="p7">a = <span class="s5">Pn</span>(<span class="s5">Pseries</span>(0, 1, 34) hypot: <span class="s5">Pseries</span>(3, -1, 34), <span class="s5">inf</span>).asStream;</p>
+<p class="p7">{</p>
+<p class="p7"><span class="Apple-tab-span"> </span>a.do { <span class="s5">|val|</span></p>
+<p class="p7"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s5">Synth</span>(<span class="s6">\help_sinegrain</span>, [<span class="s6">\freq</span>, a * 200 + 300].postln);</p>
+<p class="p7"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>0.05.wait;</p>
+<p class="p7"><span class="Apple-tab-span"> </span>}</p>
+<p class="p7">}.fork;</p>
+<p class="p7">)</p>
+<p class="p6"><br></p>
+<p class="p6"><br></p>
+<p class="p7">(</p>
+<p class="p9">Pbind<span class="s2">(</span></p>
+<p class="p7"><span class="Apple-tab-span"> </span><span class="s6">\dur</span>, 0.01,</p>
+<p class="p8"><span class="s2"><span class="Apple-tab-span"> </span></span>\instrument<span class="s2">, </span>\help_sinegrain<span class="s2">,</span></p>
+<p class="p7"><span class="Apple-tab-span"> </span><span class="s6">\note</span>, <span class="s5">Pn</span>(<span class="s5">Pwhite</span>(0, 12, 13) hypot: <span class="s5">Pseries</span>(3, -1, 12))</p>
+<p class="p7">).play;</p>
+<p class="p7">)</p>
+<p class="p6"><br></p>
+</body>
+</html>
Added: trunk/build/Help/Streams-Patterns-Events/Pnaryop.html
===================================================================
--- trunk/build/Help/Streams-Patterns-Events/Pnaryop.html (rev 0)
+++ trunk/build/Help/Streams-Patterns-Events/Pnaryop.html 2008-12-21 19:30:58 UTC (rev 8227)
@@ -0,0 +1,130 @@
+<!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="949.43">
+<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: 9.0px Monaco; color: #000000; min-height: 12.0px}
+p.p4 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #bf0000}
+p.p5 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #000000}
+p.p6 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #007300}
+p.p7 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #0000bf}
+span.s1 {font: 18.0px Helvetica}
+span.s2 {color: #0000ff}
+span.s3 {color: #0024f8}
+span.s4 {color: #0000bf}
+span.s5 {color: #007300}
+span.s6 {color: #000000}
+span.Apple-tab-span {white-space:pre}
+</style>
+</head>
+<body>
+<p class="p1"><span class="s1"><b>Pnaryop<span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></b></span><b>n-ary operator pattern</b></p>
+<p class="p2"><br></p>
+<p class="p1">superclass: Pattern</p>
+<p class="p2"><br></p>
+<p class="p1"><b>Pnaryop(operator, a, arglist)</b></p>
+<p class="p2"><br></p>
+<p class="p1">Returns a stream that applies the n-ary operator to the stream values of the receiver, taking n-1 streams as arguments. Usually, this is the result of applying an n-ary operator (i.e. a method with more than one argument) to a pattern.</p>
+<p class="p2"><br></p>
+<p class="p1"><b>operator </b>- operator to be applied</p>
+<p class="p1"><b>a</b> - a pattern (or compatible pattern input)</p>
+<p class="p1"><b>arglist</b> - a list of patterns (or compatible pattern inputs)</p>
+<p class="p2"><br></p>
+<p class="p1">examples of n-ary operators are: blend, linlin, linexp, explin, expexp, clip, fold, wrap.</p>
+<p class="p2"><br></p>
+<p class="p1"><b>See also: </b><a href="Pbinop.html"><span class="s2">Pbinop</span></a>, <a href="Punop.html"><span class="s2">Punop</span></a>, <a href="../Core/NAryOpFunction.html"><span class="s3">NAryOpFunction</span></a></p>
+<p class="p2"><br></p>
+<p class="p3"><br></p>
+<p class="p4">// example</p>
+<p class="p3"><br></p>
+<p class="p5">(</p>
+<p class="p5"><span class="s4">var</span> a;</p>
+<p class="p5">a = <span class="s4">Pnaryop</span>(<span class="s5">\wrap</span>, <span class="s4">Pseries</span>(0, 1, 12), [3, 7]);</p>
+<p class="p5">a.asStream.all;</p>
+<p class="p5">)</p>
+<p class="p3"><br></p>
+<p class="p4">// this is the same as:</p>
+<p class="p5">(</p>
+<p class="p5"><span class="s4">var</span> a;</p>
+<p class="p5">a = <span class="s4">Pseries</span>(0, 1, 12).wrap(3, 7);</p>
+<p class="p5">a.asStream.all;</p>
+<p class="p5">)</p>
+<p class="p3"><br></p>
+<p class="p4">// the scale argument can also be a pattern:</p>
+<p class="p3"><br></p>
+<p class="p5">(</p>
+<p class="p5"><span class="s4">var</span> a;</p>
+<p class="p5">a = <span class="s4">Pnaryop</span>(<span class="s5">\wrap</span>, <span class="s4">Pseries</span>(0, 1, 12), [<span class="s4">Pseq</span>([3, 4, 5], <span class="s4">inf</span>), <span class="s4">Pseq</span>([9, 7], <span class="s4">inf</span>)]);</p>
+<p class="p5">a.asStream.all;</p>
+<p class="p5">)</p>
+<p class="p3"><br></p>
+<p class="p3"><br></p>
+<p class="p4">// common cases:</p>
+<p class="p5"><span class="s4">Pwhite</span>(0, 1, <span class="s4">inf</span>).linexp(0, 1, 200, 1000);</p>
+<p class="p5"><span class="s4">Pwhite</span>(0, 1, <span class="s4">inf</span>).degreeToKey([0, 1, 3, 5, 7, 9, 11], 10);</p>
+<p class="p5">blend(<span class="s4">Pseq</span>([1, 2, 3], <span class="s4">inf</span>), <span class="s4">Pseq</span>([3, 2, 1, 0], <span class="s4">inf</span>), <span class="s4">Pseries</span>(0, 0.01, <span class="s4">inf</span>));<span class="Apple-converted-space"> </span></p>
+<p class="p3"><br></p>
+<p class="p3"><br></p>
+<p class="p4">// sound example</p>
+<p class="p5">(</p>
+<p class="p6"><span class="s4">SynthDef</span><span class="s6">(</span>\help_sinegrain<span class="s6">,<span class="Apple-converted-space"> </span></span></p>
+<p class="p5"><span class="Apple-tab-span"> </span>{ <span class="s4">arg</span> out=0, freq=440, sustain=0.05, amp=0.1;</p>
+<p class="p5"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s4">var</span> env;</p>
+<p class="p5"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>env = <span class="s4">EnvGen</span>.kr(<span class="s4">Env</span>.perc(0.01, sustain, 0.2, amp), doneAction:2);</p>
+<p class="p5"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s4">Out</span>.ar(out, <span class="s4">SinOsc</span>.ar(freq, 0, env))</p>
+<p class="p5"><span class="Apple-tab-span"> </span>}).store;</p>
+<p class="p5">)</p>
+<p class="p3"><br></p>
+<p class="p3"><br></p>
+<p class="p5">(</p>
+<p class="p5"><span class="s4">var</span> a;</p>
+<p class="p5">a = <span class="s4">Pnaryop</span>(<span class="s5">\wrap</span>, <span class="s4">Pseries</span>(0, 1, 12), [3, 7]).asStream;</p>
+<p class="p5">{</p>
+<p class="p5"><span class="Apple-tab-span"> </span>a.do { <span class="s4">|val|</span></p>
+<p class="p5"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s4">Synth</span>(<span class="s5">\help_sinegrain</span>, [<span class="s5">\freq</span>, (val + 72) .midicps.postln]);</p>
+<p class="p5"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>0.5.wait;</p>
+<p class="p5"><span class="Apple-tab-span"> </span>}</p>
+<p class="p5">}.fork;</p>
+<p class="p5">)</p>
+<p class="p3"><br></p>
+<p class="p5">(</p>
+<p class="p7">Pbind<span class="s6">(</span></p>
+<p class="p5"><span class="Apple-tab-span"> </span><span class="s5">\dur</span>, 0.1,</p>
+<p class="p6"><span class="s6"><span class="Apple-tab-span"> </span></span>\instrument<span class="s6">, </span>\help_sinegrain<span class="s6">,</span></p>
+<p class="p5"><span class="Apple-tab-span"> </span><span class="s5">\note</span>, <span class="s4">Pnaryop</span>(<span class="s5">\wrap</span>, <span class="s4">Pseries</span>(0, 1, 12), [3, 7]);</p>
+<p class="p3"><br></p>
+<p class="p5">).play;</p>
+<p class="p5">)</p>
+<p class="p3"><br></p>
+<p class="p3"><br></p>
+<p class="p3"><br></p>
+<p class="p4">// these are the same as:</p>
+<p class="p3"><br></p>
+<p class="p5">(</p>
+<p class="p5"><span class="s4">var</span> a;</p>
+<p class="p5">a = <span class="s4">Pseries</span>(0, 1, 12).wrap(3, 7).asStream;</p>
+<p class="p5">{</p>
+<p class="p5"><span class="Apple-tab-span"> </span>a.do { <span class="s4">|val|</span></p>
+<p class="p5"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s4">Synth</span>(<span class="s5">\help_sinegrain</span>, [<span class="s5">\freq</span>, (val + 72) .midicps.postln]);</p>
+<p class="p5"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>0.5.wait;</p>
+<p class="p5"><span class="Apple-tab-span"> </span>}</p>
+<p class="p5">}.fork;</p>
+<p class="p5">)</p>
+<p class="p3"><br></p>
+<p class="p5">(</p>
+<p class="p7">Pbind<span class="s6">(</span></p>
+<p class="p5"><span class="Apple-tab-span"> </span><span class="s5">\dur</span>, 0.1,</p>
+<p class="p6"><span class="s6"><span class="Apple-tab-span"> </span></span>\instrument<span class="s6">, </span>\help_sinegrain<span class="s6">,</span></p>
+<p class="p5"><span class="Apple-tab-span"> </span><span class="s5">\note</span>, <span class="s4">Pwhite</span>(0, 12, <span class="s4">inf</span>).wrap(3, 7);</p>
+<p class="p5">).play;</p>
+<p class="p5">)</p>
+<p class="p3"><br></p>
+<p class="p3"><br></p>
+</body>
+</html>
Added: trunk/build/Help/Streams-Patterns-Events/Punop.html
===================================================================
--- trunk/build/Help/Streams-Patterns-Events/Punop.html (rev 0)
+++ trunk/build/Help/Streams-Patterns-Events/Punop.html 2008-12-21 19:30:58 UTC (rev 8227)
@@ -0,0 +1,122 @@
+<!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="949.43">
+<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: 12.0px Helvetica; color: #0000ff}
+p.p4 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; min-height: 12.0px}
+p.p5 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #bf0000}
+p.p6 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #000000; min-height: 12.0px}
+p.p7 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #000000}
+p.p8 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco}
+p.p9 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #007300}
+p.p10 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #0000bf}
+span.s1 {font: 18.0px Helvetica}
+span.s2 {color: #000000}
+span.s3 {color: #0000bf}
+span.s4 {color: #007300}
+span.Apple-tab-span {white-space:pre}
+</style>
+</head>
+<body>
+<p class="p1"><span class="s1"><b>Punop<span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></b></span><b>unary operator pattern</b></p>
+<p class="p2"><br></p>
+<p class="p1">superclass: Pattern</p>
+<p class="p2"><br></p>
+<p class="p1"><b>Punop(operator, a)</b></p>
+<p class="p2"><br></p>
+<p class="p1">Returns a stream that applies the unary operator to the stream values of the receiver .</p>
+<p class="p1">Usually, this is the result of applying a unary operator (i.e. a method with one argument) to a pattern.</p>
+<p class="p2"><br></p>
+<p class="p1"><b>operator </b>- operator to be applied</p>
+<p class="p1"><b>a</b> - a pattern (or compatible pattern input)</p>
+<p class="p2"><br></p>
+<p class="p1">examples of unary operators are: squared, sqrt, sin, tan ...</p>
+<p class="p2"><br></p>
+<p class="p3"><span class="s2"><b>See also: </b><a href="Pnaryop.html">Pnaryop</a>, <a href="Pbinop.html">Pbinop</a>, <a href="../Core/UnaryOpFunction.html">UnaryOpFunction</a></span></p>
+<p class="p2"><br></p>
+<p class="p4"><br></p>
+<p class="p5">// example</p>
+<p class="p6"><br></p>
+<p class="p7">(</p>
+<p class="p7"><span class="s3">var</span> a;</p>
+<p class="p7">a = <span class="s3">Punop</span>(<span class="s4">\sqrt</span>, <span class="s3">Pseries</span>(0, 1, 12));</p>
+<p class="p7">a.asStream.all;</p>
+<p class="p7">)</p>
+<p class="p6"><br></p>
+<p class="p5">// this is the same as:</p>
+<p class="p7">(</p>
+<p class="p7"><span class="s3">var</span> a;</p>
+<p class="p7">a = <span class="s3">Pseries</span>(0, 1, 12).sqrt;</p>
+<p class="p7">a.asStream.all;</p>
+<p class="p7">)</p>
+<p class="p6"><br></p>
+<p class="p5">// some common cases:</p>
+<p class="p8"><span class="s3">Pseq</span>([1, 2, 3]).squared;</p>
+<p class="p8"><span class="s3">Pseq</span>([0.2, 0.5, 0.8]).coin;</p>
+<p class="p8"><span class="s3">Pwhite</span>(-100, 100, <span class="s3">inf</span>).abs;</p>
+<p class="p6"><br></p>
+<p class="p6"><br></p>
+<p class="p6"><br></p>
+<p class="p5">// sound example</p>
+<p class="p7">(</p>
+<p class="p9"><span class="s3">SynthDef</span><span class="s2">(</span>\help_sinegrain<span class="s2">,<span class="Apple-converted-space"> </span></span></p>
+<p class="p7"><span class="Apple-tab-span"> </span>{ <span class="s3">arg</span> out=0, freq=440, sustain=0.05, amp=0.1;</p>
+<p class="p7"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s3">var</span> env;</p>
+<p class="p7"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>env = <span class="s3">EnvGen</span>.kr(<span class="s3">Env</span>.perc(0.01, sustain, 0.2, amp), doneAction:2);</p>
+<p class="p7"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s3">Out</span>.ar(out, <span class="s3">SinOsc</span>.ar(freq, 0, env))</p>
+<p class="p7"><span class="Apple-tab-span"> </span>}).store;</p>
+<p class="p7">)</p>
+<p class="p6"><br></p>
+<p class="p6"><br></p>
+<p class="p7">(</p>
+<p class="p7"><span class="s3">var</span> a;</p>
+<p class="p7">a = <span class="s3">Pn</span>(<span class="s3">Punop</span>(<span class="s4">\sqrt</span>, <span class="s3">Pseries</span>(0, 1, 12))).asStream;</p>
+<p class="p7">{</p>
+<p class="p7"><span class="Apple-tab-span"> </span>a.do { <span class="s3">|val|</span></p>
+<p class="p7"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s3">Synth</span>(<span class="s4">\help_sinegrain</span>, [<span class="s4">\freq</span>, a * 200 + 300].postln);</p>
+<p class="p7"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>0.5.wait;</p>
+<p class="p7"><span class="Apple-tab-span"> </span>}</p>
+<p class="p7">}.fork;</p>
+<p class="p7">)</p>
+<p class="p6"><br></p>
+<p class="p7">(</p>
+<p class="p10">Pbind<span class="s2">(</span></p>
+<p class="p7"><span class="Apple-tab-span"> </span><span class="s4">\dur</span>, 0.01,</p>
+<p class="p9"><span class="s2"><span class="Apple-tab-span"> </span></span>\instrument<span class="s2">, </span>\help_sinegrain<span class="s2">,</span></p>
+<p class="p7"><span class="Apple-tab-span"> </span><span class="s4">\note</span>, <span class="s3">Pn</span>(<span class="s3">Punop</span>(<span class="s4">\sqrt</span>, <span class="s3">Pseries</span>(0, 1, 12)))</p>
+<p class="p7">).play;</p>
+<p class="p7">)</p>
+<p class="p6"><br></p>
+<p class="p6"><br></p>
+<p class="p6"><br></p>
+<p class="p5">// these are the same as:</p>
+<p class="p6"><br></p>
+<p class="p7">(</p>
+<p class="p7"><span class="s3">var</span> a;</p>
+<p class="p7">a = <span class="s3">Pn</span>(<span class="s3">Pseries</span>(0, 1, 12).sqrt).asStream;</p>
+<p class="p7">{</p>
+<p class="p7"><span class="Apple-tab-span"> </span>a.do { <span class="s3">|val|</span></p>
+<p class="p7"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s3">Synth</span>(<span class="s4">\help_sinegrain</span>, [<span class="s4">\freq</span>, a * 200 + 300].postln);</p>
+<p class="p7"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>0.05.wait;</p>
+<p class="p7"><span class="Apple-tab-span"> </span>}</p>
+<p class="p7">}.fork;</p>
+<p class="p7">)</p>
+<p class="p6"><br></p>
+<p class="p6"><br></p>
+<p class="p7">(</p>
+<p class="p10">Pbind<span class="s2">(</span></p>
+<p class="p7"><span class="Apple-tab-span"> </span><span class="s4">\dur</span>, 0.1,</p>
+<p class="p9"><span class="s2"><span class="Apple-tab-span"> </span></span>\instrument<span class="s2">, </span>\help_sinegrain<span class="s2">,</span></p>
+<p class="p7"><span class="Apple-tab-span"> </span><span class="s4">\note</span>, <span class="s3">Pn</span>(<span class="s3">Pseries</span>(0, 1, 12).sqrt)</p>
+<p class="p7">).play;</p>
+<p class="p7">)</p>
+<p class="p6"><br></p>
+</body>
+</html>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
_______________________________________________
sc-dev mailing list
info (subscription, etc.): http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml
archive: https://listarc.bham.ac.uk/marchives/sc-dev/
search: https://listarc.bham.ac.uk/lists/sc-dev/search/