[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[sc-dev] SF.net SVN: supercollider:[9631] trunk/build/Help/Collections



Revision: 9631
          http://supercollider.svn.sourceforge.net/supercollider/?rev=9631&view=rev
Author:   jrhb
Date:     2009-12-26 13:57:03 +0000 (Sat, 26 Dec 2009)

Log Message:
-----------
improve dictionary helpfiles

Modified Paths:
--------------
    trunk/build/Help/Collections/Dictionary.html
    trunk/build/Help/Collections/Event.html
    trunk/build/Help/Collections/IdentityDictionary.html

Modified: trunk/build/Help/Collections/Dictionary.html
===================================================================
--- trunk/build/Help/Collections/Dictionary.html	2009-12-23 11:25:48 UTC (rev 9630)
+++ trunk/build/Help/Collections/Dictionary.html	2009-12-26 13:57:03 UTC (rev 9631)
@@ -5,27 +5,44 @@
 <meta http-equiv="Content-Style-Type" content="text/css">
 <title></title>
 <meta name="Generator" content="Cocoa HTML Writer">
-<meta name="CocoaVersion" content="949.43">
+<meta name="CocoaVersion" content="1038.25">
 <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; color: #bf0000}
-p.p5 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco}
-p.p6 {margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Helvetica}
-p.p7 {margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Helvetica; min-height: 17.0px}
-p.p8 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Monaco; min-height: 16.0px}
-p.p9 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #000000}
-p.p10 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #0000bf}
-p.p11 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #007300}
-p.p12 {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: 9.0px Monaco; min-height: 12.0px}
+p.p4 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; color: #0000ee}
+p.p5 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 12.0px Helvetica}
+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: #737373}
+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: #bf0000; min-height: 12.0px}
+p.p11 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 9.0px Monaco}
+p.p12 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 9.0px Monaco; min-height: 12.0px}
+p.p13 {margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Helvetica}
+p.p14 {margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Helvetica; min-height: 17.0px}
+p.p15 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 12.0px Helvetica; min-height: 14.0px}
+p.p16 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 9.0px Monaco; color: #bf0000}
+p.p17 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 14.0px Helvetica}
+p.p18 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 12.0px Monaco; min-height: 16.0px}
+p.p19 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 9.0px Monaco; color: #007300}
+p.p20 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 9.0px Monaco; color: #007300; min-height: 12.0px}
+p.p21 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 12.0px Helvetica; color: #0000ee}
+p.p22 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 14.0px Helvetica; min-height: 17.0px}
+p.p23 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 9.0px Monaco; color: #0000bf}
 span.s1 {font: 18.0px Helvetica}
