<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<id>tag:www.nabble.com,2006:forum-534</id>
	<title>Nabble - Supercollider - Dev</title>
	<updated>2008-10-08T03:21:32Z</updated>
	<link rel="self" type="application/atom+xml" href="http://www.nabble.com/Supercollider---Dev-f534.xml" />
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Supercollider---Dev-f534.html" />
	<subtitle type="html"></subtitle>
	
<entry>
	<id>tag:www.nabble.com,2006:post-19876137</id>
	<title>SF.net SVN: supercollider:[7819] trunk/build/SCClassLibrary/Common/GUI/osx/ SCImage.sc</title>
	<published>2008-10-08T03:21:32Z</published>
	<updated>2008-10-08T03:21:32Z</updated>
	<author>
		<name>thelych-2</name>
	</author>
	<content type="html">Revision: 7819
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://supercollider.svn.sourceforge.net/supercollider/?rev=7819&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://supercollider.svn.sourceforge.net/supercollider/?rev=7819&amp;view=rev&lt;/a&gt;&lt;br&gt;Author: &amp;nbsp; thelych
&lt;br&gt;Date: &amp;nbsp; &amp;nbsp; 2008-10-08 10:21:32 +0000 (Wed, 08 Oct 2008)
&lt;br&gt;&lt;br&gt;Log Message:
&lt;br&gt;-----------
&lt;br&gt;corrections on SCImage, SCImageFilter
&lt;br&gt;&lt;br&gt;Modified Paths:
&lt;br&gt;--------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; trunk/build/SCClassLibrary/Common/GUI/osx/SCImage.sc
&lt;br&gt;&lt;br&gt;Modified: trunk/build/SCClassLibrary/Common/GUI/osx/SCImage.sc
&lt;br&gt;===================================================================
&lt;br&gt;--- trunk/build/SCClassLibrary/Common/GUI/osx/SCImage.sc	2008-10-08 08:41:49 UTC (rev 7818)
&lt;br&gt;+++ trunk/build/SCClassLibrary/Common/GUI/osx/SCImage.sc	2008-10-08 10:21:32 UTC (rev 7819)
&lt;br&gt;@@ -196,6 +196,11 @@
&lt;br&gt;&amp;nbsp;		this.applyFilters(filter);
&lt;br&gt;&amp;nbsp;		^this;
&lt;br&gt;&amp;nbsp;	}
&lt;br&gt;+	invert {
&lt;br&gt;+		if(autoMode, {this.accelerated_(true)});
&lt;br&gt;+		this.applyFilters(SCImageFilter(\CIColorInvert));
&lt;br&gt;+		^this;
&lt;br&gt;+	}
&lt;br&gt;&amp;nbsp;	interpolation {
&lt;br&gt;&amp;nbsp;		var index;
&lt;br&gt;&amp;nbsp;		index = this.prGetInterpolation;
&lt;br&gt;@@ -239,6 +244,15 @@
&lt;br&gt;&amp;nbsp;		pixelArray = Int32Array.newClear(width*height);
&lt;br&gt;&amp;nbsp;		this.prLoadPixels(pixelArray);
&lt;br&gt;&amp;nbsp;		^pixelArray;
&lt;br&gt;+	}
&lt;br&gt;+	loadPixels {arg array;
&lt;br&gt;+		if(autoMode, {this.accelerated_(false)});
&lt;br&gt;+		if(array.isKindOf(Int32Array).not, {
&lt;br&gt;+			&amp;quot;SCImage: array should be an Int32Array&amp;quot;.warn;
&lt;br&gt;+			^nil;
&lt;br&gt;+		});
&lt;br&gt;+		this.prLoadPixels(array);
&lt;br&gt;+		^this;
&lt;br&gt;&amp;nbsp;	}	
&lt;br&gt;&amp;nbsp;	pixels_ {|array|
&lt;br&gt;&amp;nbsp;		this.setPixels(array);
&lt;br&gt;@@ -283,6 +297,9 @@
&lt;br&gt;&amp;nbsp;			});
&lt;br&gt;&amp;nbsp;		};
&lt;br&gt;&amp;nbsp;	}
&lt;br&gt;+	removeAllFilters {
&lt;br&gt;+		filters = [];
&lt;br&gt;+	}
&lt;br&gt;&amp;nbsp;	createCache { // only for Filters
&lt;br&gt;&amp;nbsp;		prCache = this.filteredWith(filters);
&lt;br&gt;&amp;nbsp;	}
&lt;br&gt;@@ -291,9 +308,10 @@
&lt;br&gt;&amp;nbsp;	*/
&lt;br&gt;&amp;nbsp;	flatten {
&lt;br&gt;&amp;nbsp;		this.clearCache;
&lt;br&gt;-		this.accelerated_(true); // we have to force acceleration in case of a previous mod
&lt;br&gt;+		this.accelerated_(true); // force acceleration just in case
&lt;br&gt;&amp;nbsp;		this.applyFilters(filters);
&lt;br&gt;&amp;nbsp;		filters = []; // clear all filters
&lt;br&gt;+		if(autoMode, {this.accelerated_(false)}); // ensure bitmap representation
&lt;br&gt;&amp;nbsp;	}
&lt;br&gt;&amp;nbsp;	
&lt;br&gt;&amp;nbsp;	applyFilters {|filters, crop=0, region|
&lt;br&gt;@@ -387,7 +405,7 @@
&lt;br&gt;&amp;nbsp;	}	
&lt;br&gt;&amp;nbsp;	draw {|aFunction|
&lt;br&gt;&amp;nbsp;		this.lockFocus;
&lt;br&gt;-		aFunction.value(this.bounds);
&lt;br&gt;+		aFunction.value(this);
&lt;br&gt;&amp;nbsp;		this.unlockFocus;
&lt;br&gt;&amp;nbsp;	}
&lt;br&gt;&amp;nbsp;	
&lt;br&gt;@@ -659,17 +677,18 @@
&lt;br&gt;&amp;nbsp;		&amp;quot;SCImage filter categories done !&amp;quot;.postln;
&lt;br&gt;&amp;nbsp;	}
&lt;br&gt;&amp;nbsp;	
&lt;br&gt;-	*new {|filterName|
&lt;br&gt;-		^super.newCopyArgs(filterName.asSymbol).initSCImageFilter;
&lt;br&gt;+	*new {|filterName, args|
&lt;br&gt;+		^super.newCopyArgs(filterName.asSymbol).initSCImageFilter(args);
&lt;br&gt;&amp;nbsp;	}
&lt;br&gt;&amp;nbsp;	
&lt;br&gt;&amp;nbsp;	defaults {
&lt;br&gt;&amp;nbsp;		values = Array.new;
&lt;br&gt;&amp;nbsp;	}
&lt;br&gt;&amp;nbsp;	
&lt;br&gt;-	initSCImageFilter {
&lt;br&gt;+	initSCImageFilter {|arguments|
&lt;br&gt;&amp;nbsp;		attributes = this.class.getFilterAttributes(name);
&lt;br&gt;&amp;nbsp;		values = Array.new;
&lt;br&gt;+		this.attributes_(arguments);
&lt;br&gt;&amp;nbsp;	}
&lt;br&gt;&amp;nbsp;	
&lt;br&gt;&amp;nbsp;	*translateObject {|object|
&lt;br&gt;@@ -742,6 +761,22 @@
&lt;br&gt;&amp;nbsp;		^result;
&lt;br&gt;&amp;nbsp;	}
&lt;br&gt;&amp;nbsp;	
&lt;br&gt;+	// new
&lt;br&gt;+	attributes_ {|array|
&lt;br&gt;+		var method, value, max;
&lt;br&gt;+		if(array.isNil, {^this});
&lt;br&gt;+		max = array.size.asInteger &amp;gt;&amp;gt; 1;
&lt;br&gt;+		max.do {|i|
&lt;br&gt;+			method = array[i &amp;lt;&amp;lt; 1];
&lt;br&gt;+			value = array[(i &amp;lt;&amp;lt; 1) + 1];
&lt;br&gt;+			this.perform(method.asSymbol.asSetter, value);
&lt;br&gt;+		};
&lt;br&gt;+	}
&lt;br&gt;+	
&lt;br&gt;+	set {arg ... values;
&lt;br&gt;+		this.attributes_(values);
&lt;br&gt;+	}
&lt;br&gt;+	
&lt;br&gt;&amp;nbsp;	prAttributeRange { |attr|
&lt;br&gt;&amp;nbsp;		_SCImageFilter_GetAttributeMinMax
&lt;br&gt;&amp;nbsp;		^this.primitiveFailed
&lt;br&gt;&lt;br&gt;&lt;br&gt;This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
&lt;br&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;sc-dev mailing list
&lt;br&gt;&lt;br&gt;info (subscribe and unsubscribe): &lt;a href=&quot;http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml&lt;/a&gt;&lt;br&gt;archive: &lt;a href=&quot;http://www.listarc.bham.ac.uk/marchives/sc-dev/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.listarc.bham.ac.uk/marchives/sc-dev/&lt;/a&gt;&lt;br&gt;search: &lt;a href=&quot;http://www.listarc.bham.ac.uk/lists/sc-dev/search/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.listarc.bham.ac.uk/lists/sc-dev/search/&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/SF.net-SVN%3A-supercollider%3A-7819--trunk-build-SCClassLibrary-Common-GUI-osx--SCImage.sc-tp19876137p19876137.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19875123</id>
	<title>Re: LocalBuf</title>
	<published>2008-10-08T02:09:24Z</published>
	<updated>2008-10-08T02:09:24Z</updated>
	<author>
		<name>Dan Stowell</name>
	</author>
	<content type="html">2008/10/8, Julian Rohrhuber &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19875123&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;rohrhuber@...&lt;/a&gt;&amp;gt;:
&lt;br&gt;&amp;gt; I've almost completely implemented a LocalBuf UGen that creates a
&lt;br&gt;&amp;gt; Graph-local buffer which can be used by all other buffer ugens. Thus, e.g.
&lt;br&gt;&amp;gt; FFT can be made synth-wise. This simplifies some buffer based things.
&lt;br&gt;&lt;br&gt;Sounds good indeed. Looking forward to the details.
&lt;br&gt;&lt;br&gt;&amp;gt; It
&lt;br&gt;&amp;gt; implies some changes to the GET_BUF macros, and to Graph.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;I'll post a diff soon (and discuss whether it makes sense) (but maybe hold
&lt;br&gt;&amp;gt; back Cruft Police updates to DelayUGens.cpp and FFT ugens?)
&lt;br&gt;&lt;br&gt;OK, I'll tell them to put the investigation on hold.
&lt;br&gt;&lt;br&gt;I have one more cruft-trim to propose which I think will be orthogonal
&lt;br&gt;to this, but feel free to complain if it isn't.
&lt;br&gt;&lt;br&gt;Dan
&lt;br&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;sc-dev mailing list
&lt;br&gt;&lt;br&gt;info (subscribe and unsubscribe): &lt;a href=&quot;http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml&lt;/a&gt;&lt;br&gt;archive: &lt;a href=&quot;http://www.listarc.bham.ac.uk/marchives/sc-dev/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.listarc.bham.ac.uk/marchives/sc-dev/&lt;/a&gt;&lt;br&gt;search: &lt;a href=&quot;http://www.listarc.bham.ac.uk/lists/sc-dev/search/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.listarc.bham.ac.uk/lists/sc-dev/search/&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/LocalBuf-tp19875027p19875123.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19875027</id>
	<title>LocalBuf</title>
	<published>2008-10-08T02:02:26Z</published>
	<updated>2008-10-08T02:02:26Z</updated>
	<author>
		<name>Julian Rohrhuber</name>
	</author>
	<content type="html">I've almost completely implemented a LocalBuf UGen that creates a 
&lt;br&gt;Graph-local buffer which can be used by all other buffer ugens. Thus, 
&lt;br&gt;e.g. FFT can be made synth-wise. This simplifies some buffer based 
&lt;br&gt;things. It implies some changes to the GET_BUF macros, and to Graph.
&lt;br&gt;&lt;br&gt;I'll post a diff soon (and discuss whether it makes sense) (but maybe 
&lt;br&gt;hold back Cruft Police updates to DelayUGens.cpp and FFT ugens?)
&lt;br&gt;-- 
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;.
&lt;br&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;sc-dev mailing list
&lt;br&gt;&lt;br&gt;info (subscribe and unsubscribe): &lt;a href=&quot;http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml&lt;/a&gt;&lt;br&gt;archive: &lt;a href=&quot;http://www.listarc.bham.ac.uk/marchives/sc-dev/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.listarc.bham.ac.uk/marchives/sc-dev/&lt;/a&gt;&lt;br&gt;search: &lt;a href=&quot;http://www.listarc.bham.ac.uk/lists/sc-dev/search/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.listarc.bham.ac.uk/lists/sc-dev/search/&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/LocalBuf-tp19875027p19875027.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19874859</id>
	<title>Re: SCImage [announcement]</title>
	<published>2008-10-08T01:49:35Z</published>
	<updated>2008-10-08T01:49:35Z</updated>
	<author>
		<name>Dan Stowell</name>
	</author>
	<content type="html">Looks good here. Announce to sc-users?
&lt;br&gt;&lt;br&gt;Dan
&lt;br&gt;&lt;br&gt;2008/10/8, blackrain &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19874859&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;blackrain.sc@...&lt;/a&gt;&amp;gt;:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Thanks everyone for your feedback =)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;SCImage has been checked in on rev 7815.
&lt;br&gt;&amp;gt; &amp;nbsp;Just tested on a clean checkout and everything builds fine.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;cheers,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;x
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;On Tue, Oct 7, 2008 at 12:36 PM, thor &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19874859&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;th.list@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt; Yes please!
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt; I've made Photoshop in SC now. But you all have the crack anyway
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt; so I won't post the code.
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt; SCImage is really great.
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt; thor
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt; On 7 Oct 2008, at 13:15, LFSaw wrote:
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt; yeees!
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt; :-)
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt; (finally, an sc-only stft viewer is in sight)
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt; lg
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Till
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt; On 07.10.2008, at 13:40, Josh Parmenter wrote:
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt; I say commit... others?
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt; Josh
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt; On Oct 7, 2008, at 2:19 AM, blackrain wrote:
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Hello All,
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Are there any objections to commit SCimage?
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt;&amp;gt; thor, thanks!
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Glad you liked SCImage thor, Charles and I appreciate your feedback.
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt;&amp;gt; cheers,
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt;&amp;gt; x
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt;&amp;gt; On Thu, Sep 25, 2008 at 6:13 AM, thor &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19874859&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;th.list@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Ok. it compiled now.
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; This is truly mind blowing!!! Thank you very much Charles and
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Blackrain.
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; What a great piece of work. I could spend the whole day exploring this
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; but
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; unfortunately I've got other things to do. I will report back when I've
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; had
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; a chance to work with this properly.
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; It's great that get and set pixel is working. The next step for me is
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; to do
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; some
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; speed tests. Have you got some code that you've used while working on
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; this?
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Thanks
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; thor
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; On 24 Sep 2008, at 22:32, &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19874859&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;thelych@...&lt;/a&gt; wrote:
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; oh thor,
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; and you will have probably to re-apply the patch otherwise the
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; primitives
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; since there is some mods on GUIPrimitives (actually a single line) :
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; patch -p0 -N &amp;lt; SCImage-rev7786.diff
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; say (y) yes if it asks you anything.
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; best,
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; charles
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; _______________________________________________
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; sc-dev mailing list
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; info (subscribe and unsubscribe):
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; archive: &lt;a href=&quot;http://www.listarc.bham.ac.uk/marchives/sc-dev/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.listarc.bham.ac.uk/marchives/sc-dev/&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; search: &lt;a href=&quot;http://www.listarc.bham.ac.uk/lists/sc-dev/search/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.listarc.bham.ac.uk/lists/sc-dev/search/&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; _______________________________________________
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; sc-dev mailing list
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; info (subscribe and unsubscribe):
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; archive: &lt;a href=&quot;http://www.listarc.bham.ac.uk/marchives/sc-dev/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.listarc.bham.ac.uk/marchives/sc-dev/&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; search: &lt;a href=&quot;http://www.listarc.bham.ac.uk/lists/sc-dev/search/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.listarc.bham.ac.uk/lists/sc-dev/search/&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt;&amp;gt; _______________________________________________
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt;&amp;gt; sc-dev mailing list
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt;&amp;gt; info (subscribe and unsubscribe):
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt;&amp;gt; archive: &lt;a href=&quot;http://www.listarc.bham.ac.uk/marchives/sc-dev/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.listarc.bham.ac.uk/marchives/sc-dev/&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt;&amp;gt; search: &lt;a href=&quot;http://www.listarc.bham.ac.uk/lists/sc-dev/search/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.listarc.bham.ac.uk/lists/sc-dev/search/&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt; ******************************************
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt; /* Joshua D. Parmenter
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://www.realizedsound.net/josh/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.realizedsound.net/josh/&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt; &amp;quot;Every composer – at all times and in all cases – gives his own
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt; interpretation of how modern society is structured: whether actively or
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt; passively, consciously or unconsciously, he makes choices in this regard. He
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt; may be conservative or he may subject himself to continual renewal; or he
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt; may strive for a revolutionary, historical or social palingenesis.&amp;quot; - Luigi
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt; Nono
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt; */
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt; _______________________________________________
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt; sc-dev mailing list
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt; info (subscribe and unsubscribe):
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt; archive: &lt;a href=&quot;http://www.listarc.bham.ac.uk/marchives/sc-dev/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.listarc.bham.ac.uk/marchives/sc-dev/&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;&amp;gt; search: &lt;a href=&quot;http://www.listarc.bham.ac.uk/lists/sc-dev/search/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.listarc.bham.ac.uk/lists/sc-dev/search/&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt; _______________________________________________
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt; sc-dev mailing list
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt; info (subscribe and unsubscribe):
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt; &lt;a href=&quot;http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt; archive: &lt;a href=&quot;http://www.listarc.bham.ac.uk/marchives/sc-dev/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.listarc.bham.ac.uk/marchives/sc-dev/&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;&amp;gt; search: &lt;a href=&quot;http://www.listarc.bham.ac.uk/lists/sc-dev/search/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.listarc.bham.ac.uk/lists/sc-dev/search/&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt; _______________________________________________
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt; sc-dev mailing list
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt; info (subscribe and unsubscribe):
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt; &lt;a href=&quot;http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt; archive: &lt;a href=&quot;http://www.listarc.bham.ac.uk/marchives/sc-dev/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.listarc.bham.ac.uk/marchives/sc-dev/&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt; search: &lt;a href=&quot;http://www.listarc.bham.ac.uk/lists/sc-dev/search/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.listarc.bham.ac.uk/lists/sc-dev/search/&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;_______________________________________________
&lt;br&gt;&amp;gt; &amp;nbsp;sc-dev mailing list
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;info (subscribe and unsubscribe): &lt;a href=&quot;http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp;archive: &lt;a href=&quot;http://www.listarc.bham.ac.uk/marchives/sc-dev/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.listarc.bham.ac.uk/marchives/sc-dev/&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp;search: &lt;a href=&quot;http://www.listarc.bham.ac.uk/lists/sc-dev/search/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.listarc.bham.ac.uk/lists/sc-dev/search/&lt;/a&gt;&lt;br&gt;&amp;gt;
&lt;/div&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;&lt;a href=&quot;http://www.mcld.co.uk&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.mcld.co.uk&lt;/a&gt;&lt;br&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;sc-dev mailing list
&lt;br&gt;&lt;br&gt;info (subscribe and unsubscribe): &lt;a href=&quot;http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml&lt;/a&gt;&lt;br&gt;archive: &lt;a href=&quot;http://www.listarc.bham.ac.uk/marchives/sc-dev/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.listarc.bham.ac.uk/marchives/sc-dev/&lt;/a&gt;&lt;br&gt;search: &lt;a href=&quot;http://www.listarc.bham.ac.uk/lists/sc-dev/search/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.listarc.bham.ac.uk/lists/sc-dev/search/&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/SCImage--announcement--tp19646577p19874859.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19874798</id>
	<title>Re: Re: Cruft police part 2: OscUGens.cpp</title>
	<published>2008-10-08T01:45:04Z</published>
	<updated>2008-10-08T01:45:04Z</updated>
	<author>
		<name>Dan Stowell</name>
	</author>
	<content type="html">OK, thanks, I've now committed the other changes but I've left the