-span.s2 {color: #0000ff}
-span.s3 {color: #002bf8}
-span.s4 {color: #000000}
-span.s5 {color: #007300}
-span.s6 {color: #606060}
-span.s7 {color: #0000bf}
+span.s2 {color: #0000bf}
+span.s3 {color: #000000}
+span.s4 {text-decoration: underline}
+span.s5 {color: #bf0000}
+span.s6 {color: #007300}
+span.s7 {color: #737373}
+span.s8 {font: 12.0px Helvetica}
+span.s9 {font: 9.0px Monaco}
+span.s10 {font: 9.0px Monaco; color: #007300}
+span.s11 {font: 12.0px Monaco}
+span.s12 {font: 14.0px Helvetica}
+span.s13 {font: 12.0px Helvetica; color: #000000}
 span.Apple-tab-span {white-space:pre}
 </style>
 </head>
@@ -33,94 +50,292 @@
 <p class="p1"><span class="s1"><b>Dictionary</b></span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><b>associative collection mapping keys to values</b></p>
 <p class="p2"><br></p>
 <p class="p1"><b>Inherits from: </b><a href="../Core/Object.html"><span class="s2"><b>Object</b></span></a><b> : </b><a href="Collection.html"><span class="s2"><b>Collection</b></span></a><b> : </b><a href="Set.html"><span class="s2"><b>Set</b></span></a></p>
-<p class="p2"><br></p>
+<p class="p3"><br></p>
 <p class="p1">A Dictionary is an associative collection mapping keys to values.</p>
 <p class="p1">Two keys match if they are <b>equal</b>. (i.e. == returns true.)</p>
 <p class="p2"><br></p>
 <p class="p1">The contents of a Dictionary are <b>unordered</b>. You must not depend on the order of items in a Dictionary.</p>
-<p class="p1">You must only rely on equality for the keys (e.g. symbols are ok, strings not).<span class="Apple-converted-space"> </span></p>
-<p class="p1">For identity matching see: <a href="IdentityDictionary.html"><span class="s3">IdentityDictionary</span></a>.</p>
+<p class="p1">You must only rely on equality for the keys (e.g. symbols are ok, strings not). For identity matching see: <a href="IdentityDictionary.html"><span class="s2">IdentityDictionary</span></a>.</p>
 <p class="p2"><br></p>
-<p class="p3"><span class="s4">See also: <a href="Environment.html">Environment</a>, <a href="Event.html">Event</a></span></p>
+<p class="p4"><span class="s3"><b>See also</b>: <a href="Environment.html"><span class="s4">Envirownment</span></a>, <a href="Event.html"><span class="s4">Event</span></a></span></p>
 <p class="p2"><br></p>
-<p class="p1">Often, the subclass Event is used as an IdentityDictionary, because there is a syntactical shortcut:</p>
 <p class="p2"><br></p>
-<p class="p4"><span class="s4">a = (); </span>// return a new Event.</p>
-<p class="p5">a.put(<span class="s5">\foo</span>, 2.718);</p>
-<p class="p5">a.at(<span class="s5">\foo</span>);</p>
+<p class="p5"><b>The Difference between Dictionary, IdentityDictionary, Environment, and Event</b></p>
 <p class="p2"><br></p>
+<p class="p1">Often, the subclass <a href="Event.html"><span class="s2">Event</span></a> is used as an IdentityDictionary, because there is a syntactical shortcut:</p>
 <p class="p2"><br></p>
-<p class="p6"><b>Creation:</b></p>
+<p class="p6"><span class="s3"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>a = (foo: 7); </span>// return a new Event.</p>
+<p class="p7"><span class="s5"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span>a.put(<span class="s6">\foo</span>, 2.718);</p>
+<p class="p7"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>a.at(<span class="s6">\foo</span>);</p>
+<p class="p6"><span class="s3"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>a[</span><span class="s6">\foo</span><span class="s3">] = 3.5; </span>// different syntax for put</p>
 <p class="p2"><br></p>
-<p class="p1"><b>*new(n)</b></p>
+<p class="p1">Event, Environment and IdentityDictionary differ mainly insofar from Dictionary as the <b>keys</b> are taken to be identical (===) objects (see <a href="IdentityDictionary.html"><span class="s2">IdentityDictionary</span></a>), instead of equal (==) objects. By consequence, the subclasses are also faster for indexing. Apart from this, the subclasses add specific functionality only. Because of its very common usage, the examples often use the shortcut for the subclass Event.</p>
 <p class="p2"><br></p>
-<p class="p1">Creates a Dictionary with an initial capacity for n key value mappings.</p>
+<p class="p6"><span class="Apple-tab-span">	</span><span class="s3"><span class="Apple-tab-span">	</span></span>// preliminary identity and equality of strings and symbols</p>
+<p class="p8"><span class="s3"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span>"hello"<span class="s3"> == </span>"hello"<span class="s3"> </span><span class="s5">// true, but</span></p>
+<p class="p6"><span class="s3"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span><span class="s7">"hello"</span><span class="s3"> === </span><span class="s7">"hello"</span><span class="s3"> </span>// false. However:</p>
+<p class="p9"><span class="s3"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span>\hello<span class="s3"> === </span>\hello<span class="s3"> </span><span class="s5">// true</span></p>
+<p class="p10"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
+<p class="p6"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>// compare</p>
+<p class="p6"><span class="s2"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>Dictionary</span><span class="s3">[</span><span class="s7">"hello"</span><span class="s3"> -&gt; 0, </span><span class="s7">"hello"</span><span class="s3"> -&gt; 1]; </span>// Dictionary[ (hello -&gt; 1) ]</p>
+<p class="p6"><span class="s3"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>(</span><span class="s7">"hello"</span><span class="s3">: 0, </span><span class="s7">"hello"</span><span class="s3">: 1); </span>// ( "hello": 1, "hello": 0 )</p>
+<p class="p10"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
+<p class="p6"><span class="s3"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span>// for symbols as keys, the behaviour is identical:</p>
+<p class="p7"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="s2">Dictionary</span>[<span class="s6">\hello</span> -&gt; 1, <span class="s6">\hello</span> -&gt; 0];</p>
+<p class="p11"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>( <span class="s6">\hello</span>: 1, <span class="s6">\hello</span>: 0 )</p>
+<p class="p12"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
 <p class="p2"><br></p>
-<p class="p6"><b>Adding and Removing:</b></p>
-<p class="p7"><br></p>
-<p class="p1"><b>add(anAssociation)</b></p>
-<p class="p7"><br></p>
-<p class="p1">Add anAssociation to the Dictionary. <span class="Apple-converted-space"> </span></p>
-<p class="p1">If the key value pair already exists in the Dictionary, the key's value will be replaced.</p>
-<p class="p8"><br></p>
-<p class="p9">(</p>
-<p class="p10"><span class="s4">d = </span>Dictionary<span class="s4">.new;</span></p>
-<p class="p9">d.add(<span class="s5">'monkey'</span> -&gt; 0).postln;</p>
-<p class="p4">// Add robot as a key with a value of 1</p>
-<p class="p9">d.add(<span class="s5">'robot'</span> -&gt; 1).postln;</p>
-<p class="p4">// Replaces the value for the key monkey with 2</p>
-<p class="p9">d.add(<span class="s5">'monkey'</span> -&gt; 2).postln;</p>
-<p class="p9">)</p>
-<p class="p8"><br></p>
-<p class="p1"><b>put(key, obj)</b></p>
-<p class="p2"><br></p>
-<p class="p1">Associate two objects and add them to the Dictionary.</p>
-<p class="p1"><b>key </b>- key to associate with object</p>
-<p class="p1"><b>obj<span class="Apple-converted-space"> </span></b> - an object</p>
-<p class="p2"><br></p>
-<p class="p9">d.put(<span class="s6">"abc"</span>, 10).postln;</p>
-<p class="p8"><br></p>
-<p class="p1"><b>removeAt(key)</b></p>
-<p class="p8"><br></p>
-<p class="p1">Remove the key and the value associated with it from the Dictionary.</p>
-<p class="p8"><br></p>
-<p class="p9">d.removeAt(<span class="s5">'monkey'</span>).postln;</p>
-<p class="p8"><br></p>
-<p class="p6"><b>Accessing:</b></p>
-<p class="p8"><br></p>
-<p class="p1"><b>at(key)</b></p>
-<p class="p8"><br></p>
-<p class="p1">Access the value associated with the key.</p>
-<p class="p8"><br></p>
-<p class="p4">// Get the value associated with key</p>
-<p class="p9">d.at(<span class="s5">'robot'</span>);</p>
-<p class="p4">// Key doesn't exist</p>
-<p class="p11"><span class="s4">d.at(</span>'monkey'<span class="s4">);</span></p>
-<p class="p8"><br></p>
-<p class="p1"><b>matchAt(item)</b></p>
-<p class="p2"><br></p>
-<p class="p1">The dictionary's keys are used as conditions against which the arbitrary item is matched.</p>
-<p class="p2"><br></p>
-<p class="p3"><span class="s4"><b>see: </b><a href="../interfaces/matchItem.html"><b>matchItem</b></a><b><span class="Apple-converted-space"> </span></b></span></p>
-<p class="p2"><br></p>
-<p class="p1">Note: if an item matches multiple criteria, the value returned is arbitrary. This is because a dictionary is an unordered collection. It's the user's responsibility to make sure that criteria are mutually exclusive.</p>
-<p class="p2"><br></p>
-<p class="p1">If the key is an object, the item will be matched by identity (if key === item, the value will be returned).<span class="Apple-converted-space"> </span></p>
-<p class="p1">If the key is a collection, the item is matched if it's contained in the collection.<span class="Apple-converted-space"> </span></p>
-<p class="p1">If the key is a function, the function is evaluated with the item as an argument and the item is matched if the function returns true.</p>
-<p class="p2"><br></p>
-<p class="p10"><span class="s4">d = </span>Dictionary<span class="s4">[</span></p>
-<p class="p9"><span class="Apple-tab-span">	</span>0 -&gt; <span class="s5">'zero'</span>,</p>
-<p class="p11"><span class="s4"><span class="Apple-tab-span">	</span></span>'abc'<span class="s4"> -&gt; </span>'alpha'<span class="s4">,</span></p>
-<p class="p9"><span class="Apple-tab-span">	</span>[1, 2, 3, 5, 8, 13, 21] -&gt; <span class="s5">'fibonacci'</span>,</p>
-<p class="p4"><span class="s4"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span>// == true is needed because it might not be a number passed in</p>
-<p class="p9"><span class="Apple-tab-span">	</span>{ <span class="s7">|x|</span> x.tryPerform(<span class="s5">\even</span>) == <span class="s7">true</span> } -&gt; <span class="s5">'even'</span></p>
-<p class="p9">];</p>
+<p class="p13"><b>Creation / Class Methods</b></p>
 <p class="p12"><br></p>
-<p class="p9">d.matchAt(0)</p>
-<p class="p9">d.matchAt(1)</p>
-<p class="p4"><span class="s4">d.matchAt(2)<span class="Apple-converted-space">  </span></span>// matches both 'fibonacci' and 'even', either may be returned</p>
-<p class="p9">d.matchAt(4)</p>
-<p class="p9">d.matchAt(<span class="s5">'abc'</span>)</p>
+<p class="p5"><b><span class="Apple-tab-span">	</span>*new(n)</b></p>
+<p class="p5"><b><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></b>Creates a Dictionary with an initial capacity for n key value mappings.</p>
+<p class="p12"><br></p>
+<p class="p14"><br></p>
+<p class="p13"><b>Adding and Removing</b><span class="s8"><span class="Apple-tab-span">	</span></span></p>
+<p class="p15"><b><span class="Apple-tab-span">	</span></b></p>
+<p class="p5"><b><span class="Apple-tab-span">	</span>add(anAssociation)</b></p>
+<p class="p5"><b><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></b>Add anAssociation to the Dictionary.<span class="Apple-converted-space">  </span>If the key value pair already exists in the Dictionary, the key's value will be replaced.</p>
+<p class="p15"><br></p>
+<p class="p11"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>(</p>
+<p class="p11"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>d = <span class="s2">Dictionary</span>.new;</p>
+<p class="p11"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>d.add(<span class="s6">\monkey</span> -&gt; 0).postln;</p>
+<p class="p16"><span class="s3"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span>// Add robot as a key with a value of 1</p>
+<p class="p11"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>d.add(<span class="s6">\robot</span> -&gt; 1).postln;</p>
+<p class="p16"><span class="s3"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span>// Replaces the value for the key monkey with 2</p>
+<p class="p11"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>d.add(<span class="s6">\monkey</span> -&gt; 2).postln;</p>
+<p class="p11"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>)</p>
+<p class="p15"><br></p>
+<p class="p5"><b><span class="Apple-tab-span">	</span>put(key, obj)</b></p>
+<p class="p5"><b><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></b>Associate two objects and add them to the Dictionary.</p>
+<p class="p5"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><b>key</b> - key to associate with object. THis can be any objects, but is often a <a href="../Core/Symbol.html"><span class="s2">Symbol</span></a>.</p>
+<p class="p5"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><b>obj</b><span class="Apple-converted-space">  </span>- an object</p>
+<p class="p12"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
+<p class="p11"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>d = <span class="s2">Dictionary</span>.new;</p>
+<p class="p11"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>d.put(<span class="s7">"abc"</span>, 10);</p>
+<p class="p12"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
+<p class="p16"><span class="s3"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span>// using an event:</p>
+<p class="p11"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>d = ();</p>
+<p class="p11"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>d.put(<span class="s7">"abc"</span>, 10);</p>
+<p class="p15"><br></p>
+<p class="p5"><span class="Apple-tab-span">	</span><b>removeAt(key)</b></p>
+<p class="p5"><b><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></b>Remove the key and the value associated with it from the Dictionary.</p>
+<p class="p15"><br></p>
+<p class="p11"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>d = (monkey: 99);</p>
+<p class="p11"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>d.removeAt(<span class="s6">\monkey</span>);</p>
+<p class="p12"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
+<p class="p5"><span class="s9"><span class="Apple-tab-span">	</span></span><b>putAll(... dictionaries)</b></p>
+<p class="p5"><b><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></b>Add all items of each argument to the dictionary.</p>
+<p class="p5"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><b>dictionaries</b> - any Object that responds to keysValuesDo (usually a Dictionary).</p>
+<p class="p15"><br></p>
+<p class="p11"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>d = ();</p>
+<p class="p11"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>d.putAll(<span class="s2">Dictionary</span>[<span class="s6">\hello</span> -&gt; 9, <span class="s6">\whello</span> -&gt; <span class="s7">"world"</span>], <span class="s2">Dictionary</span>[<span class="s7">"abd"</span> -&gt; 6]);</p>
+<p class="p12"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
+<p class="p12"><span class="Apple-tab-span">	</span></p>
+<p class="p5"><span class="s9"><span class="Apple-tab-span">	</span></span><b>putPairs(pairs)</b></p>
+<p class="p5"><b><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></b>Add all items to the dictionary, using them as key and value pairwise</p>
+<p class="p15"><br></p>
+<p class="p11"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>d = ();</p>
+<p class="p11"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>d.putPairs(<span class="s6">\hello</span>, 10, <span class="s6">\whello</span>, <span class="s7">"lord"</span>, <span class="s7">"abc"</span>, 7);</p>
+<p class="p12"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
+<p class="p15"><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>
+<p class="p17"><b>Accessing:</b></p>
+<p class="p18"><br></p>
+<p class="p5"><b><span class="Apple-tab-span">	</span>at(key)</b></p>
+<p class="p5"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>Access the value associated with the key.</p>
+<p class="p18"><br></p>
+<p class="p11"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>d = (robot: 99);</p>
+<p class="p16"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>// Get the value associated with key</p>
+<p class="p11"><span class="s5"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span>d.at(<span class="s6">\robot</span>);</p>
+<p class="p16"><span class="s3"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>d[</span><span class="s6">\robot</span><span class="s3">]; </span>// different syntax, same behaviour</p>
+<p class="p16"><span class="s3"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span>// Key doesn't exist: return <a href="../Core/Nil.html"><span class="s2">Nil</span></a></p>
+<p class="p11"><span class="s5"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span>d.at(<span class="s6">\monkey</span>);</p>
+<p class="p12"><span class="Apple-tab-span">	</span></p>
+<p class="p5"><span class="s9"><span class="Apple-tab-span">	</span></span><b>atAll(... keys)</b></p>
+<p class="p5"><b><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></b>Return an array of all values for the given keys.</p>
+<p class="p15"><br></p>
+<p class="p11"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>d = (hello: 9, whello: <span class="s7">"world"</span>, z: 99, c: 0.33);</p>
+<p class="p19"><span class="s3"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>d.atAll([</span>\hello<span class="s3">, </span>\z<span class="s3">, </span>\hello<span class="s3">, </span>\c, \whello<span class="s3">]);</span></p>
+<p class="p12"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
+<p class="p5"><span class="s9"><span class="Apple-tab-span">	</span></span><b>getPairs</b></p>
+<p class="p5"><b><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></b>Return an array with all keys and values pairwise.</p>
+<p class="p15"><br></p>
+<p class="p11"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>d = (hello: 9, whello: 77, z: 99);</p>
+<p class="p11"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>d.getPairs;</p>
+<p class="p12"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
+<p class="p5"><span class="s9"><span class="Apple-tab-span">	</span></span><b>associationAt(key)</b></p>
+<p class="p5"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>Access the <a href="Association.html"><span class="s2">Association</span></a> that has the given key.</p>
+<p class="p18"><br></p>
+<p class="p16"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>// Get the value associated with key</p>
+<p class="p11"><span class="s5"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span>d = (robot: 99);</p>
+<p class="p11"><span class="s5"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span>d.associationAt(<span class="s6">\robot</span>);</p>
+<p class="p20"><br></p>
+<p class="p5"><span class="s10"><span class="Apple-tab-span">	</span></span><b>keys</b></p>
+<p class="p5"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>Return a <a href="Set.html"><span class="s2">Set</span></a> of all keys.</p>
+<p class="p18"><br></p>
+<p class="p11"><span class="s5"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span>d = (hello: 9, whello: <span class="s7">"world"</span>);</p>
+<p class="p11"><span class="s5"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span>d.keys;</p>
+<p class="p12"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
+<p class="p5"><span class="s9"><span class="Apple-tab-span">	</span></span><b>keys</b></p>
+<p class="p5"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>Return a <a href="List.html"><span class="s2">List</span></a> of all values.</p>
+<p class="p18"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
+<p class="p11"><span class="s11"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span>d = (hello: 9, whello: <span class="s7">"world"</span>);</p>
+<p class="p11"><span class="s5"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span>d.values;</p>
+<p class="p12"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
+<p class="p5"><span class="s9"><span class="Apple-tab-span">	</span></span><b>findKeyForValue(argValue)</b></p>
+<p class="p5"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>Try to find a given value and return its key.</p>
+<p class="p18"><br></p>
+<p class="p11"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>d = (hello: 1, whello: 1976);</p>
+<p class="p11"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>d.findKeyForValue(1);</p>
+<p class="p12"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
+<p class="p18"><br></p>
+<p class="p5"><b><span class="Apple-tab-span">	</span>matchAt(item)</b></p>
+<p class="p5"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>The dictionary's keys are used as conditions against which the arbitrary item is matched.</p>
+<p class="p21"><span class="s3"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><b>see: </b><a href="../interfaces/matchItem.html"><b>matchItem</b></a><b><span class="Apple-converted-space"> </span></b></span></p>
+<p class="p15"><br></p>
+<p class="p5"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><b>Note</b>: if an item matches multiple criteria, the value returned is arbitrary. This is because a dictionary is an unordered collection. It's the user's responsibility to make sure that criteria are mutually exclusive.</p>
+<p class="p15"><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>If the key is an object, the item will be matched by identity (if key === item, the value will be returned).<span class="Apple-converted-space"> </span></p>
+<p class="p5"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>If the key is a collection, the item is matched if it's contained in the collection.<span class="Apple-converted-space"> </span></p>
+<p class="p5"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>If the key is a function, the function is evaluated with the item as an argument and the item is matched if the function returns true.</p>
+<p class="p15"><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><span class="s9">(</span></p>
+<p class="p11"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>d = <span class="s2">(</span></p>
+<p class="p11"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>0: <span class="s6">\zero</span>,</p>
+<p class="p19"><span class="s3"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span>\abc<span class="s3">: </span>\alpha<span class="s3">,</span></p>
+<p class="p11"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>[1, 2, 3, 5, 8, 13, 21]: <span class="s6">\fibonacci</span>,</p>
+<p class="p16"><span class="s3"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>{ </span><span class="s2">|x|</span><span class="s3"> try { x.even } }: </span><span class="s6">\even </span>// try is needed because argument might not be a number</p>
+<p class="p11"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>);</p>
+<p class="p11"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>);</p>
+<p class="p12"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
+<p class="p11"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>d.matchAt(0)</p>
+<p class="p11"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>d.matchAt(1)</p>
+<p class="p16"><span class="s3"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>d.matchAt(2)<span class="Apple-converted-space">  </span></span>// matches both 'fibonacci' and 'even', either may be returned</p>
+<p class="p11"><span class="s5"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span>d.matchAt(4)</p>
+<p class="p11"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>d.matchAt(<span class="s6">\abc</span>)</p>
+<p class="p12"><br></p>
+<p class="p12"><br></p>
+<p class="p17"><b>Iteration/Enumeration</b></p>
+<p class="p22"><b><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></b></p>
+<p class="p5"><span class="s12"><b><span class="Apple-tab-span">	</span></b></span>Most methods for iteration work analogously to Dictionary's superclasses, see e.g. <a href="Collection.html"><span class="s2">Collection</span></a>.<span class="Apple-converted-space"> </span></p>
+<p class="p15"><span class="Apple-tab-span">	</span></p>
+<p class="p5"><span class="Apple-tab-span">	</span><b>do(func)</b></p>
+<p class="p5"><b><span class="Apple-tab-span">	</span>collect(func)</b></p>
+<p class="p5"><b><span class="Apple-tab-span">	</span>reject(func)</b></p>
+<p class="p5"><b><span class="Apple-tab-span">	</span>select(func)</b></p>
+<p class="p15"><b><span class="Apple-tab-span">	</span></b><span class="Apple-tab-span">	</span></p>
+<p class="p16"><span class="s3"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span>// do, collect, reject, select</p>
+<p class="p11"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>d = <span class="s2">Dictionary</span>[<span class="s6">\a</span> -&gt; <span class="s7">"hello"</span>, <span class="s6">\b</span> -&gt; <span class="s7">"robot"</span>, <span class="s6">\c</span> -&gt; [1, 2, 3]];</p>
+<p class="p11"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>d = (a: <span class="s7">"hello"</span>, b: <span class="s7">"robot"</span>, c: [1, 2, 3]); <span class="s5">// equivalent</span></p>
+<p class="p11"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>d.do { <span class="s2">|item, i|</span> [item, i].postln };<span class="Apple-tab-span">	</span></p>
+<p class="p11"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>d.collect { <span class="s2">|item|</span> item + 100 };<span class="Apple-tab-span">	</span></p>
+<p class="p11"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>d.reject { <span class="s2">|item|</span> item.size &gt; 4 };</p>
+<p class="p11"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>d.select { <span class="s2">|item|</span> item.size &gt; 4 };<span class="Apple-tab-span">	</span></p>
+<p class="p12"><br></p>
+<p class="p12"><br></p>
+<p class="p5"><span class="s9"><span class="Apple-tab-span">	</span></span><b>keysValuesDo(function)</b></p>
+<p class="p5"><b><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></b>Iterate over the associations, and evaluate the function for each, passing key and value as argument.</p>
+<p class="p15"><b><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></b></p>
+<p class="p11"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>d = (a: <span class="s7">"hello"</span>, b: <span class="s7">"robot"</span>, c: [1, 2, 3]);</p>
+<p class="p11"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>d.keysValuesDo { <span class="s2">|key, value|</span> postln(<span class="s7">"the key: "</span> ++ key ++ <span class="s7">" the value: "</span> ++ value) };</p>
+<p class="p12"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
+<p class="p5"><span class="s9"><span class="Apple-tab-span">	</span></span><b>keysValuesChange(function)</b></p>
+<p class="p5"><b><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></b>Iterate over the associations, and evaluate the function for each, passing key and value as argument. Replace the value with the return value from the function (similar to <b>collect</b>, but modifies the dictionary i<b>n place</b>)</p>
+<p class="p15"><b><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></b></p>
+<p class="p11"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>d = (a: <span class="s7">"hello"</span>, b: <span class="s7">"robot"</span>, c: [1, 2, 3]);</p>
+<p class="p11"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>d.keysValuesChange { <span class="s2">|key, value|</span> <span class="s7">"the key: "</span> ++ key ++ <span class="s7">" the value: "</span> ++ value };</p>
+<p class="p11"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>d;</p>
+<p class="p12"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
+<p class="p5"><span class="s9"><span class="Apple-tab-span">	</span></span><b>keysDo(function)</b></p>
+<p class="p5"><b><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></b>Iterate over the associations, and evaluate the function for each, passing key as argument.</p>
+<p class="p15"><b><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></b></p>
+<p class="p11"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>d = (a: <span class="s7">"hello"</span>, b: <span class="s7">"robot"</span>, c: [1, 2, 3]);</p>
+<p class="p11"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>d.keysDo { <span class="s2">|key|</span> postln(<span class="s7">"the key: "</span> ++ key) };</p>
+<p class="p12"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
+<p class="p5"><span class="s9"><span class="Apple-tab-span">	</span></span><b>associationsDo(function)</b></p>
+<p class="p5"><b><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></b>Iterate over the associations, and evaluate the function for each.</p>
+<p class="p15"><b><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></b></p>
+<p class="p11"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>d = (a: <span class="s7">"hello"</span>, b: <span class="s7">"robot"</span>, c: [1, 2, 3]);</p>
+<p class="p11"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>d.associationsDo { <span class="s2">|assoc|</span> postln(<span class="s7">"the association: "</span> ++ assoc) };</p>
+<p class="p12"><span class="Apple-tab-span">	</span></p>
+<p class="p5"><span class="s9"><span class="Apple-tab-span">	</span></span><b>pairsDo(function)</b></p>
+<p class="p5"><b><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></b>Iterate over the associations, and evaluate the function for each, passing key and value as argument.</p>
+<p class="p5"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>Identical to <b>keysValuesDo</b></p>
+<p class="p15"><b><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></b></p>
+<p class="p5"><b><span class="Apple-tab-span">	</span>invert</b></p>
+<p class="p5"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>Return a new dictionary with all the values as keys and vice versa.</p>
+<p class="p12"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
+<p class="p11"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>d = (a: <span class="s7">"hello"</span>, b: <span class="s7">"robot"</span>, c: [1, 2, 3]);</p>
+<p class="p11"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>d.invert;</p>
+<p class="p12"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
+<p class="p12"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
+<p class="p17"><b>Other instance methods:</b></p>
+<p class="p12"><br></p>
+<p class="p5"><span class="s9"><span class="Apple-tab-span">	</span></span><b>order(func)</b></p>
+<p class="p5"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>Return an array of keys which corresponds to the order of the values of the dictionary.</p>
+<p class="p15"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
+<p class="p11"><span class="s8"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span>d = (a: <span class="s7">5</span>, b: <span class="s7">7</span>, c: 1, d: 0);</p>
+<p class="p11"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>d.order;</p>
+<p class="p16"><span class="s3"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>d.atAll(d.order) </span>// returns items in order<span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
+<p class="p12"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
+<p class="p12"><br></p>
+<p class="p5"><span class="s9"><span class="Apple-tab-span">	</span></span><b>powerset</b></p>
+<p class="p5"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>Return the set of all subsets: here an array of all sub-dictionaries.</p>
+<p class="p15"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
+<p class="p11"><span class="s8"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span>d = (a: 5, b: 7, c: 1, d: 0);</p>
+<p class="p11"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>d.powerset;</p>
+<p class="p12"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
+<p class="p5"><span class="s9"><span class="Apple-tab-span">	</span></span><b>asSortedArray</b></p>
+<p class="p5"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>Return the values in a sorted array of key value pairs</p>
+<p class="p15"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
+<p class="p11"><span class="s8"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span>d = (a: 5, b: 7, c: 1, d: 0);</p>
+<p class="p11"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>d.asSortedArray;</p>
+<p class="p12"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
+<p class="p5"><span class="s9"><span class="Apple-tab-span">	</span></span><b>asKeyValuePairs</b></p>
+<p class="p5"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>Return the values in an array of alternating key value pairs</p>
+<p class="p15"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
+<p class="p11"><span class="s8"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span>d = (a: 5, b: 7, c: 1, d: 0);</p>
+<p class="p11"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>d.asKeyValuePairs;</p>
+<p class="p12"><span class="Apple-tab-span">	</span></p>
+<p class="p5"><span class="s9"><span class="Apple-tab-span">	</span></span><b>embedInStream(event)</b></p>
+<p class="p5"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>If the event is not nil, yields a copy, with all the elements of the receiver.</p>
+<p class="p5"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>See also <a href="Event.html"><span class="s2">Event</span></a>.</p>
+<p class="p15"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
+<p class="p16"><span class="s13"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span>// write a generator for dictionaries</p>
+<p class="p11"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>(</p>
+<p class="p11"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>d = (</p>
+<p class="p11"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>a: 5, b: 7, c: 1,</p>
+<p class="p23"><span class="s3"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>rout: </span>Routine<span class="s3"> { </span>|inval|</p>
+<p class="p11"><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>inf.do { |i|</p>
+<p class="p11"><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><span class="Apple-tab-span">	</span>var event = d.copy.put(\count, i);</p>
+<p class="p11"><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><span class="Apple-tab-span">	</span>inval = event.embedInStream(inval)<span class="Apple-converted-space"> </span></p>
+<p class="p11"><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>}</p>
+<p class="p11"><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>
+<p class="p11"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>);</p>
+<p class="p11"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>);</p>
+<p class="p12"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
+<p class="p16"><span class="s3"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span>// draw new values</p>
+<p class="p11"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>d.rout.((z:999));</p>
+<p class="p11"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>d.rout.((z:1, a:0));</p>
+<p class="p11"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>d.rout.(());</p>
+<p class="p12"><br></p>
+<p class="p12"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
+<p class="p16"><span class="s3"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span>// sound example</p>
+<p class="p16"><span class="s3"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span>// this also allows to use events or dictionaries in patterns directly:</p>
+<p class="p11"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>(</p>
+<p class="p11"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>d = (freq: 402, dur: 0.3);</p>
+<p class="p11"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="s2">Pseq</span>([</p>
+<p class="p11"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>d,</p>
+<p class="p11"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>(freq: 300, dur: 0.3),</p>
+<p class="p11"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>d,</p>
+<p class="p11"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>(freq: [400, 770, 800], dur: 1),</p>
+<p class="p11"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>d,</p>
+<p class="p11"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>(freq: 451, dur: 0.33)</p>
+<p class="p11"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>], <span class="s2">inf</span>).play;</p>
+<p class="p11"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>);</p>
+<p class="p12"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
+<p class="p11"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>d[<span class="s6">\freq</span>] = [900, 1002, 1102];</p>
+<p class="p11"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>d[<span class="s6">\freq</span>] = [200, 101, 1102];</p>
+<p class="p12"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
+<p class="p12"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
 </body>
 </html>

Modified: trunk/build/Help/Collections/Event.html
===================================================================
--- trunk/build/Help/Collections/Event.html	2009-12-23 11:25:48 UTC (rev 9630)
+++ trunk/build/Help/Collections/Event.html	2009-12-26 13:57:03 UTC (rev 9631)
@@ -5,43 +5,48 @@
 <meta http-equiv="Content-Style-Type" content="text/css">
 <title></title>
 <meta name="Generator" content="Cocoa HTML Writer">
-<meta name="CocoaVersion" content="949.54">
+<meta name="CocoaVersion" content="1038.25">
 <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.p3 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; color: #0000bf}
 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 0.0px; font: 12.0px Monaco; min-height: 16.0px}
-p.p6 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 9.0px Monaco; color: #ad140d}
-p.p7 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 9.0px Monaco; min-height: 12.0px}
-p.p8 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 9.0px Monaco}
-p.p9 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #ad140d; min-height: 12.0px}
-p.p10 {margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Helvetica}
-p.p11 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 12.0px Helvetica}
-p.p12 {margin: 0.0px 0.0px 0.0px 85.0px; text-indent: -85.0px; font: 12.0px Helvetica}
-p.p13 {margin: 0.0px 0.0px 0.0px 85.0px; text-indent: -85.0px; font: 12.0px Helvetica; min-height: 14.0px}
-p.p14 {margin: 0.0px 0.0px 0.0px 85.0px; text-indent: -85.0px; font: 9.0px Monaco}
-p.p15 {margin: 0.0px 0.0px 0.0px 85.0px; text-indent: -85.0px; font: 14.0px Helvetica; min-height: 17.0px}
-p.p16 {margin: 0.0px 0.0px 0.0px 85.0px; text-indent: -85.0px; font: 9.0px Monaco; min-height: 12.0px}
-p.p17 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; color: #001bb9; min-height: 14.0px}
-p.p18 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco}
-p.p19 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #001bb9}
-p.p20 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; min-height: 12.0px}
-p.p21 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #ad140d}
+p.p5 {margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Helvetica}
+p.p6 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Monaco; color: #000000; min-height: 16.0px}
+p.p7 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 9.0px Monaco; color: #bf0000}
+p.p8 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 9.0px Monaco; color: #000000}
+p.p9 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 9.0px Monaco; min-height: 12.0px}
+p.p10 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Monaco; min-height: 16.0px}
+p.p11 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 9.0px Monaco; color: #bf0000}
+p.p12 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 9.0px Monaco}
+p.p13 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #bf0000; min-height: 12.0px}
+p.p14 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 12.0px Helvetica}
+p.p15 {margin: 0.0px 0.0px 0.0px 85.0px; text-indent: -85.0px; font: 12.0px Helvetica}
+p.p16 {margin: 0.0px 0.0px 0.0px 85.0px; text-indent: -85.0px; font: 12.0px Helvetica; min-height: 14.0px}
+p.p17 {margin: 0.0px 0.0px 0.0px 85.0px; text-indent: -85.0px; font: 9.0px Monaco}
+p.p18 {margin: 0.0px 0.0px 0.0px 85.0px; text-indent: -85.0px; font: 14.0px Helvetica; min-height: 17.0px}
+p.p19 {margin: 0.0px 0.0px 0.0px 85.0px; text-indent: -85.0px; font: 9.0px Monaco; min-height: 12.0px}
+p.p20 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; color: #0000bf; min-height: 14.0px}
+p.p21 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco}
 p.p22 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #0000bf}
-p.p23 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #000000}
+p.p23 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; min-height: 12.0px}
+p.p24 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #bf0000}
+p.p25 {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: #001bb9}
-span.s4 {font: 12.0px Monaco}
-span.s5 {color: #ad140d}
-span.s6 {color: #606060}
-span.s7 {font: 12.0px Helvetica}
-span.s8 {color: #2c7014}
-span.s9 {font: 9.0px Monaco}
-span.s10 {text-decoration: underline ; color: #001bb9}
+span.s3 {color: #0000bf}
+span.s4 {color: #0000bf}
+span.s5 {color: #0000bf}
+span.s6 {color: #007300}
+span.s7 {font: 12.0px Monaco}
+span.s8 {color: #bf0000}
+span.s9 {color: #606060}
+span.s10 {font: 12.0px Helvetica}
 span.s11 {color: #007300}
-span.s12 {color: #0000bf}
+span.s12 {font: 9.0px Monaco}
+span.s13 {text-decoration: underline ; color: #0000bf}
+span.s14 {color: #007300}
+span.s15 {color: #0000bf}
 span.Apple-tab-span {white-space:pre}
 </style>
 </head>
@@ -50,256 +55,272 @@
 <p class="p2"><br></p>
 <p class="p3"><span class="s2"><b>Inherits from: </b><a href="../Core/Object.html"><b>Object</b></a><b> : </b><a href="Collection.html"><b>Collection</b></a><b> : </b><a href="Set.html"><b>Set</b></a><b> : </b><a href="Dictionary.html"><b>Dictionary</b></a><b> : </b><a href="IdentityDictionary.html"><b>IdentityDictionary</b></a><b> : </b><a href="Environment.html"><b>Environment</b></a></span></p>
 <p class="p1"><b>Related classes: </b><a href="../Streams-Patterns-Events/Patterns/Pattern.html"><span class="s3"><b>Pattern</b></span></a></p>
-<p class="p4"><br></p>
-<p class="p4"><br></p>
-<p class="p1">An Event is an Environment that specifies an action to be taken in response to a <b>play </b>message. The key/value pairs within the Event specify the parameters of that action.<span class="Apple-converted-space">  </span>Events may be also used for object prototyping. See <a href="Environment.html"><span class="s3">Environment</span></a> for more details.</p>
+<p class="p4"><b></b><br></p>
+<p class="p1">An Event is an Environment that specifies an action to be taken in response to a <b>play </b>message. The key/value pairs within the Event specify the parameters of that action. Most methods, Event inherits from its superclasses, especially from <a href="Dictionary.html"><span class="s4">Dictionary</span></a>.</p>
 <p class="p2"><br></p>
-<p class="p1">Event provides a <b>defaultParentEvent</b> that defines a variety of different event types and provides a complete set of default key/value pairs for each type. The type is determined by the value of the <span class="s4">key</span><b> \type</b><span class="s4"> </span>which defaults to <b>\note</b>. Note events create synths on the server.</p>
 <p class="p2"><br></p>
-<p class="p1">Events can be written as a series of key value pairs enclosed in parentheses.<span class="Apple-converted-space">  </span>Empty parentheses will create an empty event.</p>
-<p class="p5"><br></p>
-<p class="p6"><span class="s2"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>( ).play;<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></span>// the default note</p>
-<p class="p7"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
-<p class="p8"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>(freq: 500, pan: -1) .play;<span class="Apple-tab-span">	</span><span class="s5">// 500 Hz, panned left</span></p>
-<p class="p7"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
-<p class="p8"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>(play: { ~what.postln }, what: <span class="s6">"hello happening"</span>).play; <span class="s5">// something else</span></p>
-<p class="p9"><br></p>
+<p class="p5"><b>Basic Usage:</b></p>
+<p class="p2"><br></p>
+<p class="p1">Events can be written as a series of key value pairs enclosed in parentheses.<span class="Apple-converted-space">  </span>Empty parentheses will create an empty event. They may be also used for object prototyping – <a href="Environment.html"><span class="s5">Environment</span></a> for more details.</p>
+<p class="p2"><br></p>
+<p class="p1"><b>Event as a name space for keeping objects:</b></p>
+<p class="p2"><br></p>
+<p class="p1">Because of this simple syntax, Events are often used as name space for keeping objects:</p>
+<p class="p6"><br></p>
+<p class="p7"><span class="s2"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span>// using an event to store values</p>
+<p class="p8"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>q = (n: 10, x: [1, 2, 3]);</p>
+<p class="p7"><span class="s2"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>q[</span><span class="s6">\y</span><span class="s2">] = q[</span><span class="s6">\x</span><span class="s2">] * q[</span><span class="s6">\n</span><span class="s2">]; </span>// similar to ~y = ~x * ~n, but in a separate name space</p>
+<p class="p7"><span class="s2"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>q.y = q.x * q.n;<span class="Apple-converted-space">  </span></span>// shorter way to do the same (pseudo-methods)</p>
+<p class="p7"><span class="s2"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>q.y; </span>// [ 100, 200, 300 ]</p>
+<p class="p9"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
+<p class="p2"><br></p>
+<p class="p1"><b>Event for specifying different things to happen:</b></p>
+<p class="p2"><br></p>
+<p class="p1">Event provides a <b>defaultParentEvent</b> that defines a variety of different event types and provides a complete set of default key/value pairs for each type. The type is determined by the value of the <span class="s7">key</span><b> \type</b><span class="s7"> </span>which defaults to <b>\note</b>. Note events create synths on the server.</p>
+<p class="p10"><br></p>
+<p class="p11"><span class="s2"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>( ).play;<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></span>// the default note</p>
+<p class="p9"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
+<p class="p12"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>(freq: 500, pan: -1) .play;<span class="Apple-tab-span">	</span><span class="s8">// 500 Hz, panned left</span></p>
+<p class="p9"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
+<p class="p12"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>(play: { ~what.postln }, what: <span class="s9">"hello happening"</span>).play; <span class="s8">// something else</span></p>
+<p class="p13"><br></p>
 <p class="p1">Per default, the play message derives its behaviour from the defaultParentEvent, which provides many default values, such as default instrument (\default), note (0), legato (0.8) and so on. Depending on the event type, these may differ completely and need not even represent a sound.</p>
 <p class="p4"><br></p>
-<p class="p10"><b>Class variables</b></p>
+<p class="p5"><b>Class variables</b></p>
 <p class="p2"><br></p>
-<p class="p11"><b><span class="Apple-tab-span">	</span>defaultParentEvent<span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></b>the default event used in most cases</p>
-<p class="p11"><b><span class="Apple-tab-span">	</span>parentEvents<span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></b>an IdentityDictionary of useful parent events</p>
-<p class="p11"><b><span class="Apple-tab-span">	</span>partialEvents<span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></b>an IdentityDictionary of Events that define the default values and functions</p>
-<p class="p11"><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><span class="Apple-tab-span">	</span>for different aspects of note generation (timing, volume, pitch, server to use, etc)</p>
+<p class="p14"><b><span class="Apple-tab-span">	</span>defaultParentEvent<span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></b>the default event used in most cases</p>
+<p class="p14"><b><span class="Apple-tab-span">	</span>parentEvents<span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></b>an IdentityDictionary of useful parent events</p>
+<p class="p14"><b><span class="Apple-tab-span">	</span>partialEvents<span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></b>an IdentityDictionary of Events that define the default values and functions</p>
+<p class="p14"><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><span class="Apple-tab-span">	</span>for different aspects of note generation (timing, volume, pitch, server to use, etc)</p>
 <p class="p2"><br></p>
-<p class="p10"><b>Creation / Class Methods</b></p>
+<p class="p5"><b>Creation / Class Methods</b></p>
 <p class="p2"><br></p>
-<p class="p12"><b><span class="Apple-tab-span">	</span>*new(n, proto, parent, know = true)<span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></b></p>
-<p class="p12"><b><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></b>create an event with initial size <b>n</b>.</p>
-<p class="p12"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><b>proto</b> may be provided as another event which is used to <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><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><i>override</i> keys in the event.</p>
-<p class="p12"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><b>parent</b> may be provided as another event which is used to <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><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><i>provide default</i> keys for the event without modifying it.</p>
-<p class="p12"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>If <b>know</b> is set to true, the event will respond to appropriate message calls. See <a href="Environment.html"><span class="s3">Environment</span></a> for more details.</p>
-<p class="p12"><b><span class="Apple-tab-span">	</span>*default<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><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></b></p>
-<p class="p12"><b><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></b>returns an empty event with defaultParentEvent as parent</p>
-<p class="p13"><b><span class="Apple-tab-span">	</span></b></p>
-<p class="p12"><b><span class="Apple-tab-span">	</span>*silent (dur)<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></p>
-<p class="p12"><b><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></b>returns an event that describes a pause of <b>dur</b> duration.</p>
-<p class="p13"><b><span class="Apple-tab-span">	</span></b></p>
-<p class="p12"><b><span class="Apple-tab-span">	</span>*addEventType(type, func)</b></p>
-<p class="p12"><b><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></b>Event types define alternate play functions that are selected by the value of <b>~type</b></p>
+<p class="p15"><b><span class="Apple-tab-span">	</span>*new(n, proto, parent, know = true)<span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></b></p>
+<p class="p15"><b><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></b>create an event with initial size <b>n</b>.</p>
+<p class="p15"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><b>proto</b> may be provided as another event which is used to <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><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><i>override</i> keys in the event.</p>
+<p class="p15"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><b>parent</b> may be provided as another event which is used to <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><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><i>provide default</i> keys for the event without modifying it.</p>
+<p class="p15"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>If <b>know</b> is set to true, the event will respond to appropriate message calls. See <a href="Environment.html"><span class="s3">Environment</span></a> for more details.</p>
+<p class="p15"><b><span class="Apple-tab-span">	</span>*default<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><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></b></p>
+<p class="p15"><b><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></b>returns an empty event with defaultParentEvent as parent</p>
+<p class="p16"><b><span class="Apple-tab-span">	</span></b></p>
+<p class="p15"><b><span class="Apple-tab-span">	</span>*silent (dur)<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></p>
+<p class="p15"><b><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></b>returns an event that describes a pause of <b>dur</b> duration.</p>
+<p class="p16"><b><span class="Apple-tab-span">	</span></b></p>
+<p class="p15"><b><span class="Apple-tab-span">	</span>*addEventType(type, func)</b></p>
+<p class="p15"><b><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></b>Event types define alternate play functions that are selected by the value of <b>~type</b></p>
 <p class="p2"><br></p>
 <p class="p2"><b><span class="Apple-tab-span">	</span></b></p>
 <p class="p1"><b>Methods</b></p>
 <p class="p2"><b><span class="Apple-tab-span">	</span></b></p>
 <p class="p1"><b><span class="Apple-tab-span">	</span>play<span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></b></p>
-<p class="p12"><b><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></b>play the event. This evaluates the function at \play (see example above).</p>
-<p class="p12"><b><span class="Apple-tab-span">	</span>delta<span class="Apple-tab-span">	</span></b></p>
-<p class="p12"><b><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></b>Returns the inter onset time – the time delay until the next event in a sequence. This usually depends on \dur and \stretch, but may be overridden by specifying \delta directly.</p>
-<p class="p14"><span class="s7"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span><span class="s3">Pn</span>((dur: 2, freq:8000)).play;</p>
-<p class="p13"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
-<p class="p12"><b><span class="Apple-tab-span">	</span>next(inval)<span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></b></p>
-<p class="p12"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>Combines an event given in the argument with the current event. This is used to enable events to be composed.</p>
-<p class="p14"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>(a: 6, b: 7).next((c: 100));</p>
+<p class="p15"><b><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></b>play the event. This evaluates the function at \play (see example above).</p>
+<p class="p15"><b><span class="Apple-tab-span">	</span>delta<span class="Apple-tab-span">	</span></b></p>
+<p class="p15"><b><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></b>Returns the inter onset time – the time delay until the next event in a sequence. This usually depends on \dur and \stretch, but may be overridden by specifying \delta directly.</p>
+<p class="p17"><span class="s10"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span><span class="s3">Pn</span>((dur: 2, freq:8000)).play;</p>
+<p class="p16"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
+<p class="p15"><b><span class="Apple-tab-span">	</span>next(inval)<span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></b></p>
+<p class="p15"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>Combines an event given in the argument with the current event. This is used to enable events to be composed.</p>
+<p class="p17"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>(a: 6, b: 7).next((c: 100));</p>
 <p class="p2"><span class="Apple-tab-span">	</span></p>
-<p class="p12"><span class="Apple-tab-span">	</span><b>playAndDelta(cleanup, mute)<span class="Apple-tab-span">	</span></b></p>
-<p class="p12"><b><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></b>used by <a href="../Streams-Patterns-Events/EventStreamPlayer.html"><span class="s3">EventStreamPlayer</span></a> to play Events and obtain a time increment</p>
-<p class="p13"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
-<p class="p12"><span class="Apple-tab-span">	</span><b>asUGenInput</b></p>
-<p class="p12"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>calls asControlInput.</p>
-<p class="p13"><br></p>
-<p class="p12"><b><span class="Apple-tab-span">	</span>asControlInput</b></p>
-<p class="p12"><b><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></b>Enables events to represent the server resources they created in an Event</p>
+<p class="p15"><span class="Apple-tab-span">	</span><b>playAndDelta(cleanup, mute)<span class="Apple-tab-span">	</span></b></p>
+<p class="p15"><b><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></b>used by <a href="../Streams-Patterns-Events/EventStreamPlayer.html"><span class="s3">EventStreamPlayer</span></a> to play Events and obtain a time increment</p>
+<p class="p16"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
+<p class="p15"><span class="Apple-tab-span">	</span><b>asUGenInput</b></p>
+<p class="p15"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>calls asControlInput.</p>
+<p class="p16"><br></p>
+<p class="p15"><b><span class="Apple-tab-span">	</span>asControlInput</b></p>
+<p class="p15"><b><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></b>Enables events to represent the server resources they created in an Event</p>
+<p class="p16"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
 <p class="p2"><br></p>
 <p class="p2"><b><span class="Apple-tab-span">	</span></b></p>
 <p class="p1"><b>Methods that allow Events to provide user control for </b><a href="../ServerArchitecture/Synth.html"><span class="s3"><b>Synth</b></span></a><span class="s3"><b>s</b></span><b> on </b><a href="../ServerArchitecture/Group.html"><span class="s3"><b>Group</b></span></a><span class="s3"><b>s</b></span></p>
-<p class="p13"><b><span class="Apple-tab-span">	</span></b></p>
-<p class="p12"><b><span class="Apple-tab-span">	</span>synth<span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></b><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>makes the event a control interface to the resultant synth when played</p>
-<p class="p12"><b><span class="Apple-tab-span">	</span>group<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>makes the event a control interface to the resultant group when played.</p>
-<p class="p12"><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><span class="Apple-tab-span">	</span>This is experimental, does not work consistently yet.</p>
-<p class="p13"><b><span class="Apple-tab-span">	</span></b></p>
-<p class="p12"><b><span class="Apple-tab-span">	</span>stop<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>free the synth or group</p>
-<p class="p12"><b><span class="Apple-tab-span">	</span>pause<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>pause the synth or group</p>
-<p class="p12"><b><span class="Apple-tab-span">	</span>resume<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>resume the synth or group</p>
-<p class="p12"><b><span class="Apple-tab-span">	</span>release<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>release the synth or group</p>
-<p class="p12"><b><span class="Apple-tab-span">	</span>set(key1, val1, ....)<span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></b>set a control value in the synth or group</p>
-<p class="p15"><br></p>
-<p class="p16"><br></p>
-<p class="p14"><span class="Apple-tab-span">	</span>a = (note: 2).play;</p>
-<p class="p14"><span class="Apple-tab-span">	</span>a.set(<span class="s8">\freq</span>, 700);</p>
-<p class="p14"><span class="Apple-tab-span">	</span>a.release;</p>
+<p class="p16"><b><span class="Apple-tab-span">	</span></b></p>
+<p class="p15"><b><span class="Apple-tab-span">	</span>synth<span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></b><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>makes the event a control interface to the resultant synth when played</p>
+<p class="p15"><b><span class="Apple-tab-span">	</span>group<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>makes the event a control interface to the resultant group when played.</p>
+<p class="p15"><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><span class="Apple-tab-span">	</span>This is experimental, does not work consistently yet.</p>
+<p class="p16"><b><span class="Apple-tab-span">	</span></b></p>
+<p class="p15"><b><span class="Apple-tab-span">	</span>stop<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>free the synth or group</p>
+<p class="p15"><b><span class="Apple-tab-span">	</span>pause<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>pause the synth or group</p>
+<p class="p15"><b><span class="Apple-tab-span">	</span>resume<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>resume the synth or group</p>
+<p class="p15"><b><span class="Apple-tab-span">	</span>release<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>release the synth or group</p>
+<p class="p15"><b><span class="Apple-tab-span">	</span>set(key1, val1, ....)<span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></b>set a control value in the synth or group</p>
+<p class="p18"><br></p>
+<p class="p19"><br></p>
+<p class="p17"><span class="Apple-tab-span">	</span>a = (note: 2).play;</p>
+<p class="p17"><span class="Apple-tab-span">	</span>a.set(<span class="s11">\freq</span>, 700);</p>
+<p class="p17"><span class="Apple-tab-span">	</span>a.release;</p>
 <p class="p2"><br></p>
 <p class="p2"><br></p>
-<p class="p10"><b>Events and SynthDefs</b></p>
-<p class="p17"><br></p>
-<p class="p1">The key used to select what synthdef is to be played is <b>\instrument</b>.<span class="Apple-converted-space">  </span>In order to use a <a href="../ServerArchitecture/SynthDef.html"><span class="s3">SynthDef</span></a> with an Event, send it a <b>store</b><span class="s4"> </span>or <b>memStore</b> message.<span class="Apple-converted-space">  </span>This creates a description of the SynthDef that the event can consult to determine its control names. The values of these names in the event are used when the event is played. (See <a href="../ServerArchitecture/SynthDesc.html"><span class="s3">SynthDesc</span></a><b> </b>for details.)</p>
+<p class="p5"><b>Events and SynthDefs</b></p>
+<p class="p20"><br></p>
+<p class="p1">The key used to select what synthdef is to be played is <b>\instrument</b>.<span class="Apple-converted-space">  </span>In order to use a <a href="../ServerArchitecture/SynthDef.html"><span class="s3">SynthDef</span></a> with an Event, send it a <b>store</b><span class="s7"> </span>or <b>memStore</b> message.<span class="Apple-converted-space">  </span>This creates a description of the SynthDef that the event can consult to determine its control names. The values of these names in the event are used when the event is played. (See <a href="../ServerArchitecture/SynthDesc.html"><span class="s3">SynthDesc</span></a><b> </b>for details.)</p>
 <p class="p2"><br></p>
 <p class="p1"><b>.store</b> is more like .load – it writes a .scsyndef file to disk and adds the SynthDef to the SynthDesc library.</p>
 <p class="p1"><b>.memStore</b> is more like .send – it sends the SynthDef over OSC and adds the SynthDef to the SynthDesc library.</p>
 <p class="p2"><br></p>
-<p class="p18">(</p>
-<p class="p19">SynthDef<span class="s2">(</span><span class="s8">\pm</span><span class="s2">, { </span>|out=0, freq=440, amp=0.1, pan=0, gate=1, ratio = 1, index = 1, ar = 0.1, dr = 0.1|</p>
-<p class="p18"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="s3">var</span> z;</p>
-<p class="p18"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>z = <span class="s3">LPF</span>.ar(</p>
-<p class="p18"><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><span class="s3">PMOsc</span>.ar(freq, freq * ratio, <span class="s3">Linen</span>.kr(gate, ar,index, dr), 0, 0.3),</p>
-<p class="p18"><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><span class="s3">XLine</span>.kr(<span class="s3">Rand</span>(4000, 5000), <span class="s3">Rand</span>(2500, 3200), 1)</p>
-<p class="p18"><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="s3">Linen</span>.kr(gate, 0.01, 0.7, dr, 2);</p>
-<p class="p18"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="s3">OffsetOut</span>.ar(out, <span class="s3">Pan2</span>.ar(z, pan, amp));</p>
-<p class="p18">}).memStore</p>
-<p class="p18">);</p>
-<p class="p20"><br></p>
-<p class="p18">(instrument: <span class="s8">\pm</span>).play;</p>
-<p class="p20"><br></p>
-<p class="p18">(instrument: <span class="s8">\pm</span>, ratio: 3.42, index: 12, freq: 150, ar: 8, dr: 3, sustain: 10).play;</p>
-<p class="p5"><br></p>
-<p class="p5"><span class="Apple-tab-span">	</span></p>
+<p class="p21">(</p>
+<p class="p22">SynthDef<span class="s2">(</span><span class="s11">\pm</span><span class="s2">, { </span>|out=0, freq=440, amp=0.1, pan=0, gate=1, ratio = 1, index = 1, ar = 0.1, dr = 0.1|</p>
+<p class="p21"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="s3">var</span> z;</p>
+<p class="p21"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>z = <span class="s3">LPF</span>.ar(</p>
+<p class="p21"><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><span class="s3">PMOsc</span>.ar(freq, freq * ratio, <span class="s3">Linen</span>.kr(gate, ar,index, dr), 0, 0.3),</p>
+<p class="p21"><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><span class="s3">XLine</span>.kr(<span class="s3">Rand</span>(4000, 5000), <span class="s3">Rand</span>(2500, 3200), 1)</p>
+<p class="p21"><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="s3">Linen</span>.kr(gate, 0.01, 0.7, dr, 2);</p>
+<p class="p21"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="s3">OffsetOut</span>.ar(out, <span class="s3">Pan2</span>.ar(z, pan, amp));</p>
+<p class="p21">}).memStore</p>
+<p class="p21">);</p>
+<p class="p23"><br></p>
+<p class="p21">(instrument: <span class="s11">\pm</span>).play;</p>
+<p class="p23"><br></p>
+<p class="p21">(instrument: <span class="s11">\pm</span>, ratio: 3.42, index: 12, freq: 150, ar: 8, dr: 3, sustain: 10).play;</p>
+<p class="p10"><br></p>
+<p class="p10"><span class="Apple-tab-span">	</span></p>
 <p class="p1"><b>note</b>: The use of <a href="../UGens/InOut/OffsetOut.html"><span class="s3">OffsetOut</span></a> in the SynthDef prevents irregularities that can result from the interaction of the timing of a sequence of notes and the control rate of the Server.</p>
 <p class="p2"><br></p>
 <p class="p2"><br></p>
 <p class="p2"><br></p>
-<p class="p10"><b>Multi-channel Expansion</b><span class="s9"><span class="Apple-tab-span">	</span></span></p>
-<p class="p20"><br></p>
+<p class="p5"><b>Multi-channel Expansion</b><span class="s12"><span class="Apple-tab-span">	</span></span></p>
+<p class="p23"><br></p>
 <p class="p1">If a key relevant to the action is assigned an <a href="Array.html"><span class="s3">Array</span></a>, the action is repeated on each element of the array:</p>
-<p class="p20"><span class="Apple-tab-span">	</span></p>
-<p class="p18">(degree: (0..12)).play<span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="s5">// a diatonic cluster</span></p>
+<p class="p23"><span class="Apple-tab-span">	</span></p>
+<p class="p21">(degree: (0..12)).play<span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="s8">// a diatonic cluster</span></p>
 <p class="p2"><br></p>
 <p class="p1">If several keys are assigned arrays, the action is repeated for each element of the largest array.</p>
 <p class="p1">Smaller arrays are rotated through repeatedly.<span class="Apple-converted-space">  </span>Here are some examples:</p>
 <p class="p2"><br></p>
-<p class="p21">// every other note of the diatonic cluster: stacked thirds</p>
-<p class="p18">(degree: (0..12), amp: [0, 0.1]).play</p>
+<p class="p24">// every other note of the diatonic cluster: stacked thirds</p>
+<p class="p21">(degree: (0..12), amp: [0, 0.1]).play</p>
 <p class="p2"><br></p>
-<p class="p21">// every other note of the semitone cluster: a wholetone cluster again</p>
-<p class="p18">(note: (0..12), amp: [0, 0.1]).play</p>
+<p class="p24">// every other note of the semitone cluster: a wholetone cluster again</p>
+<p class="p21">(note: (0..12), amp: [0, 0.1]).play</p>
 <p class="p2"><br></p>
-<p class="p21">// every third note of the semitone cluster: a diminished chord</p>
-<p class="p18">(note: (0..12), amp: [0, 0, 0.1]).play</p>
-<p class="p20"><br></p>
-<p class="p21">// the same with different sustain times</p>
-<p class="p18">(note: (0..12), amp: [0, 0, 0.1], sustain:[0.1, 0.3, 1.3, 2.5]).play</p>
-<p class="p20"><br></p>
-<p class="p21">// timingOffset gives a tempo-relative offset time to each synth</p>
-<p class="p18">(instrument: <span class="s8">\pm</span>, ratio: [2.3, 4.5, 1.7], timingOffset: [0, 1.2, 3], sustain: [0.2, 2, 1]).play;</p>
-<p class="p20"><br></p>
-<p class="p20"><br></p>
+<p class="p24">// every third note of the semitone cluster: a diminished chord</p>
+<p class="p21">(note: (0..12), amp: [0, 0, 0.1]).play</p>
+<p class="p23"><br></p>
+<p class="p24">// the same with different sustain times</p>
+<p class="p21">(note: (0..12), amp: [0, 0, 0.1], sustain:[0.1, 0.3, 1.3, 2.5]).play</p>
+<p class="p23"><br></p>
+<p class="p24">// timingOffset gives a tempo-relative offset time to each synth</p>
+<p class="p21">(instrument: <span class="s11">\pm</span>, ratio: [2.3, 4.5, 1.7], timingOffset: [0, 1.2, 3], sustain: [0.2, 2, 1]).play;</p>
+<p class="p23"><br></p>
+<p class="p23"><br></p>
 <p class="p2"><br></p>
-<p class="p10"><b>Arrayed Arguments</b><span class="s9"><span class="Apple-tab-span">	</span></span></p>
-<p class="p20"><br></p>
+<p class="p5"><b>Arrayed Arguments</b><span class="s12"><span class="Apple-tab-span">	</span></span></p>
+<p class="p23"><br></p>
 <p class="p1">It is possible to assign an array to one of a <a href="../ServerArchitecture/SynthDef.html"><span class="s3">SynthDef</span></a>'s control names. For example:</p>
 <p class="p2"><br></p>
-<p class="p19">(</p>
-<p class="p19">SynthDef<span class="s2">(</span><span class="s8">\test</span><span class="s2">, { </span>| out = 0, amp = 0.01, freq = #[300,400,400], pan, gate = 1 |</p>
-<p class="p18"><span class="Apple-tab-span">	</span><span class="s3">var</span> audio, env;</p>
-<p class="p21"><span class="s2"><span class="Apple-tab-span">	</span>audio = </span><span class="s3">Mix</span><span class="s2">.ar(</span><span class="s3">Pulse</span><span class="s2">.ar(freq, 0.5));<span class="Apple-tab-span">	</span></span>// this is a mixture of three oscillators</p>
-<p class="p18"><span class="Apple-tab-span">	</span>env = <span class="s3">Linen</span>.kr(gate, susLevel: amp , doneAction: 2);<span class="Apple-converted-space">  </span><span class="s5">// envelope deletes the synt when done</span></p>
-<p class="p18"><span class="Apple-tab-span">	</span>audio = audio * env;</p>
-<p class="p18"><span class="Apple-tab-span">	</span><span class="s3">OffsetOut</span>.ar(0, audio );</p>
-<p class="p18">}).memStore</p>
-<p class="p18">);</p>
-<p class="p20"><span class="Apple-tab-span">	</span></p>
+<p class="p22">(</p>
+<p class="p22">SynthDef<span class="s2">(</span><span class="s11">\test</span><span class="s2">, { </span>| out = 0, amp = 0.01, freq = #[300,400,400], pan, gate = 1 |</p>
+<p class="p21"><span class="Apple-tab-span">	</span><span class="s3">var</span> audio, env;</p>
+<p class="p24"><span class="s2"><span class="Apple-tab-span">	</span>audio = </span><span class="s3">Mix</span><span class="s2">.ar(</span><span class="s3">Pulse</span><span class="s2">.ar(freq, 0.5));<span class="Apple-tab-span">	</span></span>// this is a mixture of three oscillators</p>
+<p class="p21"><span class="Apple-tab-span">	</span>env = <span class="s3">Linen</span>.kr(gate, susLevel: amp , doneAction: 2);<span class="Apple-converted-space">  </span><span class="s8">// envelope deletes the synt when done</span></p>
+<p class="p21"><span class="Apple-tab-span">	</span>audio = audio * env;</p>
+<p class="p21"><span class="Apple-tab-span">	</span><span class="s3">OffsetOut</span>.ar(0, audio );</p>
+<p class="p21">}).memStore</p>
+<p class="p21">);</p>
+<p class="p23"><span class="Apple-tab-span">	</span></p>
 <p class="p1">Within an event, arrayed arguments of this sort must be enclosed within an additional array to distinguish them from arguments intended for multi-channel expansion.</p>
-<p class="p20"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
-<p class="p21">// one synth, use enclosing array to prevent multi-channel expansion</p>
-<p class="p18">(instrument: <span class="s8">\test</span>, note: [[0, 2, 4]]).play</p>
-<p class="p20"><br></p>
-<p class="p21">// two synths</p>
-<p class="p18">(instrument: <span class="s8">\test</span>, note: [[0, 2, 4], [6, 8, 10]]).play</p>
+<p class="p23"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
+<p class="p24">// one synth, use enclosing array to prevent multi-channel expansion</p>
+<p class="p21">(instrument: <span class="s11">\test</span>, note: [[0, 2, 4]]).play</p>
+<p class="p23"><br></p>
+<p class="p24">// two synths</p>
+<p class="p21">(instrument: <span class="s11">\test</span>, note: [[0, 2, 4], [6, 8, 10]]).play</p>
 <p class="p2"><br></p>
 <p class="p2"><br></p>
-<p class="p10"><b>Events and Patterns</b></p>
+<p class="p5"><b>Events and Patterns</b></p>
 <p class="p2"><br></p>
-<p class="p1">Events are closely integrated with the Patterns library.<span class="Apple-converted-space">  </span>Different patterns can be bound to different keys (or collections of keys) to specify the resultant music.<span class="Apple-converted-space">  </span>See the help<span class="Apple-converted-space">  </span>files <a href="../Streams-Patterns-Events/Patterns/Pattern.html"><span class="s10">Pattern</span></a> and <a href="../Streams-Patterns-Events/Patterns/Pbind.html"><span class="s10">Pbind</span></a> and the tutorials<span class="Apple-converted-space">  </span><a href="../Streams-Patterns-Events/Streams-Patterns-Events4.html"><span class="s10">Streams-Patterns-Events4</span></a> and <a href="../Streams-Patterns-Events/Streams-Patterns-Events5.html"><span class="s10">Streams-Patterns-Events5</span></a> for more details on Patterns.</p>
+<p class="p1">Events are closely integrated with the Patterns library.<span class="Apple-converted-space">  </span>Different patterns can be bound to different keys (or collections of keys) to specify the resultant music.<span class="Apple-converted-space">  </span>See the help<span class="Apple-converted-space">  </span>files <a href="../Streams-Patterns-Events/Patterns/Pattern.html"><span class="s13">Pattern</span></a> and <a href="../Streams-Patterns-Events/Patterns/Pbind.html"><span class="s13">Pbind</span></a> and the tutorials<span class="Apple-converted-space">  </span><a href="../Streams-Patterns-Events/Streams-Patterns-Events4.html"><span class="s13">Streams-Patterns-Events4</span></a> and <a href="../Streams-Patterns-Events/Streams-Patterns-Events5.html"><span class="s13">Streams-Patterns-Events5</span></a> for more details on Patterns.</p>
 <p class="p2"><br></p>
 <p class="p1">Patterns that return events may be played on a clock: dur specifies the time between two subsequent events.</p>
 <p class="p2"><br></p>
-<p class="p21">// Pseq returns one item in the list after the other</p>
-<p class="p18">(</p>
-<p class="p19">Pseq<span class="s2">([</span></p>
-<p class="p18"><span class="Apple-tab-span">	</span>(note: 2, sustain: 1, dur: 1.5),<span class="Apple-converted-space"> </span></p>
-<p class="p18"><span class="Apple-tab-span">	</span>(note: [5, 7], sustain: 0.5, dur: 0.8),<span class="Apple-converted-space"> </span></p>
-<p class="p18"><span class="Apple-tab-span">	</span>(note: [2, 6], sustain: 1, dur: 0.8)</p>
-<p class="p18">]).play</p>
-<p class="p18">);</p>
-<p class="p20"><br></p>
-<p class="p21">// Pbind binds parameters to events:</p>
-<p class="p18">(</p>
-<p class="p19">Pbind<span class="s2">(</span></p>
-<p class="p18"><span class="Apple-tab-span">	</span><span class="s8">\note</span>, <span class="s3">Pseq</span>([2, [5, 7], [2, 6]]),</p>
-<p class="p18"><span class="Apple-tab-span">	</span><span class="s8">\sustain</span>, <span class="s3">Pseq</span>([1, 0.5, 1]),</p>
-<p class="p18"><span class="Apple-tab-span">	</span><span class="s8">\dur</span>, <span class="s3">Pseq</span>([1.5, 0.8, 0.8])</p>
-<p class="p18">).play</p>
-<p class="p18">)</p>
-<p class="p20"><br></p>
-<p class="p21">// per-event timing may be specified:</p>
-<p class="p18">(</p>
+<p class="p24">// Pseq returns one item in the list after the other</p>
+<p class="p21">(</p>
+<p class="p22">Pseq<span class="s2">([</span></p>
+<p class="p21"><span class="Apple-tab-span">	</span>(note: 2, sustain: 1, dur: 1.5),<span class="Apple-converted-space"> </span></p>
+<p class="p21"><span class="Apple-tab-span">	</span>(note: [5, 7], sustain: 0.5, dur: 0.8),<span class="Apple-converted-space"> </span></p>
+<p class="p21"><span class="Apple-tab-span">	</span>(note: [2, 6], sustain: 1, dur: 0.8)</p>
+<p class="p21">]).play</p>
+<p class="p21">);</p>
+<p class="p23"><br></p>
+<p class="p24">// Pbind binds parameters to events:</p>
+<p class="p21">(</p>
 <p class="p22">Pbind<span class="s2">(</span></p>
-<p class="p23"><span class="Apple-tab-span">	</span><span class="s11">\note</span>, <span class="s12">Pseq</span>([[0, 9], [5, 7], [2, 6]], <span class="s12">inf</span>),</p>
-<p class="p23"><span class="Apple-tab-span">	</span><span class="s11">\sustain</span>, <span class="s12">Pseq</span>([1, 0.5, 1], <span class="s12">inf</span>),</p>
-<p class="p23"><span class="Apple-tab-span">	</span><span class="s11">\dur</span>, <span class="s12">Pseq</span>([1.5, 0.8, 0.8], <span class="s12">inf</span>),</p>
-<p class="p23"><span class="Apple-tab-span">	</span><span class="s11">\timingOffset</span>, <span class="s12">Pseq</span>([[0, 0.3], [0, 0.01]], <span class="s12">inf</span>)</p>
-<p class="p23">).play</p>
-<p class="p18">)</p>
+<p class="p21"><span class="Apple-tab-span">	</span><span class="s11">\note</span>, <span class="s3">Pseq</span>([2, [5, 7], [2, 6]]),</p>
+<p class="p21"><span class="Apple-tab-span">	</span><span class="s11">\sustain</span>, <span class="s3">Pseq</span>([1, 0.5, 1]),</p>
+<p class="p21"><span class="Apple-tab-span">	</span><span class="s11">\dur</span>, <span class="s3">Pseq</span>([1.5, 0.8, 0.8])</p>
+<p class="p21">).play</p>
+<p class="p21">)</p>
+<p class="p23"><br></p>
+<p class="p24">// per-event timing may be specified:</p>
+<p class="p21">(</p>
+<p class="p25">Pbind<span class="s2">(</span></p>
+<p class="p21"><span class="Apple-tab-span">	</span><span class="s14">\note</span>, <span class="s15">Pseq</span>([[0, 9], [5, 7], [2, 6]], <span class="s15">inf</span>),</p>
+<p class="p21"><span class="Apple-tab-span">	</span><span class="s14">\sustain</span>, <span class="s15">Pseq</span>([1, 0.5, 1], <span class="s15">inf</span>),</p>
+<p class="p21"><span class="Apple-tab-span">	</span><span class="s14">\dur</span>, <span class="s15">Pseq</span>([1.5, 0.8, 0.8], <span class="s15">inf</span>),</p>
+<p class="p21"><span class="Apple-tab-span">	</span><span class="s14">\timingOffset</span>, <span class="s15">Pseq</span>([[0, 0.3], [0, 0.01]], <span class="s15">inf</span>)</p>
+<p class="p21">).play</p>
+<p class="p21">)</p>
 <p class="p2"><br></p>
 <p class="p2"><br></p>
 <p class="p1">Here is an example that illustrates some more of the keys defined by the defaultParentEvent.</p>
 <p class="p1">Note that it is equivalent to write Pbind(\key, val, ...) and Pbind(*[key: val, ...]).</p>
 <p class="p2"><br></p>
-<p class="p18">(</p>
-<p class="p19">Pbind<span class="s2">(*[</span></p>
-<p class="p18"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>stepsPerOctave:<span class="Apple-tab-span">	</span><span class="s3">Pstep</span>(<span class="s3">Pseq</span>((2..12).mirror, <span class="s3">inf</span>),12), <span class="s5">// 3 - 12 tone e.t. scales</span></p>
-<p class="p18"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>note:<span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="s3">Pseq</span>((0..12).mirror, <span class="s3">inf</span>),<span class="Apple-tab-span">	</span><span class="s5">// play full notes up and down</span></p>
-<p class="p18"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>ctranspose:<span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="s3">Pwhite</span>(-0.2, 0.2),<span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="s5">// detune up to +-20 cents</span></p>
-<p class="p18"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>detune:<span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="s3">Pwhite</span>(-1.0, 1.0),<span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="s5">// detune up to 1 Hz<span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span></p>
-<p class="p18"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>sustain:<span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="s3">Prand</span>([0.2, 0.2, 0.2, 4], <span class="s3">inf</span>), <span class="Apple-tab-span">	</span><span class="s5">// notes last 0.2 or 4 seconds</span></p>
-<p class="p21"><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 class="Apple-tab-span">	</span></span>// 1 in 6 chance waits 0.8 seconds:</p>
-<p class="p18"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>dur:<span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="s3">Prand</span>([0.2, 0.2, 0.2, 0.2, 0.2, 0.8], <span class="s3">inf</span>),</p>
-<p class="p18"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>db:<span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="s3">Pstep</span>(<span class="s3">Pseq</span>([-15, -25, -20, -25], <span class="s3">inf</span>), 0.8)<span class="s5">// 4 beat accent structure</span></p>
-<p class="p18"><span class="Apple-tab-span">	</span>]).play<span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
-<p class="p18">)</p>
+<p class="p21">(</p>
+<p class="p22">Pbind<span class="s2">(*[</span></p>

@@ Diff output truncated at 100000 characters. @@

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/