&lt;br&gt;BufEnvGen stuff in place for now.
&lt;br&gt;&lt;br&gt;&amp;quot;BufEnvGen is useful&amp;quot; is definitely not true while it's not actually
&lt;br&gt;implemented though! I'd like to suggest that either someone finishes
&lt;br&gt;the job off within the next (say) two years, so that BufEnvGen
&lt;br&gt;actually comes into existence, or it should be removed at a later
&lt;br&gt;date.
&lt;br&gt;&lt;br&gt;Dan
&lt;br&gt;&lt;br&gt;&lt;br&gt;2008/10/2, ronald kuivila &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19874798&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;rkuivila@...&lt;/a&gt;&amp;gt;:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Hi all,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; I think BufEnvGen is useful - at least for historical continuity with
&lt;br&gt;&amp;gt; csound instruments found in various
&lt;br&gt;&amp;gt; &amp;nbsp;computer music books (Dodge, etc).
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;RJK
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;On Oct 2, 2008, at 7:10 AM, Dan Stowell wrote:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; PS at the same time maybe I can suggest the same for:
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; &amp;nbsp;FilterUGens.cpp -&amp;gt; &amp;quot;LowShelf&amp;quot;
&lt;br&gt;&amp;gt; &amp;gt; &amp;nbsp;LFUGens.cpp -&amp;gt; &amp;quot;BufEnvGen&amp;quot;
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; Both were deactivated ever since first cvs checkin, never used.
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; There are a couple of on-list messages about BufEnvGen, saying &amp;quot;hey
&lt;br&gt;&amp;gt; &amp;gt; what about this, maybe would be useful&amp;quot; - if you think so please
&lt;br&gt;&amp;gt; &amp;gt; comment. But I don't think it should remain in the codebase if it's
&lt;br&gt;&amp;gt; &amp;gt; only ever going to be a theoretical entity...!
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; Dan
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; 2008/10/2 Dan Stowell &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19874798&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;danstowell@...&lt;/a&gt;&amp;gt;:
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; Hi -
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; OscUGens.cpp has contained (since the very first CVS checkin of SC3!)
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; a lump of code which is deactivated and therefore vestigial. It
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; defines oscillators COsc2/PMOsc/OscX4/OscX2, but since the code is
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; deactivated they're unavailable, and I assume that either there was
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; some problem with their implementation or that they were deemed
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; unnecessary. PMOsc now exists in SC3 as a pseudo-ugen.
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; There's also a deactivated vKlank_next() method: a vectorised version
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; of Klank_next, added in 2003 (rev 1341), deactivated in 2004 (rev
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; 4031). Not sure why deactivated: JMc's commit message was &amp;quot;Fix
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; compiler warnings&amp;quot;.
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; Any support/opposition for removing this vestigial code? Vestigial
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; code impedes maintenance, porting etc, so I'm in favour of removing.
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; Of course, the code will stay in the archives for future reference.
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; Dan
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; --
&lt;br&gt;&amp;gt; &amp;gt; &lt;a href=&quot;http://www.mcld.co.uk&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.mcld.co.uk&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; _______________________________________________
&lt;br&gt;&amp;gt; &amp;gt; sc-dev mailing list
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; info (subscribe and unsubscribe):
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;gt; archive: &lt;a href=&quot;http://www.listarc.bham.ac.uk/marchives/sc-dev/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.listarc.bham.ac.uk/marchives/sc-dev/&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;gt; search:
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://www.listarc.bham.ac.uk/lists/sc-dev/search/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.listarc.bham.ac.uk/lists/sc-dev/search/&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;_______________________________________________
&lt;br&gt;&amp;gt; &amp;nbsp;sc-dev mailing list
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;info (subscribe and unsubscribe):
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp;archive: &lt;a href=&quot;http://www.listarc.bham.ac.uk/marchives/sc-dev/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.listarc.bham.ac.uk/marchives/sc-dev/&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp;search: &lt;a href=&quot;http://www.listarc.bham.ac.uk/lists/sc-dev/search/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.listarc.bham.ac.uk/lists/sc-dev/search/&lt;/a&gt;&lt;br&gt;&amp;gt;
&lt;/div&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;&lt;a href=&quot;http://www.mcld.co.uk&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.mcld.co.uk&lt;/a&gt;&lt;br&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;sc-dev mailing list
&lt;br&gt;&lt;br&gt;info (subscribe and unsubscribe): &lt;a href=&quot;http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml&lt;/a&gt;&lt;br&gt;archive: &lt;a href=&quot;http://www.listarc.bham.ac.uk/marchives/sc-dev/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.listarc.bham.ac.uk/marchives/sc-dev/&lt;/a&gt;&lt;br&gt;search: &lt;a href=&quot;http://www.listarc.bham.ac.uk/lists/sc-dev/search/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.listarc.bham.ac.uk/lists/sc-dev/search/&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Cruft-police-part-2%3A-OscUGens.cpp-tp19777066p19874798.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19874639</id>
	<title>SF.net SVN: supercollider:[7817] trunk/Source/plugins/OscUGens.cpp</title>
	<published>2008-10-08T01:35:43Z</published>
	<updated>2008-10-08T01:35:43Z</updated>
	<author>
		<name>danstowell</name>
	</author>
	<content type="html">Revision: 7817
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://supercollider.svn.sourceforge.net/supercollider/?rev=7817&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://supercollider.svn.sourceforge.net/supercollider/?rev=7817&amp;view=rev&lt;/a&gt;&lt;br&gt;Author: &amp;nbsp; danstowell
&lt;br&gt;Date: &amp;nbsp; &amp;nbsp; 2008-10-08 08:35:43 +0000 (Wed, 08 Oct 2008)
&lt;br&gt;&lt;br&gt;Log Message:
&lt;br&gt;-----------
&lt;br&gt;Cruft removal: removing some code that was added many years ago but never completed, never activated, and it seems we can live without (COsc2/PMOsc/OscX4/OscX2). (Note that PMOsc does exist in SC3, but as a pseudo-ugen.)
&lt;br&gt;&lt;br&gt;Modified Paths:
&lt;br&gt;--------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; trunk/Source/plugins/OscUGens.cpp
&lt;br&gt;&lt;br&gt;Modified: trunk/Source/plugins/OscUGens.cpp
&lt;br&gt;===================================================================
&lt;br&gt;--- trunk/Source/plugins/OscUGens.cpp	2008-10-08 05:34:43 UTC (rev 7816)
&lt;br&gt;+++ trunk/Source/plugins/OscUGens.cpp	2008-10-08 08:35:43 UTC (rev 7817)
&lt;br&gt;@@ -133,36 +133,6 @@
&lt;br&gt;&amp;nbsp;	int32 m_phase1, m_phase2;
&lt;br&gt;&amp;nbsp;};
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-#if 0
&lt;br&gt;-struct COsc2 : public TableLookup
&lt;br&gt;-{
&lt;br&gt;-	float *mTable2, *mTable3;
&lt;br&gt;-	int32 m_phase1, m_phase2;
&lt;br&gt;-};
&lt;br&gt;-
&lt;br&gt;-struct OscX4 : public TableLookup
&lt;br&gt;-{
&lt;br&gt;-	float* mTables[8];
&lt;br&gt;-	int32 m_phase;
&lt;br&gt;-	float m_xpos, m_ypos;
&lt;br&gt;-};
&lt;br&gt;-
&lt;br&gt;-struct OscX2 : public TableLookup
&lt;br&gt;-{
&lt;br&gt;-	float* mTables[4];
&lt;br&gt;-	int32 m_phase, m_counter;
&lt;br&gt;-	double m_xfadeslope, m_xfade;
&lt;br&gt;-};
&lt;br&gt;-
&lt;br&gt;-struct PMOsc : public Unit
&lt;br&gt;-{
&lt;br&gt;-	int32 m_phase1, m_phase2, m_iphasemod;
&lt;br&gt;-	float m_pmindex;
&lt;br&gt;-	double m_cpstoinc, m_radtoinc;
&lt;br&gt;-};
&lt;br&gt;-#endif
&lt;br&gt;-
&lt;br&gt;-
&lt;br&gt;&amp;nbsp;struct VOsc : public Unit
&lt;br&gt;&amp;nbsp;{
&lt;br&gt;&amp;nbsp;	double m_cpstoinc, m_radtoinc;
&lt;br&gt;@@ -328,23 +298,6 @@
&lt;br&gt;&amp;nbsp;void COsc_Ctor(COsc *unit);
&lt;br&gt;&amp;nbsp;void COsc_next(COsc *unit, int inNumSamples);
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-#if 0
&lt;br&gt;-void COsc2_Ctor(COsc2 *unit);
&lt;br&gt;-void COsc2_next(COsc2 *unit, int inNumSamples);
&lt;br&gt;-
&lt;br&gt;-void PMOsc_Ctor(PMOsc *unit);
&lt;br&gt;-void PMOsc_next_kkkk(PMOsc *unit, int inNumSamples);
&lt;br&gt;-
&lt;br&gt;-void OscX4_Ctor(OscX4 *unit);
&lt;br&gt;-void OscX4_SetTables(OscX4 *unit, int32 inSize, float* inTableA, float* inTableB, 
&lt;br&gt;-		float* inTableC, float* inTableD);
&lt;br&gt;-void OscX4_next(OscX4 *unit, int inNumSamples);
&lt;br&gt;-
&lt;br&gt;-void OscX2_Ctor(OscX2 *unit);
&lt;br&gt;-void OscX2_SetTables(OscX2 *unit, int32 inSize, float* inTableA, float* inTableB);
&lt;br&gt;-void OscX2_next(OscX2 *unit, int inNumSamples);
&lt;br&gt;-#endif
&lt;br&gt;-
&lt;br&gt;&amp;nbsp;void VOsc_Ctor(VOsc *unit);
&lt;br&gt;&amp;nbsp;void VOsc_next_ik(VOsc *unit, int inNumSamples);
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -2060,76 +2013,6 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;////////////////////////////////////////////////////////////////////////////////////////////////////////
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-#if 0
&lt;br&gt;-
&lt;br&gt;-void PMOsc_Ctor(PMOsc *unit)
&lt;br&gt;-{
&lt;br&gt;-	SETCALC(PMOsc_next_kkkk);
&lt;br&gt;-	float phasemod = ZIN0(3);
&lt;br&gt;-	unit-&amp;gt;m_cpstoinc = ft-&amp;gt;mSineSize * SAMPLEDUR * 65536.;
&lt;br&gt;-	unit-&amp;gt;m_radtoinc = ft-&amp;gt;mSineSize * 65536. * rtwopi;
&lt;br&gt;-	unit-&amp;gt;m_phase1 = 0;
&lt;br&gt;-	unit-&amp;gt;m_phase2 = 0;
&lt;br&gt;-	unit-&amp;gt;m_iphasemod = (int32)(unit-&amp;gt;m_radtoinc * phasemod);
&lt;br&gt;-	PMOsc_next_kkkk(1);
&lt;br&gt;-}
&lt;br&gt;-
&lt;br&gt;-void PMOsc_next_kkkk(PMOsc *unit, int inNumSamples)
&lt;br&gt;-{
&lt;br&gt;-	float *out = ZOUT(0);
&lt;br&gt;-	float carfreqin = ZIN0(0);
&lt;br&gt;-	float modfreqin = ZIN0(1);
&lt;br&gt;-	float next_pmindex = ZIN0(2);
&lt;br&gt;-	float phasemod = ZIN0(3);
&lt;br&gt;-	
&lt;br&gt;-	float* sine = ft-&amp;gt;mSine;
&lt;br&gt;-	float* pmsine = gPMSine;
&lt;br&gt;-	int32 phase1 = unit-&amp;gt;m_phase1;
&lt;br&gt;-	int32 phase2 = unit-&amp;gt;m_phase2;
&lt;br&gt;-	float cpstoinc = unit-&amp;gt;m_cpstoinc;
&lt;br&gt;-	float radtoinc = unit-&amp;gt;m_radtoinc;
&lt;br&gt;-	int32 iphasemod = unit-&amp;gt;m_iphasemod;
&lt;br&gt;-	
&lt;br&gt;-	float next_iphasemod = radtoinc * phasemod;
&lt;br&gt;-	int32 iphasemod_slope = (next_iphasemod - iphasemod) * unit-&amp;gt;mRate-&amp;gt;mSlopeFactor;
&lt;br&gt;-	int32 end_iphasemod = iphasemod + iphasemod_slope * inNumSamples;
&lt;br&gt;-	float pmindex = unit-&amp;gt;m_pmindex;
&lt;br&gt;-	float pmindex_slope = (next_pmindex - pmindex) * unit-&amp;gt;mRate-&amp;gt;mSlopeFactor;
&lt;br&gt;-	
&lt;br&gt;-	int32 carfreq = (int32)(cpstoinc * carfreqin);
&lt;br&gt;-	int32 modfreq = (int32)(cpstoinc * modfreqin) + iphasemod_slope;
&lt;br&gt;-
&lt;br&gt;-	if (pmindex_slope != 0.) {
&lt;br&gt;-		LOOP(inNumSamples,
&lt;br&gt;-			/* calculate modulator */
&lt;br&gt;-			float pmout = *(float*)((char*)pmsine + ((phase1 &amp;gt;&amp;gt; xlobits) &amp; xlomask13)) * pmindex;
&lt;br&gt;-			phase1 += modfreq; 
&lt;br&gt;-			/* calculate carrier */
&lt;br&gt;-			*++out = *(float*)((char*)sine + (((phase2 + (int32)pmout) &amp;gt;&amp;gt; xlobits) &amp; xlomask13));
&lt;br&gt;-			phase2 += carfreq;
&lt;br&gt;-			pmindex += pmindex_slope;
&lt;br&gt;-		);
&lt;br&gt;-	} else {
&lt;br&gt;-		LOOP(inNumSamples,
&lt;br&gt;-			/* calculate modulator */
&lt;br&gt;-			float pmout = *(float*)((char*)pmsine + ((phase1 &amp;gt;&amp;gt; xlobits) &amp; xlomask13)) * pmindex;
&lt;br&gt;-			phase1 += modfreq; 
&lt;br&gt;-			/* calculate carrier */
&lt;br&gt;-			*++out = *(float*)((char*)sine + (((phase2 + (int32)pmout) &amp;gt;&amp;gt; xlobits) &amp; xlomask13));
&lt;br&gt;-			phase2 += carfreq;
&lt;br&gt;-		);
&lt;br&gt;-	}
&lt;br&gt;-	unit-&amp;gt;m_phase1 = phase1;
&lt;br&gt;-	unit-&amp;gt;m_phase2 = phase2;
&lt;br&gt;-	unit-&amp;gt;m_iphasemod = end_iphasemod;
&lt;br&gt;-	unit-&amp;gt;m_pmindex = pmindex;
&lt;br&gt;-	
&lt;br&gt;-}
&lt;br&gt;-#endif
&lt;br&gt;-
&lt;br&gt;-////////////////////////////////////////////////////////////////////////////////////////////////////////
&lt;br&gt;-
&lt;br&gt;-
&lt;br&gt;&amp;nbsp;void COsc_Ctor(COsc *unit)
&lt;br&gt;&amp;nbsp;{
&lt;br&gt;&amp;nbsp;	unit-&amp;gt;m_fbufnum = -1e9f;
&lt;br&gt;@@ -2180,330 +2063,6 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;////////////////////////////////////////////////////////////////////////////////////////////////////////
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-
&lt;br&gt;-#if 0
&lt;br&gt;-void COsc2_Ctor(COsc2 *unit)
&lt;br&gt;-{
&lt;br&gt;-	SETCALC(COsc2_next);
&lt;br&gt;-	unit-&amp;gt;m_cpstoinc = unit-&amp;gt;mTableSize * SAMPLEDUR * 65536.;
&lt;br&gt;-	unit-&amp;gt;m_phase1 = 0;
&lt;br&gt;-	unit-&amp;gt;m_phase2 = 0;
&lt;br&gt;-	COsc2_next(unit, 1);
&lt;br&gt;-}
&lt;br&gt;-
&lt;br&gt;-
&lt;br&gt;-void COsc2_SetTables(COsc2 *unit, int32 inSize, float* inTableA, float* inTableB)
&lt;br&gt;-{
&lt;br&gt;-	unit-&amp;gt;mTable0 = inTableA;
&lt;br&gt;-	unit-&amp;gt;mTable1 = inTableA + 1;
&lt;br&gt;-	unit-&amp;gt;mTable2 = inTableB;
&lt;br&gt;-	unit-&amp;gt;mTable3 = inTableB + 1;
&lt;br&gt;-	unit-&amp;gt;mTableSize = inSize;
&lt;br&gt;-	unit-&amp;gt;m_cpstoinc = inSize * SAMPLEDUR * 65536.;
&lt;br&gt;-	unit-&amp;gt;m_lomask = (inSize - 1) &amp;lt;&amp;lt; 3;
&lt;br&gt;-}
&lt;br&gt;-
&lt;br&gt;-
&lt;br&gt;-void COsc2_next(COsc2 *unit, int inNumSamples)
&lt;br&gt;-{
&lt;br&gt;-	// get table
&lt;br&gt;-	GET_TABLE
&lt;br&gt;-		int size = buf-&amp;gt;samples;
&lt;br&gt;-		int tableSize2 = size &amp;gt;&amp;gt; 1;
&lt;br&gt;-		float *table0 = bufData;
&lt;br&gt;-		float *table1 = table0 + 1;
&lt;br&gt;-		float *table2 = table0 + size2;
&lt;br&gt;-		float *table3 = table2 + 1;
&lt;br&gt;-		if (tableSize != unit-&amp;gt;mTableSize) {
&lt;br&gt;-			unit-&amp;gt;mTableSize = tableSize;
&lt;br&gt;-			unit-&amp;gt;m_lomask = (tableSize2 - 1) &amp;lt;&amp;lt; 3; // Osc, OscN, COsc, COsc, COsc2, OscX4, OscX2
&lt;br&gt;-			// SigOsc, Osc, OscN, PMOsc, COsc, COsc2, OscX4, OscX2
&lt;br&gt;-			unit-&amp;gt;m_cpstoinc = tableSize2 * SAMPLEDUR * 65536.; 
&lt;br&gt;-		}
&lt;br&gt;-
&lt;br&gt;-	float *out = ZOUT(0);
&lt;br&gt;-	float freqin = ZIN0(0);
&lt;br&gt;-	float beats = ZIN0(1);
&lt;br&gt;-	
&lt;br&gt;-	float *table0 = unit-&amp;gt;mTable0;
&lt;br&gt;-	float *table1 = unit-&amp;gt;mTable1;
&lt;br&gt;-	float *table2 = unit-&amp;gt;mTable2;
&lt;br&gt;-	float *table3 = unit-&amp;gt;mTable3;
&lt;br&gt;-	int32 phase1 = unit-&amp;gt;m_phase1;
&lt;br&gt;-	int32 phase2 = unit-&amp;gt;m_phase2;
&lt;br&gt;-	int32 lomask = unit-&amp;gt;m_lomask;
&lt;br&gt;-	
&lt;br&gt;-	int32 cfreq = (int32)(unit-&amp;gt;m_cpstoinc * freqin);
&lt;br&gt;-	int32 beatf = (int32)(unit-&amp;gt;m_cpstoinc * beats);
&lt;br&gt;-	int32 freq1 = cfreq + beatf;
&lt;br&gt;-	int32 freq2 = cfreq - beatf;
&lt;br&gt;-	LOOP(inNumSamples,
&lt;br&gt;-		float a = lookupi1(table0, table1, phase1, lomask);
&lt;br&gt;-		float b = lookupi1(table2, table3, phase2, lomask);
&lt;br&gt;-		ZXP(out) = a + b;
&lt;br&gt;-		phase1 += freq1;
&lt;br&gt;-		phase2 += freq2;
&lt;br&gt;-	);
&lt;br&gt;-	unit-&amp;gt;m_phase1 = phase1;
&lt;br&gt;-	unit-&amp;gt;m_phase2 = phase2;
&lt;br&gt;-	
&lt;br&gt;-}
&lt;br&gt;-
&lt;br&gt;-
&lt;br&gt;-////////////////////////////////////////////////////////////////////////////////////////////////////////
&lt;br&gt;-
&lt;br&gt;-
&lt;br&gt;-void OscX4_Ctor(OscX4 *unit)
&lt;br&gt;-{
&lt;br&gt;-	SETCALC(OscX4_next);
&lt;br&gt;-	unit-&amp;gt;m_cpstoinc = unit-&amp;gt;mTableSize * SAMPLEDUR * 65536.;
&lt;br&gt;-	unit-&amp;gt;m_xpos = ZIN0(1) * 0.5 + 0.5;
&lt;br&gt;-	unit-&amp;gt;m_ypos = ZIN0(2) * 0.5 + 0.5;
&lt;br&gt;-	unit-&amp;gt;m_phase = 0;
&lt;br&gt;-	OscX4_next(unit, 1);
&lt;br&gt;-}
&lt;br&gt;-
&lt;br&gt;-void OscX4_SetTables(OscX4 *unit, int32 inSize, float* inTableA, float* inTableB, 
&lt;br&gt;-		float* inTableC, float* inTableD)
&lt;br&gt;-{
&lt;br&gt;-	unit-&amp;gt;mTableSize = inSize;
&lt;br&gt;-	unit-&amp;gt;mTables[0] = inTableA;
&lt;br&gt;-	unit-&amp;gt;mTables[1] = inTableA + 1;
&lt;br&gt;-	unit-&amp;gt;mTables[2] = inTableB;
&lt;br&gt;-	unit-&amp;gt;mTables[3] = inTableB + 1;
&lt;br&gt;-	unit-&amp;gt;mTables[4] = inTableC;
&lt;br&gt;-	unit-&amp;gt;mTables[5] = inTableC + 1;
&lt;br&gt;-	unit-&amp;gt;mTables[6] = inTableD;
&lt;br&gt;-	unit-&amp;gt;mTables[7] = inTableD + 1;
&lt;br&gt;-	unit-&amp;gt;m_cpstoinc = inSize * SAMPLEDUR * 65536.;
&lt;br&gt;-	unit-&amp;gt;m_lomask = (inSize - 1) &amp;lt;&amp;lt; 3;
&lt;br&gt;-}
&lt;br&gt;-
&lt;br&gt;-void OscX4_next(OscX4 *unit, int inNumSamples)
&lt;br&gt;-{
&lt;br&gt;-	float *out = ZOUT(0);
&lt;br&gt;-	float freqin = ZIN0(0);
&lt;br&gt;-	float next_xpos = ZIN0(1) * 0.5 + 0.5;
&lt;br&gt;-	float next_ypos = ZIN0(2) * 0.5 + 0.5;
&lt;br&gt;-	
&lt;br&gt;-	float xpos = unit-&amp;gt;m_xpos;
&lt;br&gt;-	float ypos = unit-&amp;gt;m_ypos;
&lt;br&gt;-	float val1, val2;
&lt;br&gt;-	
&lt;br&gt;-	float **tables = unit-&amp;gt;mTables;
&lt;br&gt;-	int32 phase = unit-&amp;gt;m_phase;
&lt;br&gt;-	int32 lomask = unit-&amp;gt;m_lomask;
&lt;br&gt;-	
&lt;br&gt;-	int32 freq = (int32)(unit-&amp;gt;m_cpstoinc * freqin);
&lt;br&gt;-	float xpos_slope = CALCSLOPE(next_xpos, xpos);
&lt;br&gt;-	float ypos_slope = CALCSLOPE(next_ypos, ypos);
&lt;br&gt;-	LOOP(inNumSamples,
&lt;br&gt;-		float pfrac = PhaseFrac1(phase);
&lt;br&gt;-		int32 index = (phase &amp;gt;&amp;gt; xlobits1) &amp; lomask;
&lt;br&gt;-			val1 = *(float*)((char*)tables[0] + index);
&lt;br&gt;-			val2 = *(float*)((char*)tables[1] + index);
&lt;br&gt;-		float out0 = val1 + val2 * pfrac;
&lt;br&gt;-			val1 = *(float*)((char*)tables[2] + index);
&lt;br&gt;-			val2 = *(float*)((char*)tables[3] + index);
&lt;br&gt;-		float out1 = val1 + val2 * pfrac;
&lt;br&gt;-			val1 = *(float*)((char*)tables[4] + index);
&lt;br&gt;-			val2 = *(float*)((char*)tables[5] + index);
&lt;br&gt;-		float out2 = val1 + val2 * pfrac;
&lt;br&gt;-			val1 = *(float*)((char*)tables[6] + index);
&lt;br&gt;-			val2 = *(float*)((char*)tables[7] + index);
&lt;br&gt;-		float out3 = val1 + val2 * pfrac;
&lt;br&gt;-		
&lt;br&gt;-		float out8 = lininterp(xpos, out0, out1);
&lt;br&gt;-		float out9 = lininterp(xpos, out2, out3);
&lt;br&gt;-		ZXP(out) &amp;nbsp;= lininterp(ypos, out9, out8);		
&lt;br&gt;-		
&lt;br&gt;-		phase += freq;
&lt;br&gt;-		xpos += xpos_slope;
&lt;br&gt;-		ypos += ypos_slope;
&lt;br&gt;-	);
&lt;br&gt;-	unit-&amp;gt;m_xpos = xpos;
&lt;br&gt;-	unit-&amp;gt;m_ypos = ypos;
&lt;br&gt;-	unit-&amp;gt;m_phase = phase;
&lt;br&gt;-	
&lt;br&gt;-}
&lt;br&gt;-
&lt;br&gt;-void OscX4_nextB(OscX4 *unit, int inNumSamples);
&lt;br&gt;-void OscX4_nextB(OscX4 *unit, int inNumSamples)
&lt;br&gt;-{
&lt;br&gt;-	float *out = ZOUT(0);
&lt;br&gt;-	float freqin = ZIN0(0);
&lt;br&gt;-	float next_xpos = ZIN0(1) * 0.5 + 0.5;
&lt;br&gt;-	float next_ypos = ZIN0(2) * 0.5 + 0.5;
&lt;br&gt;-	
&lt;br&gt;-	float xpos = unit-&amp;gt;m_xpos;
&lt;br&gt;-	float ypos = unit-&amp;gt;m_ypos;
&lt;br&gt;-	float val1, val2;
&lt;br&gt;-	
&lt;br&gt;-	float **tables = unit-&amp;gt;mTables;
&lt;br&gt;-	int32 phase = unit-&amp;gt;m_phase;
&lt;br&gt;-	int32 lomask = unit-&amp;gt;m_lomask;
&lt;br&gt;-	
&lt;br&gt;-	int32 freq = (int32)(unit-&amp;gt;m_cpstoinc * freqin);
&lt;br&gt;-	float xpos_slope = CALCSLOPE(next_xpos, xpos);
&lt;br&gt;-	float ypos_slope = CALCSLOPE(next_ypos, ypos);
&lt;br&gt;-	LOOP(inNumSamples,
&lt;br&gt;-		float pfrac = PhaseFrac1(phase);
&lt;br&gt;-		int32 index = (phase &amp;gt;&amp;gt; xlobits) &amp; lomask;
&lt;br&gt;-			val1 = tables[0][index];
&lt;br&gt;-			val2 = tables[1][index];
&lt;br&gt;-		float out0 = val1 + val2 * pfrac;
&lt;br&gt;-			val1 = tables[2][index];
&lt;br&gt;-			val2 = tables[3][index];
&lt;br&gt;-		float out1 = val1 + val2 * pfrac;
&lt;br&gt;-			val1 = tables[4][index];
&lt;br&gt;-			val2 = tables[5][index];
&lt;br&gt;-		float out2 = val1 + val2 * pfrac;
&lt;br&gt;-			val1 = tables[6][index];
&lt;br&gt;-			val2 = tables[7][index];
&lt;br&gt;-		float out3 = val1 + val2 * pfrac;
&lt;br&gt;-		
&lt;br&gt;-		float out8 = lininterp(xpos, out0, out1);
&lt;br&gt;-		float out9 = lininterp(xpos, out2, out3);
&lt;br&gt;-		ZXP(out) &amp;nbsp;= lininterp(ypos, out9, out8);		
&lt;br&gt;-		
&lt;br&gt;-		phase += freq;
&lt;br&gt;-		xpos += xpos_slope;
&lt;br&gt;-		ypos += ypos_slope;
&lt;br&gt;-	);
&lt;br&gt;-	unit-&amp;gt;m_xpos = xpos;
&lt;br&gt;-	unit-&amp;gt;m_ypos = ypos;
&lt;br&gt;-	unit-&amp;gt;m_phase = phase;
&lt;br&gt;-	
&lt;br&gt;-}
&lt;br&gt;-
&lt;br&gt;-void OscX4_nextC(OscX4 *unit, int inNumSamples);
&lt;br&gt;-void OscX4_nextC(OscX4 *unit, int inNumSamples)
&lt;br&gt;-{
&lt;br&gt;-	float *out = ZOUT(0);
&lt;br&gt;-	float freqin = ZIN0(0);
&lt;br&gt;-	float next_xpos = ZIN0(1) * 0.5 + 0.5;
&lt;br&gt;-	float next_ypos = ZIN0(2) * 0.5 + 0.5;
&lt;br&gt;-	
&lt;br&gt;-	float xpos = unit-&amp;gt;m_xpos;
&lt;br&gt;-	float ypos = unit-&amp;gt;m_ypos;
&lt;br&gt;-	float val1, val2;
&lt;br&gt;-	
&lt;br&gt;-	float **tables = unit-&amp;gt;mTables;
&lt;br&gt;-	int32 phase = unit-&amp;gt;m_phase;
&lt;br&gt;-	int32 lomask = unit-&amp;gt;m_lomask;
&lt;br&gt;-	
&lt;br&gt;-	int32 freq = (int32)(unit-&amp;gt;m_cpstoinc * freqin);
&lt;br&gt;-	float xpos_slope = CALCSLOPE(next_xpos, xpos);
&lt;br&gt;-	float ypos_slope = CALCSLOPE(next_ypos, ypos);
&lt;br&gt;-	LOOP(inNumSamples,
&lt;br&gt;-		float pfrac = PhaseFrac(phase);
&lt;br&gt;-		int32 index = (phase &amp;gt;&amp;gt; xlobits) &amp; lomask;
&lt;br&gt;-			val1 = tables[0][index];
&lt;br&gt;-			val2 = tables[1][index];
&lt;br&gt;-		float out0 = val1 + val2 * pfrac;
&lt;br&gt;-			val1 = tables[2][index];
&lt;br&gt;-			val2 = tables[3][index];
&lt;br&gt;-		float out1 = val1 + val2 * pfrac;
&lt;br&gt;-			val1 = tables[4][index];
&lt;br&gt;-			val2 = tables[5][index];
&lt;br&gt;-		float out2 = val1 + val2 * pfrac;
&lt;br&gt;-			val1 = tables[6][index];
&lt;br&gt;-			val2 = tables[7][index];
&lt;br&gt;-		float out3 = val1 + val2 * pfrac;
&lt;br&gt;-		
&lt;br&gt;-		float out8 = lininterp(xpos, out0, out1);
&lt;br&gt;-		float out9 = lininterp(xpos, out2, out3);
&lt;br&gt;-		ZXP(out) &amp;nbsp;= lininterp(ypos, out9, out8);		
&lt;br&gt;-		
&lt;br&gt;-		phase += freq;
&lt;br&gt;-		xpos += xpos_slope;
&lt;br&gt;-		ypos += ypos_slope;
&lt;br&gt;-	);
&lt;br&gt;-	unit-&amp;gt;m_xpos = xpos;
&lt;br&gt;-	unit-&amp;gt;m_ypos = ypos;
&lt;br&gt;-	unit-&amp;gt;m_phase = phase;
&lt;br&gt;-	
&lt;br&gt;-}
&lt;br&gt;-
&lt;br&gt;-////////////////////////////////////////////////////////////////////////////////////////////////////////
&lt;br&gt;-
&lt;br&gt;-
&lt;br&gt;-
&lt;br&gt;-
&lt;br&gt;-void OscX2_Ctor(OscX2 *unit)
&lt;br&gt;-{
&lt;br&gt;-	SETCALC(OscX2_next);
&lt;br&gt;-	unit-&amp;gt;m_cpstoinc = unit-&amp;gt;mTableSize * SAMPLEDUR * 65536.;
&lt;br&gt;-	unit-&amp;gt;m_phase = 0;
&lt;br&gt;-	unit-&amp;gt;m_counter = 0;
&lt;br&gt;-	OscX2_next(unit, 1);
&lt;br&gt;-}
&lt;br&gt;-
&lt;br&gt;-void OscX2_SetTables(OscX2 *unit, int32 inSize, float* inTableA, float* inTableB)
&lt;br&gt;-{
&lt;br&gt;-	unit-&amp;gt;mTableSize = inSize;
&lt;br&gt;-	unit-&amp;gt;mTables[0] = inTableA;
&lt;br&gt;-	unit-&amp;gt;mTables[1] = inTableA + 1;
&lt;br&gt;-	unit-&amp;gt;mTables[2] = inTableB;
&lt;br&gt;-	unit-&amp;gt;mTables[3] = inTableB + 1;
&lt;br&gt;-	unit-&amp;gt;m_cpstoinc = inSize * SAMPLEDUR * 65536.;
&lt;br&gt;-}
&lt;br&gt;-
&lt;br&gt;-
&lt;br&gt;-void OscX2_next(OscX2 *unit, int inNumSamples)
&lt;br&gt;-{
&lt;br&gt;-	float *out = ZOUT(0);
&lt;br&gt;-	float freqin = ZIN0(0);
&lt;br&gt;-	float val1, val2;
&lt;br&gt;-	
&lt;br&gt;-	float **tables = unit-&amp;gt;mTables;
&lt;br&gt;-	int32 phase = unit-&amp;gt;m_phase;
&lt;br&gt;-	int32 lomask = unit-&amp;gt;m_lomask;
&lt;br&gt;-	
&lt;br&gt;-	int32 freq = (int32)(unit-&amp;gt;m_cpstoinc * freqin);
&lt;br&gt;-	int32 counter = unit-&amp;gt;m_counter;
&lt;br&gt;-	float xfade = unit-&amp;gt;m_xfade;
&lt;br&gt;-	
&lt;br&gt;-	int remain = inNumSamples;
&lt;br&gt;-	while (remain) {		
&lt;br&gt;-		if (counter &amp;lt;= 0) {
&lt;br&gt;-			/*if (unit-&amp;gt;m_newTableFunc) {
&lt;br&gt;-				(*unit-&amp;gt;m_newTableFunc)(this);
&lt;br&gt;-				counter = unit-&amp;gt;m_counter;
&lt;br&gt;-			} else {
&lt;br&gt;-				counter = remain;
&lt;br&gt;-			}*/
&lt;br&gt;-			xfade = 0.;
&lt;br&gt;-		}
&lt;br&gt;-		float xfadeslope = unit-&amp;gt;m_xfadeslope;
&lt;br&gt;-		int nsmps = sc_min(remain, counter);
&lt;br&gt;-		LOOP(nsmps,
&lt;br&gt;-			float pfrac = PhaseFrac1(phase);
&lt;br&gt;-			int32 index = (phase &amp;gt;&amp;gt; xlobits1) &amp; lomask;
&lt;br&gt;-				val1 = *(float*)((char*)tables[0] + index);
&lt;br&gt;-				val2 = *(float*)((char*)tables[1] + index);
&lt;br&gt;-			float out0 = val1 + val2 * pfrac;
&lt;br&gt;-				val1 = *(float*)((char*)tables[2] + index);
&lt;br&gt;-				val2 = *(float*)((char*)tables[3] + index);
&lt;br&gt;-			float out1 = val1 + val2 * pfrac;
&lt;br&gt;-			
&lt;br&gt;-			ZXP(out) = lininterp(xfade, out0, out1);		
&lt;br&gt;-			
&lt;br&gt;-			phase += freq;
&lt;br&gt;-			xfade += xfadeslope;
&lt;br&gt;-		);
&lt;br&gt;-		counter -= nsmps;
&lt;br&gt;-		remain -= nsmps;
&lt;br&gt;-	}
&lt;br&gt;-	unit-&amp;gt;m_counter = counter;
&lt;br&gt;-	unit-&amp;gt;m_phase = phase;
&lt;br&gt;-	unit-&amp;gt;m_xfade = xfade;
&lt;br&gt;-	
&lt;br&gt;-}
&lt;br&gt;-#endif
&lt;br&gt;-
&lt;br&gt;-////////////////////////////////////////////////////////////////////////////////////////////////////////
&lt;br&gt;-
&lt;br&gt;&amp;nbsp;void VOsc_Ctor(VOsc *unit)
&lt;br&gt;&amp;nbsp;{
&lt;br&gt;&amp;nbsp;	SETCALC(VOsc_next_ik);
&lt;br&gt;@@ -3879,216 +3438,6 @@
&lt;br&gt;&amp;nbsp;	unit-&amp;gt;m_x2 = x2;
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-
&lt;br&gt;-#if __VEC__
&lt;br&gt;-
&lt;br&gt;-#if 0
&lt;br&gt;-void vKlank_next(Klank *unit, int inNumSamples)
&lt;br&gt;-{
&lt;br&gt;-	float *out0 = ZOUT(0);
&lt;br&gt;-	float *in0 = ZIN(0);
&lt;br&gt;-	
&lt;br&gt;-	float *in, *out;
&lt;br&gt;-	float inf;
&lt;br&gt;-	vector float vy0, vy1, vy2, va0, vb1, vb2;
&lt;br&gt;-	float y0_0, y1_0, y2_0, a0_0, b1_0, b2_0;
&lt;br&gt;-	float y0_1, y1_1, y2_1, a0_1, b1_1, b2_1;
&lt;br&gt;-	float y0_2, y1_2, y2_2, a0_2, b1_2, b2_2;
&lt;br&gt;-	float y0_3, y1_3, y2_3, a0_3, b1_3, b2_3;
&lt;br&gt;-		
&lt;br&gt;-	int32 numpartials = unit-&amp;gt;m_numpartials;
&lt;br&gt;-	float* coefs = unit-&amp;gt;m_coefs - 1;
&lt;br&gt;-
&lt;br&gt;-	switch (numpartials &amp; 3) {
&lt;br&gt;-		case 3 :
&lt;br&gt;-			y1_0 = *++coefs;	y2_0 = *++coefs;	b1_0 = *++coefs;	b2_0 = *++coefs;	a0_0 = *++coefs;
&lt;br&gt;-			y1_1 = *++coefs;	y2_1 = *++coefs;	b1_1 = *++coefs;	b2_1 = *++coefs;	a0_1 = *++coefs;
&lt;br&gt;-			y1_2 = *++coefs;	y2_2 = *++coefs;	b1_2 = *++coefs;	b2_2 = *++coefs;	a0_2 = *++coefs;
&lt;br&gt;-			
&lt;br&gt;-			in = in0;
&lt;br&gt;-			out = unit-&amp;gt;m_buf - 1;
&lt;br&gt;-			LOOP(unit-&amp;gt;mRate-&amp;gt;mFilterLoops, 
&lt;br&gt;-				inf = *++in;
&lt;br&gt;-				y0_0 = inf + b1_0 * y1_0 + b2_0 * y2_0; 
&lt;br&gt;-				y0_1 = inf + b1_1 * y1_1 + b2_1 * y2_1; 
&lt;br&gt;-				y0_2 = inf + b1_2 * y1_2 + b2_2 * y2_2; 
&lt;br&gt;-				*++out = a0_0 * y0_0 + a0_1 * y0_1 + a0_2 * y0_2;
&lt;br&gt;-				
&lt;br&gt;-				inf = *++in;
&lt;br&gt;-				y2_0 = inf + b1_0 * y0_0 + b2_0 * y1_0; 
&lt;br&gt;-				y2_1 = inf + b1_1 * y0_1 + b2_1 * y1_1; 
&lt;br&gt;-				y2_2 = inf + b1_2 * y0_2 + b2_2 * y1_2; 
&lt;br&gt;-				*++out = a0_0 * y2_0 + a0_1 * y2_1 + a0_2 * y2_2;
&lt;br&gt;-				
&lt;br&gt;-				inf = *++in;
&lt;br&gt;-				y1_0 = inf + b1_0 * y2_0 + b2_0 * y0_0; 
&lt;br&gt;-				y1_1 = inf + b1_1 * y2_1 + b2_1 * y0_1; 
&lt;br&gt;-				y1_2 = inf + b1_2 * y2_2 + b2_2 * y0_2; 
&lt;br&gt;-				*++out = a0_0 * y1_0 + a0_1 * y1_1 + a0_2 * y1_2;
&lt;br&gt;-			);
&lt;br&gt;-			LOOP(unit-&amp;gt;mRate-&amp;gt;mFilterRemain, 
&lt;br&gt;-				inf = *++in;
&lt;br&gt;-				y0_0 = inf + b1_0 * y1_0 + b2_0 * y2_0; 
&lt;br&gt;-				y0_1 = inf + b1_1 * y1_1 + b2_1 * y2_1; 
&lt;br&gt;-				y0_2 = inf + b1_2 * y1_2 + b2_2 * y2_2; 
&lt;br&gt;-				*++out = a0_0 * y0_0 + a0_1 * y0_1 + a0_2 * y0_2;
&lt;br&gt;-				y2_0 = y1_0;	y1_0 = y0_0; 
&lt;br&gt;-				y2_1 = y1_1;	y1_1 = y0_1; 
&lt;br&gt;-				y2_2 = y1_2;	y1_2 = y0_2; 
&lt;br&gt;-			);
&lt;br&gt;-			coefs -= 15;
&lt;br&gt;-			*++coefs = y1_0;	*++coefs = y2_0;	coefs += 3;	
&lt;br&gt;-			*++coefs = y1_1;	*++coefs = y2_1;	coefs += 3;	
&lt;br&gt;-			*++coefs = y1_2;	*++coefs = y2_2;	coefs += 3;	
&lt;br&gt;-			break;
&lt;br&gt;-		case 2 :
&lt;br&gt;-			y1_0 = *++coefs;	y2_0 = *++coefs;	b1_0 = *++coefs;	b2_0 = *++coefs;	a0_0 = *++coefs;
&lt;br&gt;-			y1_1 = *++coefs;	y2_1 = *++coefs;	b1_1 = *++coefs;	b2_1 = *++coefs;	a0_1 = *++coefs;
&lt;br&gt;-			
&lt;br&gt;-			in = in0;
&lt;br&gt;-			out = unit-&amp;gt;m_buf - 1;
&lt;br&gt;-			LOOP(unit-&amp;gt;mRate-&amp;gt;mFilterLoops, 
&lt;br&gt;-				inf = *++in;
&lt;br&gt;-				y0_0 = inf + b1_0 * y1_0 + b2_0 * y2_0; 
&lt;br&gt;-				y0_1 = inf + b1_1 * y1_1 + b2_1 * y2_1; 
&lt;br&gt;-				*++out = a0_0 * y0_0 + a0_1 * y0_1;
&lt;br&gt;-				
&lt;br&gt;-				inf = *++in;
&lt;br&gt;-				y2_0 = inf + b1_0 * y0_0 + b2_0 * y1_0; 
&lt;br&gt;-				y2_1 = inf + b1_1 * y0_1 + b2_1 * y1_1; 
&lt;br&gt;-				*++out = a0_0 * y2_0 + a0_1 * y2_1;
&lt;br&gt;-				
&lt;br&gt;-				inf = *++in;
&lt;br&gt;-				y1_0 = inf + b1_0 * y2_0 + b2_0 * y0_0; 
&lt;br&gt;-				y1_1 = inf + b1_1 * y2_1 + b2_1 * y0_1; 
&lt;br&gt;-				*++out = a0_0 * y1_0 + a0_1 * y1_1;
&lt;br&gt;-			);
&lt;br&gt;-			LOOP(unit-&amp;gt;mRate-&amp;gt;mFilterRemain, 
&lt;br&gt;-				inf = *++in;
&lt;br&gt;-				y0_0 = inf + b1_0 * y1_0 + b2_0 * y2_0; 
&lt;br&gt;-				y0_1 = inf + b1_1 * y1_1 + b2_1 * y2_1; 
&lt;br&gt;-				*++out = a0_0 * y0_0 + a0_1 * y0_1;
&lt;br&gt;-				y2_0 = y1_0;	y1_0 = y0_0; 
&lt;br&gt;-				y2_1 = y1_1;	y1_1 = y0_1; 
&lt;br&gt;-			);
&lt;br&gt;-			coefs -= 10;
&lt;br&gt;-			*++coefs = y1_0;	*++coefs = y2_0;	coefs += 3;	
&lt;br&gt;-			*++coefs = y1_1;	*++coefs = y2_1;	coefs += 3;	
&lt;br&gt;-			break;
&lt;br&gt;-		case 1 :
&lt;br&gt;-			y1_0 = *++coefs;	y2_0 = *++coefs;	b1_0 = *++coefs;	b2_0 = *++coefs;	a0_0 = *++coefs;
&lt;br&gt;-			
&lt;br&gt;-			//Print(&amp;quot;rcoefs %g %g %g %g %g\n&amp;quot;, y1_0, y2_0, b1_0, b2_0, a0_0);
&lt;br&gt;-			in = in0;
&lt;br&gt;-			out = unit-&amp;gt;m_buf - 1;
&lt;br&gt;-			LOOP(unit-&amp;gt;mRate-&amp;gt;mFilterLoops, 
&lt;br&gt;-				inf = *++in;
&lt;br&gt;-				y0_0 = inf + b1_0 * y1_0 + b2_0 * y2_0; 
&lt;br&gt;-				*++out = a0_0 * y0_0;
&lt;br&gt;-				
&lt;br&gt;-				inf = *++in;
&lt;br&gt;-				y2_0 = inf + b1_0 * y0_0 + b2_0 * y1_0; 
&lt;br&gt;-				*++out = a0_0 * y2_0;
&lt;br&gt;-				
&lt;br&gt;-				inf = *++in;
&lt;br&gt;-				y1_0 = inf + b1_0 * y2_0 + b2_0 * y0_0; 
&lt;br&gt;-				*++out = a0_0 * y1_0;
&lt;br&gt;-				//Print(&amp;quot;out %g %g %g\n&amp;quot;, y0_0, y2_0, y1_0);
&lt;br&gt;-			);
&lt;br&gt;-			LOOP(unit-&amp;gt;mRate-&amp;gt;mFilterRemain, 
&lt;br&gt;-				inf = *++in;
&lt;br&gt;-				y0_0 = inf + b1_0 * y1_0 + b2_0 * y2_0; 
&lt;br&gt;-				*++out = a0_0 * y0_0;
&lt;br&gt;-				y2_0 = y1_0;	y1_0 = y0_0; 
&lt;br&gt;-				//Print(&amp;quot;out %g\n&amp;quot;, y0_0);
&lt;br&gt;-			);
&lt;br&gt;-			coefs -= 5;
&lt;br&gt;-			*++coefs = y1_0;	*++coefs = y2_0;	coefs += 3;	
&lt;br&gt;-			break;
&lt;br&gt;-		case 0 :
&lt;br&gt;-			out = unit-&amp;gt;m_buf - 1;
&lt;br&gt;-			LOOP(inNumSamples, *++out = 0.f;);
&lt;br&gt;-			break;
&lt;br&gt;-	}
&lt;br&gt;-
&lt;br&gt;-	int32 imax = numpartials &amp;gt;&amp;gt; 2;
&lt;br&gt;-	for (int i=0; i&amp;lt;imax; ++i) {
&lt;br&gt;-		y1_0 = *++coefs;	y2_0 = *++coefs;	b1_0 = *++coefs;	b2_0 = *++coefs;	a0_0 = *++coefs;
&lt;br&gt;-		y1_1 = *++coefs;	y2_1 = *++coefs;	b1_1 = *++coefs;	b2_1 = *++coefs;	a0_1 = *++coefs;
&lt;br&gt;-		y1_2 = *++coefs;	y2_2 = *++coefs;	b1_2 = *++coefs;	b2_2 = *++coefs;	a0_2 = *++coefs;
&lt;br&gt;-		y1_3 = *++coefs;	y2_3 = *++coefs;	b1_3 = *++coefs;	b2_3 = *++coefs;	a0_3 = *++coefs;
&lt;br&gt;-		
&lt;br&gt;-		in = in0;
&lt;br&gt;-		out = unit-&amp;gt;m_buf - 1;
&lt;br&gt;-		LOOP(unit-&amp;gt;mRate-&amp;gt;mFilterLoops, 
&lt;br&gt;-			inf = *++in;
&lt;br&gt;-			y0_0 = inf + b1_0 * y1_0 + b2_0 * y2_0; 
&lt;br&gt;-			y0_1 = inf + b1_1 * y1_1 + b2_1 * y2_1; 
&lt;br&gt;-			y0_2 = inf + b1_2 * y1_2 + b2_2 * y2_2; 
&lt;br&gt;-			y0_3 = inf + b1_3 * y1_3 + b2_3 * y2_3; 
&lt;br&gt;-			*++out += a0_0 * y0_0 + a0_1 * y0_1 + a0_2 * y0_2 + a0_3 * y0_3;
&lt;br&gt;-			
&lt;br&gt;-			inf = *++in;
&lt;br&gt;-			y2_0 = inf + b1_0 * y0_0 + b2_0 * y1_0; 
&lt;br&gt;-			y2_1 = inf + b1_1 * y0_1 + b2_1 * y1_1; 
&lt;br&gt;-			y2_2 = inf + b1_2 * y0_2 + b2_2 * y1_2; 
&lt;br&gt;-			y2_3 = inf + b1_3 * y0_3 + b2_3 * y1_3; 
&lt;br&gt;-			*++out += a0_0 * y2_0 + a0_1 * y2_1 + a0_2 * y2_2 + a0_3 * y2_3;
&lt;br&gt;-			
&lt;br&gt;-			inf = *++in;
&lt;br&gt;-			y1_0 = inf + b1_0 * y2_0 + b2_0 * y0_0; 
&lt;br&gt;-			y1_1 = inf + b1_1 * y2_1 + b2_1 * y0_1; 
&lt;br&gt;-			y1_2 = inf + b1_2 * y2_2 + b2_2 * y0_2; 
&lt;br&gt;-			y1_3 = inf + b1_3 * y2_3 + b2_3 * y0_3; 
&lt;br&gt;-			*++out += a0_0 * y1_0 + a0_1 * y1_1 + a0_2 * y1_2 + a0_3 * y1_3;
&lt;br&gt;-		);
&lt;br&gt;-		LOOP(unit-&amp;gt;mRate-&amp;gt;mFilterRemain, 
&lt;br&gt;-			inf = *++in;
&lt;br&gt;-			y0_0 = inf + b1_0 * y1_0 + b2_0 * y2_0; 
&lt;br&gt;-			y0_1 = inf + b1_1 * y1_1 + b2_1 * y2_1; 
&lt;br&gt;-			y0_2 = inf + b1_2 * y1_2 + b2_2 * y2_2; 
&lt;br&gt;-			y0_3 = inf + b1_3 * y1_3 + b2_3 * y2_3; 
&lt;br&gt;-			*++out += a0_0 * y0_0 + a0_1 * y0_1 + a0_2 * y0_2 + a0_3 * y0_3;
&lt;br&gt;-			y2_0 = y1_0;	y1_0 = y0_0; 
&lt;br&gt;-			y2_1 = y1_1;	y1_1 = y0_1; 
&lt;br&gt;-			y2_2 = y1_2;	y1_2 = y0_2; 
&lt;br&gt;-			y2_3 = y1_3;	y1_3 = y0_3; 
&lt;br&gt;-		);
&lt;br&gt;-		coefs -= 20;
&lt;br&gt;-		*++coefs = y1_0;	*++coefs = y2_0;	coefs += 3;	
&lt;br&gt;-		*++coefs = y1_1;	*++coefs = y2_1;	coefs += 3;	
&lt;br&gt;-		*++coefs = y1_2;	*++coefs = y2_2;	coefs += 3;	
&lt;br&gt;-		*++coefs = y1_3;	*++coefs = y2_3;	coefs += 3;	
&lt;br&gt;-	}
&lt;br&gt;-	
&lt;br&gt;-	float x0;
&lt;br&gt;-	float x1 = unit-&amp;gt;m_x1;
&lt;br&gt;-	float x2 = unit-&amp;gt;m_x2;
&lt;br&gt;-	
&lt;br&gt;-	in = unit-&amp;gt;m_buf - 1;
&lt;br&gt;-	out = out0;
&lt;br&gt;-	LOOP(unit-&amp;gt;mRate-&amp;gt;mFilterLoops, 
&lt;br&gt;-		x0 = *++in;
&lt;br&gt;-		*++out = x0 - x2;
&lt;br&gt;-		x2 = *++in;
&lt;br&gt;-		*++out = x2 - x1;
&lt;br&gt;-		x1 = *++in;
&lt;br&gt;-		*++out = x1 - x0;
&lt;br&gt;-	);
&lt;br&gt;-	LOOP(unit-&amp;gt;mRate-&amp;gt;mFilterRemain, 
&lt;br&gt;-		x0 = *++in;
&lt;br&gt;-		*++out = x0 - x2;
&lt;br&gt;-		x2 = x1;	
&lt;br&gt;-		x1 = x0;
&lt;br&gt;-	);
&lt;br&gt;-	
&lt;br&gt;-	unit-&amp;gt;m_x1 = x1;
&lt;br&gt;-	unit-&amp;gt;m_x2 = x2;
&lt;br&gt;-}
&lt;br&gt;-#endif
&lt;br&gt;-
&lt;br&gt;-#endif
&lt;br&gt;-
&lt;br&gt;&amp;nbsp;////////////////////////////////////////////////////////////////////////////////////////////////////////
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;void normalize_samples(int size, float* data, float peak)
&lt;br&gt;@@ -4414,9 +3763,6 @@
&lt;br&gt;&amp;nbsp;	DefineSimpleUnit(Osc);
&lt;br&gt;&amp;nbsp;	DefineSimpleUnit(OscN);
&lt;br&gt;&amp;nbsp;	DefineSimpleUnit(COsc);
&lt;br&gt;-	//DefineSimpleUnit(COsc2);
&lt;br&gt;-	//DefineSimpleUnit(OscX4);
&lt;br&gt;-	//DefineSimpleUnit(OscX2);
&lt;br&gt;&amp;nbsp;	DefineSimpleUnit(Formant);
&lt;br&gt;&amp;nbsp;	DefineSimpleUnit(Blip);
&lt;br&gt;&amp;nbsp;	DefineSimpleUnit(Saw);
&lt;br&gt;&lt;br&gt;&lt;br&gt;This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
&lt;br&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;sc-dev mailing list
&lt;br&gt;&lt;br&gt;info (subscribe and unsubscribe): &lt;a href=&quot;http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml&lt;/a&gt;&lt;br&gt;archive: &lt;a href=&quot;http://www.listarc.bham.ac.uk/marchives/sc-dev/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.listarc.bham.ac.uk/marchives/sc-dev/&lt;/a&gt;&lt;br&gt;search: &lt;a href=&quot;http://www.listarc.bham.ac.uk/lists/sc-dev/search/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.listarc.bham.ac.uk/lists/sc-dev/search/&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/SF.net-SVN%3A-supercollider%3A-7817--trunk-Source-plugins-OscUGens.cpp-tp19874639p19874639.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19874239</id>
	<title>Re: [sc-users] EnvGen.ar Trigger</title>
	<published>2008-10-08T01:02:07Z</published>
	<updated>2008-10-08T01:02:07Z</updated>
	<author>
		<name>Dan Stowell</name>
	</author>
	<content type="html">Hi devs -
&lt;br&gt;&lt;br&gt;I get the same strange behaviour as reported below.
&lt;br&gt;&lt;br&gt;In the SinOsc example, the server doesn't actually crash, instead it
&lt;br&gt;locks up and goes into CPU overdrive. Using Shark I see that this
&lt;br&gt;overdrive seems to be happening inside EnvGen_next_aa(), and more
&lt;br&gt;specifically, inside a call to its CHECK_GATE macro (line 2592 in the
&lt;br&gt;source-code).
&lt;br&gt;&lt;br&gt;Anyone any insight into this? I've not worked with the EnvGen code so
&lt;br&gt;I can't be sure.
&lt;br&gt;&lt;br&gt;Dan
&lt;br&gt;&lt;br&gt;&lt;br&gt;2008/10/7, J. van Dijk &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19874239&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jorn@...&lt;/a&gt;&amp;gt;:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;Hello list,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;I was playing around with triggers for an EnvGen:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;{
&lt;br&gt;&amp;gt; &amp;nbsp;var env, trig;
&lt;br&gt;&amp;gt; &amp;nbsp;trig = LFSaw.kr(1);
&lt;br&gt;&amp;gt; &amp;nbsp;env = EnvGen.kr(Env.perc(0.01,0.1), trig);
&lt;br&gt;&amp;gt; &amp;nbsp;Out.ar(0, env*PinkNoise.ar(0.1))
&lt;br&gt;&amp;gt; &amp;nbsp;}.play
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;Doing this with .ar methods gives me different results:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;{
&lt;br&gt;&amp;gt; &amp;nbsp;var env, trig;
&lt;br&gt;&amp;gt; &amp;nbsp;trig = LFSaw.ar(1);
&lt;br&gt;&amp;gt; &amp;nbsp;env = EnvGen.ar(Env.perc(0.01,0.1), trig);
&lt;br&gt;&amp;gt; &amp;nbsp;Out.ar(0, env*PinkNoise.ar(0.1))
&lt;br&gt;&amp;gt; &amp;nbsp;}.play
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;The next example stops after 4 triggers. It quits the server, it won't
&lt;br&gt;&amp;gt; &amp;nbsp;reboot and I have to force quit SuperCollider to get any sound playing back
&lt;br&gt;&amp;gt; &amp;nbsp;from other apps.
&lt;br&gt;&amp;gt; &amp;nbsp;{
&lt;br&gt;&amp;gt; &amp;nbsp;var env, trig;
&lt;br&gt;&amp;gt; &amp;nbsp;trig = SinOsc.ar(1);
&lt;br&gt;&amp;gt; &amp;nbsp;env = EnvGen.ar(Env.perc(0.01,0.1), trig);
&lt;br&gt;&amp;gt; &amp;nbsp;Out.ar(0, env*PinkNoise.ar(0.1))
&lt;br&gt;&amp;gt; &amp;nbsp;}.play
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;Does EnvGen.ar only allow impulse like triggers?
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;I'm on a g4 powerbook
&lt;br&gt;&amp;gt; &amp;nbsp;osx 10.4.11
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;Jorn
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;--
&lt;br&gt;&amp;gt; &amp;nbsp;View this message in context: &lt;a href=&quot;http://www.nabble.com/EnvGen.ar-Trigger-tp19868606p19868606.html&quot; target=&quot;_top&quot;&gt;http://www.nabble.com/EnvGen.ar-Trigger-tp19868606p19868606.html&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp;Sent from the Supercollider - User mailing list archive at Nabble.com.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;_______________________________________________
&lt;br&gt;&amp;gt; &amp;nbsp;sc-users mailing list
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;info (subscribe and unsubscribe): &lt;a href=&quot;http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp;archive: &lt;a href=&quot;http://www.listarc.bham.ac.uk/marchives/sc-users/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.listarc.bham.ac.uk/marchives/sc-users/&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp;search: &lt;a href=&quot;http://www.listarc.bham.ac.uk/lists/sc-users/search/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.listarc.bham.ac.uk/lists/sc-users/search/&lt;/a&gt;&lt;br&gt;&amp;gt;
&lt;/div&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;&lt;a href=&quot;http://www.mcld.co.uk&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.mcld.co.uk&lt;/a&gt;&lt;br&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;sc-dev mailing list
&lt;br&gt;&lt;br&gt;info (subscribe and unsubscribe): &lt;a href=&quot;http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml&lt;/a&gt;&lt;br&gt;archive: &lt;a href=&quot;http://www.listarc.bham.ac.uk/marchives/sc-dev/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.listarc.bham.ac.uk/marchives/sc-dev/&lt;/a&gt;&lt;br&gt;search: &lt;a href=&quot;http://www.listarc.bham.ac.uk/lists/sc-dev/search/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.listarc.bham.ac.uk/lists/sc-dev/search/&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Re%3A--sc-users--EnvGen.ar-Trigger-tp19874239p19874239.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19872614</id>
	<title>SF.net SVN: supercollider:[7816] trunk</title>
	<published>2008-10-07T22:34:43Z</published>
	<updated>2008-10-07T22:34:43Z</updated>
	<author>
		<name>e8472</name>
	</author>
	<content type="html">Revision: 7816
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://supercollider.svn.sourceforge.net/supercollider/?rev=7816&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://supercollider.svn.sourceforge.net/supercollider/?rev=7816&amp;view=rev&lt;/a&gt;&lt;br&gt;Author: &amp;nbsp; e8472
&lt;br&gt;Date: &amp;nbsp; &amp;nbsp; 2008-10-08 05:34:43 +0000 (Wed, 08 Oct 2008)
&lt;br&gt;&lt;br&gt;Log Message:
&lt;br&gt;-----------
&lt;br&gt;SCImage additions to help files and SCUserView
&lt;br&gt;&lt;br&gt;Modified Paths:
&lt;br&gt;--------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; trunk/Source/app/SCView.M
&lt;br&gt;&amp;nbsp; &amp;nbsp; trunk/build/Help/GUI/SCUserView.html
&lt;br&gt;&amp;nbsp; &amp;nbsp; trunk/build/Help/GUI/SCView.html
&lt;br&gt;&lt;br&gt;Modified: trunk/Source/app/SCView.M
&lt;br&gt;===================================================================
&lt;br&gt;--- trunk/Source/app/SCView.M	2008-10-08 03:23:16 UTC (rev 7815)
&lt;br&gt;+++ trunk/Source/app/SCView.M	2008-10-08 05:34:43 UTC (rev 7816)
&lt;br&gt;@@ -4072,6 +4072,9 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;void SCUserView::draw(SCRect inDamage)
&lt;br&gt;&amp;nbsp;{
&lt;br&gt;+
&lt;br&gt;+	SCView::draw(inDamage); // draw background
&lt;br&gt;+
&lt;br&gt;&amp;nbsp;	SCRect bounds = getDrawBounds();
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;	if(bounds.width == 0 || bounds.height == 0) return;
&lt;br&gt;&lt;br&gt;Modified: trunk/build/Help/GUI/SCUserView.html
&lt;br&gt;===================================================================
&lt;br&gt;--- trunk/build/Help/GUI/SCUserView.html	2008-10-08 03:23:16 UTC (rev 7815)
&lt;br&gt;+++ trunk/build/Help/GUI/SCUserView.html	2008-10-08 05:34:43 UTC (rev 7816)
&lt;br&gt;@@ -5,34 +5,26 @@
&lt;br&gt;&amp;nbsp;&amp;lt;meta http-equiv=&amp;quot;Content-Style-Type&amp;quot; content=&amp;quot;text/css&amp;quot;&amp;gt;
&lt;br&gt;&amp;nbsp;&amp;lt;title&amp;gt;&amp;lt;/title&amp;gt;
&lt;br&gt;&amp;nbsp;&amp;lt;meta name=&amp;quot;Generator&amp;quot; content=&amp;quot;Cocoa HTML Writer&amp;quot;&amp;gt;
&lt;br&gt;-&amp;lt;meta name=&amp;quot;CocoaVersion&amp;quot; content=&amp;quot;824.42&amp;quot;&amp;gt;
&lt;br&gt;+&amp;lt;meta name=&amp;quot;CocoaVersion&amp;quot; content=&amp;quot;824.41&amp;quot;&amp;gt;
&lt;br&gt;&amp;nbsp;&amp;lt;style type=&amp;quot;text/css&amp;quot;&amp;gt;
&lt;br&gt;&amp;nbsp;p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Helvetica}
&lt;br&gt;&amp;nbsp;p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px}
&lt;br&gt;&amp;nbsp;p.p3 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica}
&lt;br&gt;-p.p4 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; color: #0018e8}
&lt;br&gt;+p.p4 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; color: #0000ef}
&lt;br&gt;&amp;nbsp;p.p5 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco}
&lt;br&gt;-p.p6 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #4f432c}
&lt;br&gt;-p.p7 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #606060}
&lt;br&gt;-p.p8 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #564329; min-height: 12.0px}
&lt;br&gt;-p.p9 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; min-height: 12.0px}
&lt;br&gt;-p.p10 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #594129}
&lt;br&gt;-p.p11 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #564329}
&lt;br&gt;-p.p12 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #263a97}
&lt;br&gt;-p.p13 {margin: 0.0px 0.0px 0.0px 10.0px; font: 9.0px Monaco}
&lt;br&gt;-p.p14 {margin: 0.0px 0.0px 0.0px 10.0px; font: 9.0px Monaco; min-height: 12.0px}
&lt;br&gt;-p.p15 {margin: 0.0px 0.0px 0.0px 10.0px; font: 9.0px Monaco; color: #263a97}
&lt;br&gt;+p.p6 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #d50007}
&lt;br&gt;+p.p7 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #4d4d4d}
&lt;br&gt;+p.p8 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; min-height: 12.0px}
&lt;br&gt;+p.p9 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #0000b7}
&lt;br&gt;+p.p10 {margin: 0.0px 0.0px 0.0px 10.0px; font: 9.0px Monaco}
&lt;br&gt;+p.p11 {margin: 0.0px 0.0px 0.0px 10.0px; font: 9.0px Monaco; min-height: 12.0px}
&lt;br&gt;&amp;nbsp;span.s1 {font: 18.0px Helvetica}
&lt;br&gt;-span.s2 {color: #263a97}
&lt;br&gt;+span.s2 {color: #00006a}
&lt;br&gt;&amp;nbsp;span.s3 {color: #000000}
&lt;br&gt;&amp;nbsp;span.s4 {text-decoration: underline}
&lt;br&gt;-span.s5 {color: #606060}
&lt;br&gt;-span.s6 {color: #1e359d}
&lt;br&gt;-span.s7 {color: #62613a}
&lt;br&gt;-span.s8 {color: #0f2caa}
&lt;br&gt;-span.s9 {color: #0626af}
&lt;br&gt;-span.s10 {color: #556824}
&lt;br&gt;-span.s11 {color: #1832a2}
&lt;br&gt;+span.s5 {color: #0000b7}
&lt;br&gt;+span.s6 {color: #4d4d4d}
&lt;br&gt;+span.s7 {color: #006400}
&lt;br&gt;&amp;nbsp;span.Apple-tab-span {white-space:pre}
&lt;br&gt;&amp;nbsp;&amp;lt;/style&amp;gt;
&lt;br&gt;&amp;nbsp;&amp;lt;/head&amp;gt;
&lt;br&gt;@@ -51,13 +43,13 @@
&lt;br&gt;&amp;nbsp;&amp;lt;p class=&amp;quot;p2&amp;quot;&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/p&amp;gt;
&lt;br&gt;&amp;nbsp;&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;(&amp;lt;/p&amp;gt;
&lt;br&gt;&amp;nbsp;&amp;lt;p class=&amp;quot;p6&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;s3&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;// select the window, type something and watch the post window&amp;lt;/p&amp;gt;
&lt;br&gt;-&amp;lt;p class=&amp;quot;p7&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;s3&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;w = &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;s2&amp;quot;&amp;gt;SCWindow&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;s3&amp;quot;&amp;gt;.new(&amp;lt;/span&amp;gt;&amp;quot;select this window and type something&amp;quot;&amp;lt;span class=&amp;quot;s3&amp;quot;&amp;gt;);&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt;
&lt;br&gt;-&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;c = &amp;lt;span class=&amp;quot;s2&amp;quot;&amp;gt;SCUserView&amp;lt;/span&amp;gt;(w,w.view.bounds);&amp;lt;/p&amp;gt;
&lt;br&gt;-&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;c.keyDownAction = { &amp;lt;span class=&amp;quot;s2&amp;quot;&amp;gt;arg&amp;lt;/span&amp;gt; view,char,modifiers,unicode;&amp;lt;/p&amp;gt;
&lt;br&gt;+&amp;lt;p class=&amp;quot;p7&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;s3&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;w = &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;s5&amp;quot;&amp;gt;SCWindow&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;s3&amp;quot;&amp;gt;.new(&amp;lt;/span&amp;gt;&amp;quot;select this window and type something&amp;quot;&amp;lt;span class=&amp;quot;s3&amp;quot;&amp;gt;);&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt;
&lt;br&gt;+&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;c = &amp;lt;span class=&amp;quot;s5&amp;quot;&amp;gt;SCUserView&amp;lt;/span&amp;gt;(w,w.view.bounds);&amp;lt;/p&amp;gt;
&lt;br&gt;+&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;c.keyDownAction = { &amp;lt;span class=&amp;quot;s5&amp;quot;&amp;gt;arg&amp;lt;/span&amp;gt; view,char,modifiers,unicode;&amp;lt;/p&amp;gt;
&lt;br&gt;&amp;nbsp;&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;[char, modifiers, unicode].postln;&amp;lt;/p&amp;gt;
&lt;br&gt;-&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;c.drawFunc = {|me|&amp;lt;/p&amp;gt;
&lt;br&gt;+&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;c.drawFunc = {&amp;lt;span class=&amp;quot;s5&amp;quot;&amp;gt;|me|&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt;
&lt;br&gt;&amp;nbsp;&amp;lt;p class=&amp;quot;p8&amp;quot;&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/p&amp;gt;
&lt;br&gt;-&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;char.asString.drawAtPoint(180@150, &amp;lt;span class=&amp;quot;s2&amp;quot;&amp;gt;Font&amp;lt;/span&amp;gt;(&amp;lt;span class=&amp;quot;s5&amp;quot;&amp;gt;&amp;quot;Helvetica&amp;quot;&amp;lt;/span&amp;gt;, 70), &amp;lt;span class=&amp;quot;s2&amp;quot;&amp;gt;Color&amp;lt;/span&amp;gt;.blue(0.3, 0.5))&amp;lt;/p&amp;gt;
&lt;br&gt;+&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;char.asString.drawAtPoint(180@150, &amp;lt;span class=&amp;quot;s5&amp;quot;&amp;gt;Font&amp;lt;/span&amp;gt;(&amp;lt;span class=&amp;quot;s6&amp;quot;&amp;gt;&amp;quot;Helvetica&amp;quot;&amp;lt;/span&amp;gt;, 70), &amp;lt;span class=&amp;quot;s5&amp;quot;&amp;gt;Color&amp;lt;/span&amp;gt;.blue(0.3, 0.5))&amp;lt;/p&amp;gt;
&lt;br&gt;&amp;nbsp;&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;};&amp;lt;/p&amp;gt;
&lt;br&gt;&amp;nbsp;&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;c.refresh;&amp;lt;/p&amp;gt;
&lt;br&gt;&amp;nbsp;&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;};&amp;lt;/p&amp;gt;
&lt;br&gt;@@ -69,46 +61,46 @@
&lt;br&gt;&amp;nbsp;&amp;lt;p class=&amp;quot;p3&amp;quot;&amp;gt;Set the function which should be evaluated if the view is refreshed. This happens every time the view or the whole window is refreshed (manually by calling SCView:refresh, SCWindow:refresh or e.g. by selecting the view or resizing the window).&amp;lt;/p&amp;gt;
&lt;br&gt;&amp;nbsp;&amp;lt;p class=&amp;quot;p2&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt;
&lt;br&gt;&amp;nbsp;&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;(&amp;lt;/p&amp;gt;
&lt;br&gt;-&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;s2&amp;quot;&amp;gt;var&amp;lt;/span&amp;gt; func;&amp;lt;/p&amp;gt;
&lt;br&gt;-&amp;lt;p class=&amp;quot;p9&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt;
&lt;br&gt;-&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;func = {&amp;lt;span class=&amp;quot;s2&amp;quot;&amp;gt;|me|&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt;
&lt;br&gt;-&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;s2&amp;quot;&amp;gt;Pen&amp;lt;/span&amp;gt;.use{&amp;lt;/p&amp;gt;
&lt;br&gt;-&amp;lt;p class=&amp;quot;p10&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;s3&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;// clipping into the boundingbox&amp;lt;/p&amp;gt;
&lt;br&gt;-&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;s6&amp;quot;&amp;gt;Pen&amp;lt;/span&amp;gt;.moveTo((me.bounds.left)@(me.bounds.top));&amp;lt;/p&amp;gt;
&lt;br&gt;-&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;s6&amp;quot;&amp;gt;Pen&amp;lt;/span&amp;gt;.lineTo(((me.bounds.left)@(me.bounds.top))&amp;lt;/p&amp;gt;
&lt;br&gt;+&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;s5&amp;quot;&amp;gt;var&amp;lt;/span&amp;gt; func;&amp;lt;/p&amp;gt;
&lt;br&gt;+&amp;lt;p class=&amp;quot;p8&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt;
&lt;br&gt;+&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;func = {&amp;lt;span class=&amp;quot;s5&amp;quot;&amp;gt;|me|&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt;
&lt;br&gt;+&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;s5&amp;quot;&amp;gt;Pen&amp;lt;/span&amp;gt;.use{&amp;lt;/p&amp;gt;
&lt;br&gt;+&amp;lt;p class=&amp;quot;p6&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;s3&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;// clipping into the boundingbox&amp;lt;/p&amp;gt;
&lt;br&gt;+&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;s5&amp;quot;&amp;gt;Pen&amp;lt;/span&amp;gt;.moveTo((me.bounds.left)@(me.bounds.top));&amp;lt;/p&amp;gt;
&lt;br&gt;+&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;s5&amp;quot;&amp;gt;Pen&amp;lt;/span&amp;gt;.lineTo(((me.bounds.left)@(me.bounds.top))&amp;lt;/p&amp;gt;
&lt;br&gt;&amp;nbsp;&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;+ (me.bounds.width@0));&amp;lt;/p&amp;gt;
&lt;br&gt;-&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;s6&amp;quot;&amp;gt;Pen&amp;lt;/span&amp;gt;.lineTo(((me.bounds.left)@(me.bounds.top))&amp;lt;/p&amp;gt;
&lt;br&gt;+&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;s5&amp;quot;&amp;gt;Pen&amp;lt;/span&amp;gt;.lineTo(((me.bounds.left)@(me.bounds.top))&amp;lt;/p&amp;gt;
&lt;br&gt;&amp;nbsp;&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;+ (&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19872614&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;me.bounds.width@...&lt;/a&gt;));&amp;lt;/p&amp;gt;
&lt;br&gt;-&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;s6&amp;quot;&amp;gt;Pen&amp;lt;/span&amp;gt;.lineTo(((me.bounds.left)@(me.bounds.top))&amp;lt;/p&amp;gt;
&lt;br&gt;+&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;s5&amp;quot;&amp;gt;Pen&amp;lt;/span&amp;gt;.lineTo(((me.bounds.left)@(me.bounds.top))&amp;lt;/p&amp;gt;
&lt;br&gt;&amp;nbsp;&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;+ (&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19872614&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;0@...&lt;/a&gt;));&amp;lt;/p&amp;gt;
&lt;br&gt;-&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;s6&amp;quot;&amp;gt;Pen&amp;lt;/span&amp;gt;.lineTo((me.bounds.left)@(me.bounds.top));&amp;lt;/p&amp;gt;
&lt;br&gt;-&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;s6&amp;quot;&amp;gt;Pen&amp;lt;/span&amp;gt;.clip;&amp;lt;/p&amp;gt;
&lt;br&gt;-&amp;lt;p class=&amp;quot;p9&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt;
&lt;br&gt;-&amp;lt;p class=&amp;quot;p10&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;s3&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;// draw background&amp;lt;/p&amp;gt;
&lt;br&gt;-&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;s6&amp;quot;&amp;gt;Color&amp;lt;/span&amp;gt;.gray(0.5).set;&amp;lt;/p&amp;gt;
&lt;br&gt;-&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;s6&amp;quot;&amp;gt;Pen&amp;lt;/span&amp;gt;.moveTo((me.bounds.left)@(me.bounds.top));&amp;lt;/p&amp;gt;
&lt;br&gt;-&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;s6&amp;quot;&amp;gt;Pen&amp;lt;/span&amp;gt;.lineTo(((me.bounds.left)@(me.bounds.top))&amp;lt;/p&amp;gt;
&lt;br&gt;+&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;s5&amp;quot;&amp;gt;Pen&amp;lt;/span&amp;gt;.lineTo((me.bounds.left)@(me.bounds.top));&amp;lt;/p&amp;gt;
&lt;br&gt;+&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;s5&amp;quot;&amp;gt;Pen&amp;lt;/span&amp;gt;.clip;&amp;lt;/p&amp;gt;
&lt;br&gt;+&amp;lt;p class=&amp;quot;p8&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt;
&lt;br&gt;+&amp;lt;p class=&amp;quot;p6&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;s3&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;// draw background&amp;lt;/p&amp;gt;
&lt;br&gt;+&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;s5&amp;quot;&amp;gt;Color&amp;lt;/span&amp;gt;.gray(0.5).set;&amp;lt;/p&amp;gt;
&lt;br&gt;+&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;s5&amp;quot;&amp;gt;Pen&amp;lt;/span&amp;gt;.moveTo((me.bounds.left)@(me.bounds.top));&amp;lt;/p&amp;gt;
&lt;br&gt;+&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;s5&amp;quot;&amp;gt;Pen&amp;lt;/span&amp;gt;.lineTo(((me.bounds.left)@(me.bounds.top))&amp;lt;/p&amp;gt;
&lt;br&gt;&amp;nbsp;&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;+ (me.bounds.width@0));&amp;lt;/p&amp;gt;
&lt;br&gt;-&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;s6&amp;quot;&amp;gt;Pen&amp;lt;/span&amp;gt;.lineTo(((me.bounds.left)@(me.bounds.top))&amp;lt;/p&amp;gt;
&lt;br&gt;+&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;s5&amp;quot;&amp;gt;Pen&amp;lt;/span&amp;gt;.lineTo(((me.bounds.left)@(me.bounds.top))&amp;lt;/p&amp;gt;
&lt;br&gt;&amp;nbsp;&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;+ (&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19872614&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;me.bounds.width@...&lt;/a&gt;));&amp;lt;/p&amp;gt;
&lt;br&gt;-&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;s6&amp;quot;&amp;gt;Pen&amp;lt;/span&amp;gt;.lineTo(((me.bounds.left)@(me.bounds.top))&amp;lt;/p&amp;gt;
&lt;br&gt;+&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;s5&amp;quot;&amp;gt;Pen&amp;lt;/span&amp;gt;.lineTo(((me.bounds.left)@(me.bounds.top))&amp;lt;/p&amp;gt;
&lt;br&gt;&amp;nbsp;&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;+ (&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19872614&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;0@...&lt;/a&gt;));&amp;lt;/p&amp;gt;
&lt;br&gt;-&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;s6&amp;quot;&amp;gt;Pen&amp;lt;/span&amp;gt;.lineTo((me.bounds.left)@(me.bounds.top));&amp;lt;/p&amp;gt;
&lt;br&gt;-&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;s6&amp;quot;&amp;gt;Pen&amp;lt;/span&amp;gt;.fill;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt;
&lt;br&gt;-&amp;lt;p class=&amp;quot;p9&amp;quot;&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/p&amp;gt;
&lt;br&gt;-&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;s6&amp;quot;&amp;gt;Pen&amp;lt;/span&amp;gt;.translate(100, 100);&amp;lt;/p&amp;gt;
&lt;br&gt;+&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;s5&amp;quot;&amp;gt;Pen&amp;lt;/span&amp;gt;.lineTo((me.bounds.left)@(me.bounds.top));&amp;lt;/p&amp;gt;
&lt;br&gt;+&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;s5&amp;quot;&amp;gt;Pen&amp;lt;/span&amp;gt;.fill;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt;
&lt;br&gt;+&amp;lt;p class=&amp;quot;p8&amp;quot;&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/p&amp;gt;
&lt;br&gt;+&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;s5&amp;quot;&amp;gt;Pen&amp;lt;/span&amp;gt;.translate(100, 100);&amp;lt;/p&amp;gt;
&lt;br&gt;&amp;nbsp;&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;10.do{&amp;lt;/p&amp;gt;
&lt;br&gt;-&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;s2&amp;quot;&amp;gt;Color&amp;lt;/span&amp;gt;.red(rrand(0.0, 1), rrand(0.0, 0.5)).set;&amp;lt;/p&amp;gt;
&lt;br&gt;-&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;s2&amp;quot;&amp;gt;Pen&amp;lt;/span&amp;gt;.addArc((400.exprand(2))@(100.rand), rrand(10, 100), 2pi.rand, pi);&amp;lt;/p&amp;gt;
&lt;br&gt;-&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;s2&amp;quot;&amp;gt;Pen&amp;lt;/span&amp;gt;.perform([&amp;lt;span class=&amp;quot;s7&amp;quot;&amp;gt;\stroke&amp;lt;/span&amp;gt;, &amp;lt;span class=&amp;quot;s7&amp;quot;&amp;gt;\fill&amp;lt;/span&amp;gt;].choose);&amp;lt;/p&amp;gt;
&lt;br&gt;+&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;s5&amp;quot;&amp;gt;Color&amp;lt;/span&amp;gt;.red(rrand(0.0, 1), rrand(0.0, 0.5)).set;&amp;lt;/p&amp;gt;
&lt;br&gt;+&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;s5&amp;quot;&amp;gt;Pen&amp;lt;/span&amp;gt;.addArc((400.exprand(2))@(100.rand), rrand(10, 100), 2pi.rand, pi);&amp;lt;/p&amp;gt;
&lt;br&gt;+&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;s5&amp;quot;&amp;gt;Pen&amp;lt;/span&amp;gt;.perform([&amp;lt;span class=&amp;quot;s7&amp;quot;&amp;gt;\stroke&amp;lt;/span&amp;gt;, &amp;lt;span class=&amp;quot;s7&amp;quot;&amp;gt;\fill&amp;lt;/span&amp;gt;].choose);&amp;lt;/p&amp;gt;
&lt;br&gt;&amp;nbsp;&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;}&amp;lt;/p&amp;gt;
&lt;br&gt;&amp;nbsp;&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;}&amp;lt;/p&amp;gt;
&lt;br&gt;&amp;nbsp;&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;};&amp;lt;/p&amp;gt;
&lt;br&gt;-&amp;lt;p class=&amp;quot;p9&amp;quot;&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/p&amp;gt;
&lt;br&gt;-&amp;lt;p class=&amp;quot;p7&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;s3&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;w = &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;s2&amp;quot;&amp;gt;SCWindow&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;s3&amp;quot;&amp;gt;.new(&amp;lt;/span&amp;gt;&amp;quot;DrawFunc Examples&amp;quot;&amp;lt;span class=&amp;quot;s3&amp;quot;&amp;gt;).front;&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt;
&lt;br&gt;-&amp;lt;p class=&amp;quot;p11&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;w.view.background_(Color.white);&amp;lt;/p&amp;gt;
&lt;br&gt;-&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;3.do{&amp;lt;span class=&amp;quot;s2&amp;quot;&amp;gt;|i|&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt;
&lt;br&gt;-&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;v = &amp;lt;span class=&amp;quot;s2&amp;quot;&amp;gt;SCUserView&amp;lt;/span&amp;gt;(w, &amp;lt;span class=&amp;quot;s2&amp;quot;&amp;gt;Rect&amp;lt;/span&amp;gt;(20+(i*120), 100, 100, 100));&amp;lt;/p&amp;gt;
&lt;br&gt;+&amp;lt;p class=&amp;quot;p8&amp;quot;&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/p&amp;gt;
&lt;br&gt;+&amp;lt;p class=&amp;quot;p7&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;s3&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;w = &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;s5&amp;quot;&amp;gt;SCWindow&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;s3&amp;quot;&amp;gt;.new(&amp;lt;/span&amp;gt;&amp;quot;DrawFunc Examples&amp;quot;&amp;lt;span class=&amp;quot;s3&amp;quot;&amp;gt;).front;&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt;
&lt;br&gt;+&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;w.view.background_(&amp;lt;span class=&amp;quot;s5&amp;quot;&amp;gt;Color&amp;lt;/span&amp;gt;.white);&amp;lt;/p&amp;gt;
&lt;br&gt;+&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;3.do{&amp;lt;span class=&amp;quot;s5&amp;quot;&amp;gt;|i|&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt;
&lt;br&gt;+&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;v = &amp;lt;span class=&amp;quot;s5&amp;quot;&amp;gt;SCUserView&amp;lt;/span&amp;gt;(w, &amp;lt;span class=&amp;quot;s5&amp;quot;&amp;gt;Rect&amp;lt;/span&amp;gt;(20+(i*120), 100, 100, 100));&amp;lt;/p&amp;gt;
&lt;br&gt;&amp;nbsp;&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;v.drawFunc = func;&amp;lt;/p&amp;gt;
&lt;br&gt;&amp;nbsp;&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;};&amp;lt;/p&amp;gt;
&lt;br&gt;&amp;nbsp;&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;w.refresh;&amp;lt;/p&amp;gt;
&lt;br&gt;@@ -119,29 +111,29 @@
&lt;br&gt;&amp;nbsp;&amp;lt;p class=&amp;quot;p3&amp;quot;&amp;gt;Set the Origin of Pen in the view's drawFunc relative to the SCUserView.&amp;lt;/p&amp;gt;
&lt;br&gt;&amp;nbsp;&amp;lt;p class=&amp;quot;p2&amp;quot;&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/p&amp;gt;
&lt;br&gt;&amp;nbsp;&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;(&amp;lt;/p&amp;gt;
&lt;br&gt;-&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;s2&amp;quot;&amp;gt;var&amp;lt;/span&amp;gt; func;&amp;lt;/p&amp;gt;
&lt;br&gt;-&amp;lt;p class=&amp;quot;p9&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt;
&lt;br&gt;-&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;func = {&amp;lt;span class=&amp;quot;s2&amp;quot;&amp;gt;|me|&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt;
&lt;br&gt;-&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;s2&amp;quot;&amp;gt;Pen&amp;lt;/span&amp;gt;.use{&amp;lt;/p&amp;gt;
&lt;br&gt;+&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;s5&amp;quot;&amp;gt;var&amp;lt;/span&amp;gt; func;&amp;lt;/p&amp;gt;
&lt;br&gt;+&amp;lt;p class=&amp;quot;p8&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt;
&lt;br&gt;+&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;func = {&amp;lt;span class=&amp;quot;s5&amp;quot;&amp;gt;|me|&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt;
&lt;br&gt;+&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;s5&amp;quot;&amp;gt;Pen&amp;lt;/span&amp;gt;.use{&amp;lt;/p&amp;gt;
&lt;br&gt;&amp;nbsp;&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;10.do{&amp;lt;/p&amp;gt;
&lt;br&gt;-&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;s2&amp;quot;&amp;gt;Color&amp;lt;/span&amp;gt;.red(rrand(0.0, 1), rrand(0.0, 0.5)).set;&amp;lt;/p&amp;gt;
&lt;br&gt;-&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;s2&amp;quot;&amp;gt;Pen&amp;lt;/span&amp;gt;.addArc((400.exprand(2))@(100.rand), rrand(10, 100), 2pi.rand, pi);&amp;lt;/p&amp;gt;
&lt;br&gt;-&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;s2&amp;quot;&amp;gt;Pen&amp;lt;/span&amp;gt;.perform([&amp;lt;span class=&amp;quot;s7&amp;quot;&amp;gt;\stroke&amp;lt;/span&amp;gt;, &amp;lt;span class=&amp;quot;s7&amp;quot;&amp;gt;\fill&amp;lt;/span&amp;gt;].choose);&amp;lt;/p&amp;gt;
&lt;br&gt;+&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;s5&amp;quot;&amp;gt;Color&amp;lt;/span&amp;gt;.red(rrand(0.0, 1), rrand(0.0, 0.5)).set;&amp;lt;/p&amp;gt;
&lt;br&gt;+&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;s5&amp;quot;&amp;gt;Pen&amp;lt;/span&amp;gt;.addArc((400.exprand(2))@(100.rand), rrand(10, 100), 2pi.rand, pi);&amp;lt;/p&amp;gt;
&lt;br&gt;+&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;s5&amp;quot;&amp;gt;Pen&amp;lt;/span&amp;gt;.perform([&amp;lt;span class=&amp;quot;s7&amp;quot;&amp;gt;\stroke&amp;lt;/span&amp;gt;, &amp;lt;span class=&amp;quot;s7&amp;quot;&amp;gt;\fill&amp;lt;/span&amp;gt;].choose);&amp;lt;/p&amp;gt;
&lt;br&gt;&amp;nbsp;&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;}&amp;lt;/p&amp;gt;
&lt;br&gt;&amp;nbsp;&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;}&amp;lt;/p&amp;gt;
&lt;br&gt;&amp;nbsp;&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;};&amp;lt;/p&amp;gt;
&lt;br&gt;-&amp;lt;p class=&amp;quot;p9&amp;quot;&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/p&amp;gt;
&lt;br&gt;-&amp;lt;p class=&amp;quot;p7&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;s3&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;w = &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;s2&amp;quot;&amp;gt;SCWindow&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;s3&amp;quot;&amp;gt;.new(&amp;lt;/span&amp;gt;&amp;quot;DrawFunc Examples&amp;quot;&amp;lt;span class=&amp;quot;s3&amp;quot;&amp;gt;).front;&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt;
&lt;br&gt;-&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;w.view.background_(&amp;lt;span class=&amp;quot;s8&amp;quot;&amp;gt;Color&amp;lt;/span&amp;gt;.white);&amp;lt;/p&amp;gt;
&lt;br&gt;-&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;3.do{&amp;lt;span class=&amp;quot;s2&amp;quot;&amp;gt;|i|&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt;
&lt;br&gt;-&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;v = &amp;lt;span class=&amp;quot;s2&amp;quot;&amp;gt;SCUserView&amp;lt;/span&amp;gt;(w, &amp;lt;span class=&amp;quot;s2&amp;quot;&amp;gt;Rect&amp;lt;/span&amp;gt;(20+(i*120), 100, 100, 100))&amp;lt;/p&amp;gt;
&lt;br&gt;-&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;.drawFunc_(func).relativeOrigin_(true);&amp;lt;/p&amp;gt;
&lt;br&gt;+&amp;lt;p class=&amp;quot;p8&amp;quot;&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/p&amp;gt;
&lt;br&gt;+&amp;lt;p class=&amp;quot;p7&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;s3&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;w = &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;s5&amp;quot;&amp;gt;SCWindow&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;s3&amp;quot;&amp;gt;.new(&amp;lt;/span&amp;gt;&amp;quot;DrawFunc Examples&amp;quot;&amp;lt;span class=&amp;quot;s3&amp;quot;&amp;gt;).front;&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt;
&lt;br&gt;+&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;w.view.background_(&amp;lt;span class=&amp;quot;s5&amp;quot;&amp;gt;Color&amp;lt;/span&amp;gt;.white);&amp;lt;/p&amp;gt;
&lt;br&gt;+&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;3.do{&amp;lt;span class=&amp;quot;s5&amp;quot;&amp;gt;|i|&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt;
&lt;br&gt;+&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;v = &amp;lt;span class=&amp;quot;s5&amp;quot;&amp;gt;SCUserView&amp;lt;/span&amp;gt;(w, &amp;lt;span class=&amp;quot;s5&amp;quot;&amp;gt;Rect&amp;lt;/span&amp;gt;(20+(i*120), 100, 100, 100))&amp;lt;/p&amp;gt;
&lt;br&gt;+&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;.drawFunc_(func).relativeOrigin_(&amp;lt;span class=&amp;quot;s5&amp;quot;&amp;gt;true&amp;lt;/span&amp;gt;);&amp;lt;/p&amp;gt;
&lt;br&gt;&amp;nbsp;&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;};&amp;lt;/p&amp;gt;
&lt;br&gt;&amp;nbsp;&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;w.refresh;&amp;lt;/p&amp;gt;
&lt;br&gt;&amp;nbsp;&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;)&amp;lt;/p&amp;gt;
&lt;br&gt;&amp;nbsp;&amp;lt;p class=&amp;quot;p2&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt;
&lt;br&gt;&amp;nbsp;&amp;lt;p class=&amp;quot;p3&amp;quot;&amp;gt;&amp;lt;b&amp;gt;mousePosition&amp;lt;/b&amp;gt;&amp;lt;/p&amp;gt;
&lt;br&gt;-&amp;lt;p class=&amp;quot;p2&amp;quot;&amp;gt;&amp;lt;b&amp;gt;&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/p&amp;gt;
&lt;br&gt;+&amp;lt;p class=&amp;quot;p2&amp;quot;&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/p&amp;gt;
&lt;br&gt;&amp;nbsp;&amp;lt;p class=&amp;quot;p3&amp;quot;&amp;gt;Get the relative position of the mouse cursor.&amp;lt;/p&amp;gt;
&lt;br&gt;&amp;nbsp;&amp;lt;p class=&amp;quot;p2&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt;
&lt;br&gt;&amp;nbsp;&amp;lt;p class=&amp;quot;p3&amp;quot;&amp;gt;&amp;lt;b&amp;gt;mouseDownAction_&amp;lt;/b&amp;gt;&amp;lt;/p&amp;gt;
&lt;br&gt;@@ -157,177 +149,229 @@
&lt;br&gt;&amp;nbsp;&amp;lt;p class=&amp;quot;p3&amp;quot;&amp;gt;Set the function which should be evaluated if the mouse is at the end of tracking (mouse-up). This function will be passed four arguments: theView, x coordinate, y coordinate, and keyboard modifiers.&amp;lt;/p&amp;gt;
&lt;br&gt;&amp;nbsp;&amp;lt;p class=&amp;quot;p2&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt;
&lt;br&gt;&amp;nbsp;&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;(&amp;lt;/p&amp;gt;
&lt;br&gt;-&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;s2&amp;quot;&amp;gt;var&amp;lt;/span&amp;gt; drawFunc, beginTrackFunc, endTrackFunc, trackFunc, sat = 0, absX;&amp;lt;/p&amp;gt;
&lt;br&gt;-&amp;lt;p class=&amp;quot;p9&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt;
&lt;br&gt;-&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;drawFunc = {&amp;lt;span class=&amp;quot;s2&amp;quot;&amp;gt;|me|&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt;
&lt;br&gt;-&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;s2&amp;quot;&amp;gt;Pen&amp;lt;/span&amp;gt;.use{&amp;lt;/p&amp;gt;
&lt;br&gt;+&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;s5&amp;quot;&amp;gt;var&amp;lt;/span&amp;gt; drawFunc, beginTrackFunc, endTrackFunc, trackFunc, sat = 0, absX;&amp;lt;/p&amp;gt;
&lt;br&gt;+&amp;lt;p class=&amp;quot;p8&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt;
&lt;br&gt;+&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;drawFunc = {&amp;lt;span class=&amp;quot;s5&amp;quot;&amp;gt;|me|&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt;
&lt;br&gt;+&amp;lt;p class=&amp;quot;p5&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;Apple-tab-span&amp;quot;&amp;gt;	&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;s5&amp;quot;&amp;gt;Pen&am