[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[sc-dev] SF.net SVN: quarks:[2679] OpenObject
- To: sc-dev@xxxxxxxxxxxxxxxx
- Subject: [sc-dev] SF.net SVN: quarks:[2679] OpenObject
- From: redfrik@xxxxxxxxxxxxxxxxxxxxx
- Date: Sat, 28 Dec 2013 23:05:51 +0000
- Dkim-signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=sourceforge.net; s=x; h=Content-Transfer-Encoding:Content-Type:Subject:To:From:MIME-Version:Date; bh=PDkgpvfcNlnpFwXHbu5YzgXBrB0IDe7lPTWYVgCwcM4=; b=FllKM1BkREUZ/oMhO1hFZzysW/psdBOYHG32cV5hOvDXeb3LRPvMQmBcTmYuysbOwLVthl9cOOMbZRxiV4ZFwMK2vX2+hmKD1cfSqQWlU0b5eYtJ3coiED3A+c7sqa/edXGw89TriKDgzc6cEQPZ9aV+qJjLbuPEakB6flSTEsA=;
- Dkim-signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=sf.net; s=x; h=Content-Transfer-Encoding:Content-Type:Subject:To:From:MIME-Version:Date; bh=PDkgpvfcNlnpFwXHbu5YzgXBrB0IDe7lPTWYVgCwcM4=; b=W4EA4dBmi6DKs25J6WBJJzTL6UHg/QN08ymBeMnlP3GmT7QJa3RVfRWYzgpRFZT+lIKtq3UmDgC2uH8qHEMRzPLrf3qDprSW5DfrMCL8sF07p4Cb16p5ALOvoax8lxK+pPG17ITODfFOEKOyX8WxhzGXM9Xd69u0cwWbHnZHaoQ=;
- List-id: SuperCollider developers mailing list <sc-devel.create.ucsb.edu>
- Reply-to: sc-dev@xxxxxxxxxxxxxxxx
- Sender: owner-sc-dev@xxxxxxxxxxxxxxxx
Revision: 2679
http://sourceforge.net/p/quarks/code/2679
Author: redfrik
Date: 2013-12-28 23:05:48 +0000 (Sat, 28 Dec 2013)
Log Message:
-----------
OpenObject: removed old html helpfile and added new granulator example
Modified Paths:
--------------
OpenObject/HelpSource/Classes/OpenObject.schelp
Added Paths:
-----------
OpenObject/examples2/
OpenObject/examples2/oo_soundfiles.maxpat
OpenObject/examples2/oo_soundfiles.scd
Removed Paths:
-------------
OpenObject/OpenObject.html
Modified: OpenObject/HelpSource/Classes/OpenObject.schelp
===================================================================
--- OpenObject/HelpSource/Classes/OpenObject.schelp 2013-12-28 22:05:02 UTC (rev 2678)
+++ OpenObject/HelpSource/Classes/OpenObject.schelp 2013-12-28 23:05:48 UTC (rev 2679)
@@ -14,6 +14,13 @@
There is only one instance for each instance of sc-lang. Any functionality within sclang can be remote controlled, for instance by using environments with functions (example below).
+NOTE::
+There are examples for Processing, Max/MSP and PureData bundled with this Quark. You'll find them next to where you installed this class.
+CODE::
+OpenObject.filenameSymbol //post the installation filepath of this class
+::
+::
+
CLASSMETHODS::
PRIVATE:: initClass, addResponder, removeResponder, getObject, oscPerform, oscPerformKeyValuePairs, setProxySource, interpretOSC, sendReply
@@ -56,7 +63,7 @@
code::
a = [1, 2, 3];
-OpenObject.put(\sans, a);
+OpenObject.put(\sans, a);
OpenObject.keyFor(a);
::
@@ -95,7 +102,7 @@
Ndef(\zz, { |freq=20, numharm = 200| Blip.ar(freq * [1, 1.2], numharm) * 0.3 } );
n.sendMsg("/oo", \Ndef_zz, \play);
n.sendMsg("/oo", \Ndef_zz, \fadeTime_, 2);
-n.sendMsg("/oo", \Ndef_zz, \xset, \freq, rrand(17, 80), \numharm, rrand(3, 100));
+n.sendMsg("/oo", \Ndef_zz, \xset, \freq, rrand(17, 80), \numharm, rrand(3, 100));
n.sendMsg("/oo", \Ndef_zz, \end);
p = ProxySpace.push(s);
@@ -201,7 +208,7 @@
OpenObject.start;
n = NetAddr("127.0.0.1", 57120); // loopback IP for this test
// for replies (normally on the remote system):
-r = OSCresponder(nil, "/oo_reply", {|t,r,msg| msg.postln }).add;
+r = OSCresponder(nil, "/oo_reply", {|t,r,msg| msg.postln }).add;
a = [1, 2, 3, 3, 4]; // an object ...
@@ -250,8 +257,8 @@
q = ();
q.publish(\madrid);
q.openWindow = { |q|
- defer {
- try { q.window.close };
+ defer {
+ try { q.window.close };
q.window = Window("remote", Rect(800, 300, 400, 250));
q.slider = Slider(q.window.view, Rect(50, 30, 300, 30));
q.window.front;
Deleted: OpenObject/OpenObject.html
===================================================================
--- OpenObject/OpenObject.html 2013-12-28 22:05:02 UTC (rev 2678)
+++ OpenObject/OpenObject.html 2013-12-28 23:05:48 UTC (rev 2679)
@@ -1,351 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta http-equiv="Content-Style-Type" content="text/css">
-<title></title>
-<meta name="Generator" content="Cocoa HTML Writer">
-<meta name="CocoaVersion" content="1038.25">
-<style type="text/css">
-p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica}
-p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px}
-p.p3 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; min-height: 12.0px}
-p.p4 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; color: #0000ee}
-p.p5 {margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Helvetica; min-height: 17.0px}
-p.p6 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 9.0px Monaco; min-height: 12.0px}
-p.p7 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 12.0px Helvetica}
-p.p8 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 12.0px Helvetica; min-height: 14.0px}
-p.p9 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 9.0px Monaco; color: #0000bf}
-p.p10 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 9.0px Monaco}
-p.p11 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 9.0px Monaco; color: #bf0000}
-p.p12 {margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Helvetica}
-p.p13 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 14.0px Monaco}
-p.p14 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 14.0px Monaco; min-height: 19.0px}
-p.p15 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 9.0px Monaco; color: #bf0000; min-height: 12.0px}
-p.p16 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #bf0000}
-p.p17 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco}
-p.p18 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 9.0px Monaco; color: #007300}
-p.p19 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 9.0px Monaco; color: #606060}
-p.p20 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 9.0px Monaco; color: #007300; min-height: 12.0px}
-p.p21 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 14.0px Helvetica}
-p.p22 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #606060}
-span.s1 {font: 18.0px Helvetica}
-span.s2 {color: #0000bf}
-span.s3 {text-decoration: underline}
-span.s4 {color: #000000}
-span.s5 {font: 9.0px Monaco}
-span.s6 {font: 12.0px Helvetica; color: #000000}
-span.s7 {font: 12.0px Helvetica}
-span.s8 {color: #007300}
-span.s9 {color: #606060}
-span.s10 {color: #bf0000}
-span.s11 {font: 14.0px Monaco}
-span.Apple-tab-span {white-space:pre}
-</style>
-</head>
-<body>
-<p class="p1"><span class="s1"><b>OpenObject<span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></b></span><b>talk to objects over the network</b><span class="s1"><b><span class="Apple-tab-span"> </span></b></span></p>
-<p class="p2"><br></p>
-<p class="p1"><b>Inherits from: </b><a href="SC://Object"><span class="s2"><b>Object</b></span></a></p>
-<p class="p3"><br></p>
-<p class="p1">Publish any object for remote access via network (OSC, see <span class="s3">http://opensoundcontrol.org/)</span></p>
-<p class="p1">This allows to create easy access for other languages and systems, such as pd, Processing or Max.</p>
-<p class="p2"><br></p>
-<p class="p4"><span class="s4"><b>See also:</b> <a href="SC://OSCresponder"><span class="s3">OSCresponder</span></a>, <a href="SC://NetAddr"><span class="s3">NetAddr</span></a></span></p>
-<p class="p2"><br></p>
-<p class="p1">OpenObject API has two levels:</p>
-<p class="p1"><span class="Apple-tab-span"> </span>• access to registered objects and to send results back to the sender (safe)</p>
-<p class="p1"><span class="Apple-tab-span"> </span>• use the sc interpreter to execute code and to send results back to the sender (unsafe)</p>
-<p class="p2"><br></p>
-<p class="p1">There is only one instance for each instance of sc-lang. Any functionality within sclang can be remote controlled, for instance by using environments with functions (example below).</p>
-<p class="p5"><br></p>
-<p class="p6"><br></p>
-<p class="p7"><b><span class="Apple-tab-span"> </span>*start(addr)</b></p>
-<p class="p8"><b><span class="Apple-tab-span"> </span></b></p>
-<p class="p7"><b><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></b>Start listening to <b>addr</b> (if nil, it listens to all addresses).</p>
-<p class="p7"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>SClang <b>listens on the port 57120</b>. If for some reason it was given a different one by the OS,<span class="Apple-converted-space"> </span></p>
-<p class="p7"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>an error message is posted. Restarting SuperCollider helps.</p>
-<p class="p8"><br></p>
-<p class="p7"><span class="Apple-tab-span"> </span><b>*replyPort_(portnumber)</b></p>
-<p class="p7"><b><span class="Apple-tab-span"> </span>*replyPort</b></p>
-<p class="p7"><b><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></b>Some applications do not allow to receive messages through the same port</p>
-<p class="p7"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>they are passing in the OSC message as reply port. As a workaround, this port can be explicitly overridden here.</p>
-<p class="p8"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></p>
-<p class="p7"><b><span class="Apple-tab-span"> </span>*end</b></p>
-<p class="p8"><b><span class="Apple-tab-span"> </span></b></p>
-<p class="p7"><b><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></b>Stop listening</p>
-<p class="p8"><span class="Apple-tab-span"> </span></p>
-<p class="p7"><span class="Apple-tab-span"> </span><b>*clear</b></p>
-<p class="p8"><b><span class="Apple-tab-span"> </span></b></p>
-<p class="p7"><b><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></b>Remove all objects<span class="s5"><span class="Apple-tab-span"> </span></span></p>
-<p class="p6"><span class="Apple-tab-span"> </span></p>
-<p class="p7"><span class="s5"><span class="Apple-tab-span"> </span></span><b>*isListening</b></p>
-<p class="p8"><b><span class="Apple-tab-span"> </span></b></p>
-<p class="p7"><b><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></b>Check if listening</p>
-<p class="p8"><br></p>
-<p class="p9"><span class="s6"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></span>OpenObject<span class="s4">.start;</span></p>
-<p class="p10"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s2">OpenObject</span>.isListening;</p>
-<p class="p9"><span class="s4"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></span>OpenObject<span class="s4">.end;</span></p>
-<p class="p10"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s2">OpenObject</span>.isListening;</p>
-<p class="p6"><br></p>
-<p class="p6"><br></p>
-<p class="p7"><b><span class="Apple-tab-span"> </span>*put(name, object)</b></p>
-<p class="p8"><b><span class="Apple-tab-span"> </span></b></p>
-<p class="p7"><b><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></b>Add an object for remote access under a <b>name</b></p>
-<p class="p8"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></p>
-<p class="p10"><span class="s7"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></span>a = [1, 2, 3];</p>
-<p class="p10"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s2">OpenObject</span>.put(<span class="s8">\foo</span>, a);</p>
-<p class="p6"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></p>
-<p class="p11"><span class="s4"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></span>// alternatively, any object may be made accessable directly:</p>
-<p class="p10"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>a.publish(<span class="s8">\foo</span>);</p>
-<p class="p6"><span class="Apple-tab-span"> </span></p>
-<p class="p7"><span class="s5"><span class="Apple-tab-span"> </span></span><b>*keyFor(object)</b></p>
-<p class="p8"><b><span class="Apple-tab-span"> </span></b></p>
-<p class="p7"><b><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></b>The key under which object is published.</p>
-<p class="p8"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></p>
-<p class="p10"><span class="s7"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></span>a = [1, 2, 3];</p>
-<p class="p10"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s2">OpenObject</span>.put(<span class="s8">\sans</span>, a);<span class="s7"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></span></p>
-<p class="p10"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s2">OpenObject</span>.keyFor(a);</p>
-<p class="p6"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></p>
-<p class="p6"><span class="Apple-tab-span"> </span></p>
-<p class="p7"><span class="s5"><span class="Apple-tab-span"> </span></span><b>*remove(object)</b></p>
-<p class="p8"><b><span class="Apple-tab-span"> </span></b></p>
-<p class="p7"><b><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></b>Remove an object</p>
-<p class="p8"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></p>
-<p class="p10"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s2">OpenObject</span>.remove(a);</p>
-<p class="p6"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></p>
-<p class="p11"><span class="s4"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></span>// alternatively, any object may be made unaccessable again directly:</p>
-<p class="p10"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>a.unpublish;</p>
-<p class="p6"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></p>
-<p class="p6"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></p>
-<p class="p7"><span class="s5"><span class="Apple-tab-span"> </span></span><b>*removeAt(name)</b></p>
-<p class="p8"><b><span class="Apple-tab-span"> </span></b></p>
-<p class="p7"><b><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></b>Remove an object published under <b>name</b></p>
-<p class="p6"><br></p>
-<p class="p6"><br></p>
-<p class="p6"><br></p>
-<p class="p7"><span class="s5"><span class="Apple-tab-span"> </span></span><b>*lookup_(boolean)</b></p>
-<p class="p7"><b><span class="Apple-tab-span"> </span>*lookup</b></p>
-<p class="p8"><b><span class="Apple-tab-span"> </span></b></p>
-<p class="p7"><b><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></b>If set to true, a special syntax for name can be used to index into registered objects (default: false)</p>
-<p class="p7"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>For a syntax example, see below.</p>
-<p class="p6"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></p>
-<p class="p6"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></p>
-<p class="p7"><span class="s5"><span class="Apple-tab-span"> </span></span><b>*openProxies</b></p>
-<p class="p8"><b><span class="Apple-tab-span"> </span></b></p>
-<p class="p7"><b><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></b>Publish the proxy classes <a href="SC://Tdef"><span class="s2">Tdef</span></a>, <a href="SC://Ndef"><span class="s2">Ndef</span></a>, <a href="SC://Pdef"><span class="s2">Pdef</span></a>, <a href="SC://Pdefn"><span class="s2">Pdefn</span></a>, <a href="SC://Ndef"><span class="s2">Ndef</span></a> and <a href="SC://Fdef"><span class="s2">Fdef</span></a> (convenience method).</p>
-<p class="p7"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><b>lookup</b> is set to true.</p>
-<p class="p7"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>For an example, see below.</p>
-<p class="p8"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></p>
-<p class="p7"><span class="s5"><span class="Apple-tab-span"> </span></span><b>*openInterpreter(addr)</b></p>
-<p class="p8"><b><span class="Apple-tab-span"> </span></b></p>
-<p class="p7"><b><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></b>Open the interpreter for external access. Do this only if you know what you are doing (see below).</p>
-<p class="p7"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><b>addr</b>: if not nil, accept only commands from this one.</p>
-<p class="p8"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></p>
-<p class="p7"><span class="s5"><span class="Apple-tab-span"> </span></span><b>*closeInterpreter</b></p>
-<p class="p8"><b><span class="Apple-tab-span"> </span></b></p>
-<p class="p7"><b><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></b>Close the interpreter.</p>
-<p class="p8"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></p>
-<p class="p6"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></p>
-<p class="p6"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></p>
-<p class="p6"><span class="Apple-tab-span"> </span></p>
-<p class="p6"><br></p>
-<p class="p12"><b>OpenSoundControl API</b></p>
-<p class="p6"><br></p>
-<p class="p7"><span class="Apple-tab-span"> </span>Once an object has been published under a <b>name</b>, methods can be called via OSC messages:</p>
-<p class="p8"><span class="Apple-tab-span"> </span></p>
-<p class="p13"><span class="s7"><span class="Apple-tab-span"> </span></span>"/oo" name selector arg1 arg2 ...</p>
-<p class="p13"><span class="s7"><span class="Apple-tab-span"> </span></span>"/oo" replyID name selector arg1 arg2 ...</p>
-<p class="p14"><br></p>
-<p class="p13"><span class="Apple-tab-span"> </span>"/oo_k" name selector argname1 arg1 argname2 arg2 ...</p>
-<p class="p13"><span class="Apple-tab-span"> </span>"/oo_k" replyID name selector argname1 arg1 argname2 arg2 ...</p>
-<p class="p14"><br></p>
-<p class="p7"><span class="Apple-tab-span"> </span><b>name</b>:<span class="Apple-tab-span"> </span>The name under which the object has been published</p>
-<p class="p7"><span class="Apple-tab-span"> </span><b>selector</b>: <span class="Apple-tab-span"> </span>The message to be called on the object</p>
-<p class="p7"><span class="Apple-tab-span"> </span><b>arg</b>:<span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>a float, integer, symbol. (strings are converted to symbols)<span class="Apple-converted-space"> </span></p>
-<p class="p7"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>Array arguments can be nested by <b>bracket chars as type tags</b> (see example below).</p>
-<p class="p7"><span class="Apple-tab-span"> </span><b>replyID</b>:<span class="Apple-tab-span"> </span>If a replyID (an <b>integer</b>) is given, sends back a reply: The results are<span class="Apple-converted-space"> </span></p>
-<p class="p7"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>sent back to the sender under the OSC command<span class="Apple-converted-space"> </span></p>
-<p class="p7"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><b>"/oo_reply" replyID val1 val2 ...</b></p>
-<p class="p8"><span class="Apple-tab-span"> </span></p>
-<p class="p7"><span class="Apple-tab-span"> </span><b>/oo</b> <span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>passes arguments in sequence</p>
-<p class="p7"><span class="Apple-tab-span"> </span><b>/oo_k</b> <span class="Apple-tab-span"> </span>passes keyword arguments, in pairs of argument name and value.</p>
-<p class="p6"><span class="Apple-tab-span"> </span></p>
-<p class="p6"><span class="Apple-tab-span"> </span></p>
-<p class="p11"><span class="s4"><span class="Apple-tab-span"> </span></span>// example</p>
-<p class="p15"><span class="Apple-tab-span"> </span></p>
-<p class="p9"><span class="s4"><span class="Apple-tab-span"> </span></span>OpenObject<span class="s4">.start;</span></p>
-<p class="p11"><span class="s2"><span class="Apple-tab-span"> </span></span><span class="s4">n = </span><span class="s2">NetAddr</span><span class="s4">(</span><span class="s9">"127.0.0.1"</span><span class="s4">, </span><span class="s2">57120</span><span class="s4">); </span>// loopback IP for this test</p>
-<p class="p11"><span class="Apple-tab-span"> </span>// for replies (normally on the remote system):</p>
-<p class="p10"><span class="Apple-tab-span"> </span>r = <span class="s2">OSCresponder</span>(<span class="s2">nil</span>, <span class="s9">"/oo_reply"</span>, {<span class="s2">|t,r,msg|</span> msg.postln }).add;<span class="Apple-converted-space"> </span></p>
-<p class="p15"><br></p>
-<p class="p6"><span class="Apple-tab-span"> </span></p>
-<p class="p10"><span class="Apple-tab-span"> </span>a = [1, 2, 3, 3, 4]; <span class="s10">// an object ...</span></p>
-<p class="p11"><span class="s4"><span class="Apple-tab-span"> </span>a.publish(</span><span class="s8">\paris</span><span class="s4">); </span>// accessible via \paris</p>
-<p class="p15"><span class="Apple-tab-span"> </span></p>
-<p class="p11"><span class="s4"><span class="Apple-tab-span"> </span>n.sendMsg(</span><span class="s9">"/oo"</span><span class="s4">, </span><span class="s8">\paris</span><span class="s4">, </span><span class="s8">\put</span><span class="s4">, 2, 1974); </span>// equivalent of a.put(2, 1974)</p>
-<p class="p10"><span class="s10"><span class="Apple-tab-span"> </span></span>a.postln;</p>
-<p class="p11"><span class="s4"><span class="Apple-tab-span"> </span>n.sendMsg(</span><span class="s9">"/oo"</span><span class="s4">, 1, </span><span class="s8">\paris</span><span class="s4">, </span><span class="s8">\at</span><span class="s4">, 2); </span>// equivalent of a.put(2, 1974)</p>
-<p class="p10"><span class="s10"><span class="Apple-tab-span"> </span></span>a.postln;</p>
-<p class="p6"><br></p>
-<p class="p10"><span class="Apple-tab-span"> </span>n.sendMsg(<span class="s9">"/oo"</span>, <span class="s8">\paris</span>, <span class="s8">\put</span>, 2, "hello paris"); <span class="s10">// equivalent of a.put(2, 1974)</span></p>
-<p class="p10"><span class="s10"><span class="Apple-tab-span"> </span></span>a.postln;</p>
-<p class="p6"><span class="Apple-tab-span"> </span></p>
-<p class="p11"><span class="s4"><span class="Apple-tab-span"> </span></span>// arrays:</p>
-<p class="p10"><span class="Apple-tab-span"> </span>n.sendMsg(<span class="s9">"/oo"</span>, <span class="s8">\paris</span>, <span class="s8">\put</span>, 2, <span class="s8">$[</span>, 1974, 1975, 1976, <span class="s8">$]</span>); <span class="s10">// a.put(2, [1974, 1975, 1976])</span></p>
-<p class="p10"><span class="Apple-tab-span"> </span>a.postln;</p>
-<p class="p10"><span class="Apple-tab-span"> </span>n.sendMsg(<span class="s9">"/oo"</span>, <span class="s8">\paris</span>, <span class="s8">\put</span>, <span class="s8">$[</span>, 2, 3, <span class="s8">$]</span>, 500); <span class="s10">// a.put([2, 3], 500)</span></p>
-<p class="p10"><span class="Apple-tab-span"> </span>a.postln;</p>
-<p class="p10"><span class="Apple-tab-span"> </span>n.sendMsg(<span class="s9">"/oo"</span>, <span class="s8">\paris</span>, <span class="s8">\put</span>, 0, <span class="s8">$[</span>, 2, <span class="s8">$[</span>, 3, 4, <span class="s8">$]</span>, <span class="s8">$]</span>); <span class="s10">// a.put(0, [ 2, [ 3, 4 ] ])</span></p>
-<p class="p10"><span class="Apple-tab-span"> </span>a.postln;</p>
-<p class="p6"><span class="Apple-tab-span"> </span></p>
-<p class="p11"><span class="s4"><span class="Apple-tab-span"> </span></span>// sound example</p>
-<p class="p15"><span class="Apple-tab-span"> </span></p>
-<p class="p10"><span class="Apple-tab-span"> </span>s.boot;</p>
-<p class="p6"><span class="Apple-tab-span"> </span></p>
-<p class="p10"><span class="Apple-tab-span"> </span><span class="s2">Ndef</span>(<span class="s8">\y</span>, { <span class="s2">|freq=10, numharm = 200|</span> <span class="s2">Blip</span>.ar(freq * [1, 1.2], numharm) * 0.3 } );</p>
-<p class="p16"><span class="s4"><span class="Apple-tab-span"> </span></span><span class="s2">Ndef</span><span class="s4">(</span><span class="s8">\y</span><span class="s4">).publish(</span><span class="s8">\brussels</span><span class="s4">); </span>// accessible via \brussels</p>
-<p class="p16"><span class="Apple-tab-span"> </span>// play and stop</p>
-<p class="p17"><span class="s10"><span class="Apple-tab-span"> </span></span>n.sendMsg(<span class="s9">"/oo"</span>, <span class="s8">\brussels</span>, <span class="s8">\play</span>);</p>
-<p class="p10"><span class="Apple-tab-span"> </span>n.sendMsg(<span class="s9">"/oo"</span>, <span class="s8">\brussels</span>, <span class="s8">\stop</span>);</p>
-<p class="p11"><span class="s4"><span class="Apple-tab-span"> </span></span>// using keyword args (/ook)</p>
-<p class="p18"><span class="s10"><span class="Apple-tab-span"> </span></span><span class="s4">n.sendMsg(</span><span class="s9">"/oo_k"</span><span class="s4">, </span>\brussels<span class="s4">, </span>\play<span class="s4">, </span>\fadeTime<span class="s4">, 3);</span></p>
-<p class="p11"><span class="s8"><span class="Apple-tab-span"> </span></span>// setting args</p>
-<p class="p10"><span class="s10"><span class="Apple-tab-span"> </span></span>n.sendMsg(<span class="s9">"/oo"</span>, <span class="s8">\brussels</span>, <span class="s8">\xset</span>, <span class="s8">\freq</span>, 30, <span class="s8">\numharm</span>, 200);</p>
-<p class="p10"><span class="Apple-tab-span"> </span>n.sendMsg(<span class="s9">"/oo"</span>, <span class="s8">\brussels</span>, <span class="s8">\stop</span>);</p>
-<p class="p6"><span class="Apple-tab-span"> </span></p>
-<p class="p6"><span class="Apple-tab-span"> </span></p>
-<p class="p11"><span class="s4"><span class="Apple-tab-span"> </span></span>// talk to the current environment</p>
-<p class="p10"><span class="s10"><span class="Apple-tab-span"> </span></span>currentEnvironment.publish(<span class="s8">\envir</span>); <span class="s10">// accessible via \envir</span></p>
-<p class="p10"><span class="Apple-tab-span"> </span>n.sendMsg(<span class="s9">"/oo"</span>, <span class="s8">\envir</span>, <span class="s8">\put</span>, <span class="s8">\x</span>, 1914);</p>
-<p class="p10"><span class="Apple-tab-span"> </span>~x.postln;</p>
-<p class="p10"><span class="Apple-tab-span"> </span>currentEnvironment.unpublish;</p>
-<p class="p6"><span class="Apple-tab-span"> </span></p>
-<p class="p11"><span class="s4"><span class="Apple-tab-span"> </span></span>// use an environment to extend functionality by calling functions</p>
-<p class="p10"><span class="s10"><span class="Apple-tab-span"> </span></span>(</p>
-<p class="p10"><span class="Apple-tab-span"> </span>q = ();</p>
-<p class="p10"><span class="Apple-tab-span"> </span>q.publish(<span class="s8">\madrid</span>);</p>
-<p class="p10"><span class="Apple-tab-span"> </span>q.openWindow = { <span class="s2">|q|</span></p>
-<p class="p10"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>defer {<span class="Apple-converted-space"> </span></p>
-<p class="p10"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>try { q.window.close };<span class="Apple-converted-space"> </span></p>
-<p class="p19"><span class="s4"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>q.window = </span><span class="s2">Window</span><span class="s4">(</span>"remote", Rect(800, 300, 400, 250)<span class="s4">);</span></p>
-<p class="p10"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>q.slider = <span class="s2">Slider</span>(q.window.view, <span class="s2">Rect</span>(50, 30, 300, 30));</p>
-<p class="p10"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>q.window.front;</p>
-<p class="p10"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>}</p>
-<p class="p10"><span class="Apple-tab-span"> </span>};</p>
-<p class="p10"><span class="Apple-tab-span"> </span>q.closeWindow = { <span class="s2">|q|</span> defer { try { q.window.close } } };</p>
-<p class="p10"><span class="Apple-tab-span"> </span>q.setColor = {<span class="Apple-converted-space"> </span><span class="s2">|q, r, g, b|</span> defer { q.window.view.background_(<span class="s2">Color</span>.new255(r,g,b)) } };</p>
-<p class="p10"><span class="Apple-tab-span"> </span>q.setSlider = { <span class="s2">|q, val|</span> defer { q.slider.value = val } };</p>
-<p class="p10"><span class="Apple-tab-span"> </span>)</p>
-<p class="p6"><span class="Apple-tab-span"> </span></p>
-<p class="p18"><span class="s4"><span class="Apple-tab-span"> </span>n.sendMsg(</span><span class="s9">"/oo"</span><span class="s4">, </span>\madrid<span class="s4">, </span>\openWindow<span class="s4">);</span></p>
-<p class="p10"><span class="Apple-tab-span"> </span>n.sendMsg(<span class="s9">"/oo"</span>, <span class="s8">\madrid</span>, <span class="s8">\setColor</span>, 122, 45, 67);</p>
-<p class="p10"><span class="Apple-tab-span"> </span>n.sendMsg(<span class="s9">"/oo"</span>, <span class="s8">\madrid</span>, <span class="s8">\setColor</span>, *{ 255.rand } ! 3);</p>
-<p class="p10"><span class="Apple-tab-span"> </span>n.sendMsg(<span class="s9">"/oo"</span>, <span class="s8">\madrid</span>, <span class="s8">\setSlider</span>, 1.0.rand);</p>
-<p class="p18"><span class="s4"><span class="Apple-tab-span"> </span>n.sendMsg(</span><span class="s9">"/oo"</span><span class="s4">, </span>\madrid<span class="s4">, </span>\closeWindow<span class="s4">);</span></p>
-<p class="p6"><span class="Apple-tab-span"> </span></p>
-<p class="p10"><span class="Apple-tab-span"> </span>q.unpublish;</p>
-<p class="p20"><span class="Apple-tab-span"> </span></p>
-<p class="p6"><br></p>
-<p class="p21"><b>Remote controlling proxies and environments<span class="Apple-converted-space"> </span></b></p>
-<p class="p8"><br></p>
-<p class="p8"><br></p>
-<p class="p7"><span class="Apple-tab-span"> </span>*<b>lookup</b></p>
-<p class="p7"><span class="Apple-tab-span"> </span>*<b>lookup_(boolean)</b></p>
-<p class="p8"><span class="Apple-tab-span"> </span></p>
-<p class="p7"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>If set to true, any objects or classes that implement the message "<b>at</b>" can be accessed remotely.</p>
-<p class="p7"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>As name, use the scheme: name_key, e.g. Tdef_x for Tdef(\x).</p>
-<p class="p6"><span class="Apple-tab-span"> </span></p>
-<p class="p7"><span class="s5"><span class="Apple-tab-span"> </span></span><b>*openProxies</b></p>
-<p class="p8"><b><span class="Apple-tab-span"> </span></b></p>
-<p class="p7"><b><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></b>Register the proxy classes <a href="SC://Tdef"><span class="s2">Tdef</span></a>, <a href="SC://Ndef"><span class="s2">Ndef</span></a>, <a href="SC://Pdef"><span class="s2">Pdef</span></a>, <a href="SC://Pdefn"><span class="s2">Pdefn</span></a>, <a href="SC://Ndef"><span class="s2">Ndef</span></a> and <a href="SC://Fdef"><span class="s2">Fdef</span></a> (convenience method).</p>
-<p class="p7"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><b>lookup</b> is set to true.</p>
-<p class="p6"><span class="Apple-tab-span"> </span></p>
-<p class="p6"><span class="Apple-tab-span"> </span></p>
-<p class="p11"><span class="s4"><span class="Apple-tab-span"> </span></span>// example:</p>
-<p class="p6"><span class="Apple-tab-span"> </span></p>
-<p class="p10"><span class="Apple-tab-span"> </span>s.boot;</p>
-<p class="p9"><span class="s4"><span class="Apple-tab-span"> </span></span>OpenObject<span class="s4">.start;</span></p>
-<p class="p11"><span class="s4"><span class="Apple-tab-span"> </span></span><span class="s2">OpenObject</span><span class="s4">.openProxies; </span>// register all proxy classes</p>
-<p class="p11"><span class="s4"><span class="Apple-tab-span"> </span>n = </span><span class="s2">NetAddr</span><span class="s4">(</span><span class="s9">"127.0.0.1"</span><span class="s4">, </span><span class="s2">57120</span><span class="s4">); </span>// loopback IP for this test</p>
-<p class="p6"><br></p>
-<p class="p10"><span class="Apple-tab-span"> </span><span class="s2">Pdef</span>(<span class="s8">\xx</span>, <span class="s2">Pbind</span>(<span class="s8">\dur</span>, <span class="s2">Pseries</span>(0.2, 0.1, 6), <span class="s8">\note</span>, <span class="s2">Prand</span>([0, 2, 3, 4, 8, 9], <span class="s2">inf</span>)));</p>
-<p class="p10"><span class="Apple-tab-span"> </span>n.sendMsg(<span class="s9">"/oo"</span>, <span class="s8">\Pdef_xx</span>, <span class="s8">\play</span>);</p>
-<p class="p6"><span class="Apple-tab-span"> </span></p>
-<p class="p10"><span class="Apple-tab-span"> </span><span class="s2">Ndef</span>(<span class="s8">\zz</span>, { <span class="s2">|freq=20, numharm = 200|</span> <span class="s2">Blip</span>.ar(freq * [1, 1.2], numharm) * 0.3 } );</p>
-<p class="p10"><span class="Apple-tab-span"> </span>n.sendMsg(<span class="s9">"/oo"</span>, <span class="s8">\Ndef_zz</span>, <span class="s8">\play</span>);</p>
-<p class="p10"><span class="Apple-tab-span"> </span>n.sendMsg(<span class="s9">"/oo"</span>, <span class="s8">\Ndef_zz</span>, <span class="s8">\fadeTime_</span>, 2);</p>
-<p class="p10"><span class="Apple-tab-span"> </span>n.sendMsg(<span class="s9">"/oo"</span>, <span class="s8">\Ndef_zz</span>, <span class="s8">\xset</span>, <span class="s8">\freq</span>, rrand(17, 80), <span class="s8">\numharm</span>, rrand(3, 100));<span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></p>
-<p class="p10"><span class="Apple-tab-span"> </span>n.sendMsg(<span class="s9">"/oo"</span>, <span class="s8">\Ndef_zz</span>, <span class="s8">\end</span>);<span class="Apple-tab-span"> </span></p>
-<p class="p6"><span class="Apple-tab-span"> </span></p>
-<p class="p10"><span class="Apple-tab-span"> </span>p = <span class="s2">ProxySpace</span>.push(s);</p>
-<p class="p10"><span class="Apple-tab-span"> </span>p.publish(<span class="s8">\psp</span>);</p>
-<p class="p6"><span class="Apple-tab-span"> </span></p>
-<p class="p10"><span class="Apple-tab-span"> </span>~zz =<span class="Apple-converted-space"> </span>{ <span class="s2">|freq=30, numharm = 200|</span> <span class="s2">Blip</span>.ar(freq * [1, 1.2], numharm) * 0.3 };</p>
-<p class="p10"><span class="Apple-tab-span"> </span>n.sendMsg(<span class="s9">"/oo"</span>, <span class="s8">\psp_zz</span>, <span class="s8">\play</span>);</p>
-<p class="p10"><span class="Apple-tab-span"> </span>n.sendMsg(<span class="s9">"/oo"</span>, <span class="s8">\psp_zz</span>, <span class="s8">\fadeTime_</span>, 2);</p>
-<p class="p10"><span class="Apple-tab-span"> </span>n.sendMsg(<span class="s9">"/oo"</span>, <span class="s8">\psp_zz</span>, <span class="s8">\xset</span>, <span class="s8">\freq</span>, exprand(20, 1000), <span class="s8">\numharm</span>, rand(80, 500));</p>
-<p class="p10"><span class="Apple-tab-span"> </span>n.sendMsg(<span class="s9">"/oo"</span>, <span class="s8">\psp_zz</span>, <span class="s8">\end</span>, 3);</p>
-<p class="p6"><br></p>
-<p class="p6"><br></p>
-<p class="p6"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></p>
-<p class="p12"><b>Interpreting</b></p>
-<p class="p6"><br></p>
-<p class="p7"><span class="Apple-tab-span"> </span>For remote code execution, OpenObject can be opened to the interpreter.<span class="Apple-converted-space"> </span></p>
-<p class="p7"><b><span class="Apple-tab-span"> </span>Use with care!</b><span class="Apple-converted-space"> </span>Any code can be executed from the network, so the connection should be trustworthy.</p>
-<p class="p8"><br></p>
-<p class="p7"><b><span class="Apple-tab-span"> </span>*openInterpreter(addr)</b></p>
-<p class="p7"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><b>addr</b>: address from which the messages come. nil means any.</p>
-<p class="p7"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><b>replyID</b>:<span class="Apple-tab-span"> </span>If a replyID (an <b>integer</b>) is given, sends back a reply: The results are<span class="Apple-converted-space"> </span></p>
-<p class="p7"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>sent back to the sender under the OSC command<span class="Apple-converted-space"> </span></p>
-<p class="p7"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><b>"/oo_reply" replyID val1 val2 ...</b></p>
-<p class="p8"><br></p>
-<p class="p13"><span class="Apple-tab-span"> </span>"/oo_i" string</p>
-<p class="p13"><span class="Apple-tab-span"> </span>"/oo_i" replyID string</p>
-<p class="p13"><span class="Apple-tab-span"> </span>"/oo_p" name string</p>
-<p class="p8"><span class="s11"><span class="Apple-tab-span"> </span></span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><b><span class="Apple-converted-space"> </span></b></p>
-<p class="p8"><span class="Apple-converted-space"> </span></p>
-<p class="p7"><b><span class="Apple-tab-span"> </span>/oo_i</b><span class="Apple-converted-space"> </span></p>
-<p class="p7"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>Interpret the string on the remote sclang interpreter.</p>
-<p class="p7"><b><span class="Apple-tab-span"> </span>/oo_p</b><span class="Apple-converted-space"> </span></p>
-<p class="p7"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>Set the proxy source with the interpreted code string (used for remote live coding).</p>
-<p class="p14"><br></p>
-<p class="p8"><span class="Apple-converted-space"> </span></p>
-<p class="p8"><span class="Apple-converted-space"> </span></p>
-<p class="p8"><span class="Apple-converted-space"> </span></p>
-<p class="p11"><span class="Apple-tab-span"> </span>// example</p>
-<p class="p15"><span class="Apple-tab-span"> </span></p>
-<p class="p10"><span class="s10"><span class="Apple-tab-span"> </span></span>s.boot;</p>
-<p class="p9"><span class="s4"><span class="Apple-tab-span"> </span></span>OpenObject<span class="s4">.start;</span></p>
-<p class="p10"><span class="s2"><span class="Apple-tab-span"> </span>OpenObject</span>.openInterpreter;</p>
-<p class="p11"><span class="s4"><span class="Apple-tab-span"> </span>n = </span><span class="s2">NetAddr</span><span class="s4">(</span><span class="s9">"127.0.0.1"</span><span class="s4">, 57120); </span>// loopback IP for this test</p>
-<p class="p15"><span class="Apple-tab-span"> </span></p>
-<p class="p11"><span class="s4"><span class="Apple-tab-span"> </span></span>// oo_i</p>
-<p class="p19"><span class="s4"><span class="Apple-tab-span"> </span>n.sendMsg(</span>"/oo_i"<span class="s4">, </span>"a = { Dust.ar(1000 ! 2, 0.1) }.play;"<span class="s4">);</span></p>
-<p class="p19"><span class="s4"><span class="Apple-tab-span"> </span>n.sendMsg(</span>"/oo_i"<span class="s4">, </span>"a.free;"<span class="s4">);</span></p>
-<p class="p6"><span class="Apple-tab-span"> </span></p>
-<p class="p11"><span class="s4"><span class="Apple-tab-span"> </span></span>// sending back a reply (emulating the remote call)</p>
-<p class="p10"><span class="Apple-tab-span"> </span>r = <span class="s2">OSCresponder</span>(<span class="s2">nil</span>, <span class="s9">"/oo_reply"</span>, {<span class="s2">|t,r,msg|</span> msg.postln }).add;</p>
-<p class="p22"><span class="s4"><span class="Apple-tab-span"> </span>n.sendMsg(</span>"/oo_i"<span class="s4">, 99, </span>"[7 + 14, pi / 2]"<span class="s4">); </span><span class="s10">// provide a replyID: 99</span></p>
-<p class="p6"><br></p>
-<p class="p11"><span class="s4"><span class="Apple-tab-span"> </span></span>// oo_p</p>
-<p class="p10"><span class="Apple-tab-span"> </span><span class="s2">Ndef</span>(<span class="s8">\zz</span>, { <span class="s2">|freq=40, numharm = 200|</span> <span class="s2">Blip</span>.ar(freq * [1, 1.2], numharm) * 0.3 } );</p>
-<p class="p10"><span class="Apple-tab-span"> </span><span class="s2">Ndef</span>(<span class="s8">\zz</span>).publish(<span class="s8">\zz</span>);</p>
-<p class="p10"><span class="Apple-tab-span"> </span>n.sendMsg(<span class="s9">"/oo"</span>, <span class="s8">\zz</span>, <span class="s8">\play</span>);</p>
-<p class="p19"><span class="s4"><span class="Apple-tab-span"> </span>n.sendMsg(</span>"/oo_p"<span class="s4">, </span><span class="s8">\zz</span><span class="s4">, </span>"{ |freq=300| SinOsc.ar(freq, Blip.ar([3, 4], 4) * 6, 0.1) }"<span class="s4">);</span></p>
-<p class="p19"><span class="s4"><span class="Apple-tab-span"> </span>n.sendMsg(</span>"/oo_p"<span class="s4">, </span><span class="s8">\zz</span><span class="s4">, </span>"{ |freq=300| Saw.ar(freq * Blip.ar([3, 4], 4, 6, 1), 0.1) }"<span class="s4">);</span></p>
-<p class="p10"><span class="Apple-tab-span"> </span>n.sendMsg(<span class="s9">"/oo"</span>, <span class="s8">\zz</span>, <span class="s8">\stop</span>, 3);</p>
-<p class="p6"><span class="Apple-tab-span"> </span></p>
-<p class="p11"><span class="s6"><span class="Apple-tab-span"> </span></span>// in combination with proxy lookup, remote conversational programming:</p>
-<p class="p10"><span class="Apple-tab-span"> </span><span class="s2">OpenObject</span>.openProxies;</p>
-<p class="p6"><span class="Apple-tab-span"> </span></p>
-<p class="p10"><span class="Apple-tab-span"> </span>n.sendMsg(<span class="s9">"/oo"</span>, <span class="s8">\Ndef_out</span>, <span class="s8">\play</span>);</p>
-<p class="p19"><span class="s4"><span class="Apple-tab-span"> </span>n.sendMsg(</span>"/oo_p"<span class="s4">, </span><span class="s8">\Ndef_out</span><span class="s4">, </span>"{ |freq=300| SinOsc.ar(freq, Blip.ar([3, 4], 4) * 6, 0.1) }"<span class="s4">);</span></p>
-<p class="p10"><span class="Apple-tab-span"> </span>n.sendMsg(<span class="s9">"/oo"</span>, <span class="s8">\Ndef_out</span>, <span class="s8">\xset</span>, <span class="s8">\freq</span>, exprand(200, 800));</p>
-<p class="p10"><span class="Apple-tab-span"> </span>n.sendMsg(<span class="s9">"/oo"</span>, <span class="s8">\Ndef_out</span>, <span class="s8">\clear</span>, 3);</p>
-<p class="p6"><span class="Apple-tab-span"> </span></p>
-<p class="p10"><span class="s7"><span class="Apple-tab-span"> </span></span><span class="s2">OpenObject</span>.closeInterpreter;</p>
-<p class="p10"><span class="Apple-tab-span"> </span><span class="s2">OpenObject</span>.clear.end;</p>
-<p class="p6"><span class="Apple-tab-span"> </span></p>
-</body>
-</html>
Added: OpenObject/examples2/oo_soundfiles.maxpat
===================================================================
--- OpenObject/examples2/oo_soundfiles.maxpat (rev 0)
+++ OpenObject/examples2/oo_soundfiles.maxpat 2013-12-28 23:05:48 UTC (rev 2679)
@@ -0,0 +1,1747 @@
+{
+ "patcher" : {
+ "fileversion" : 1,
+ "appversion" : {
+ "major" : 5,
+ "minor" : 1,
+ "revision" : 9
+ }
+,
+ "rect" : [ 153.0, 223.0, 922.0, 592.0 ],
+ "bglocked" : 0,
+ "defrect" : [ 153.0, 223.0, 922.0, 592.0 ],
+ "openrect" : [ 0.0, 0.0, 0.0, 0.0 ],
+ "openinpresentation" : 0,
+ "default_fontsize" : 12.0,
+ "default_fontface" : 0,
+ "default_fontname" : "Arial",
+ "gridonopen" : 0,
+ "gridsize" : [ 15.0, 15.0 ],
+ "gridsnaponopen" : 0,
+ "toolbarvisible" : 1,
+ "boxanimatetime" : 200,
+ "imprint" : 0,
+ "enablehscroll" : 1,
+ "enablevscroll" : 1,
+ "devicewidth" : 0.0,
+ "boxes" : [ {
+ "box" : {
+ "maxclass" : "preset",
+ "presentation_rect" : [ 480.0, 75.0, 100.0, 40.0 ],
+ "numinlets" : 1,
+ "patching_rect" : [ 720.0, 60.0, 100.0, 40.0 ],
+ "numoutlets" : 4,
+ "presentation" : 1,
+ "id" : "obj-126",
+ "outlettype" : [ "preset", "int", "preset", "int" ],
+ "preset_data" : [ {
+ "number" : 1,
+ "data" : [ 5, "obj-18", "number", "int", -10, 5, "obj-28", "flonum", "float", 1.0, 5, "obj-41", "slider", "float", 117.0, 6, "obj-44", "rslider", "list", 78, 78, 5, "obj-64", "slider", "float", 0.0, 5, "obj-68", "flonum", "float", 0.001, 6, "obj-78", "rslider", "list", 63, 64, 5, "obj-72", "slider", "float", 0.0, 5, "obj-69", "flonum", "float", 0.001, 6, "obj-103", "rslider", "list", 82, 82, 5, "obj-97", "slider", "float", 0.0, 5, "obj-94", "flonum", "float", 0.001, 6, "obj-114", "rslider", "list", 66, 66, 5, "obj-108", "slider", "float", 0.0, 5, "obj-105", "flonum", "float", 0.001, 6, "obj-125", "rslider", "list", 64, 64, 5, "obj-119", "slider", "float", 0.0, 5, "obj-116", "flonum", "float", 0.001 ]
+ }
+, {
+ "number" : 2,
+ "data" : [ 5, "obj-18", "number", "int", -10, 5, "obj-28", "flonum", "float", 1.0, 5, "obj-41", "slider", "float", 117.0, 6, "obj-44", "rslider", "list", 78, 78, 5, "obj-64", "slider", "float", 0.0, 5, "obj-68", "flonum", "float", 0.001, 6, "obj-78", "rslider", "list", 63, 64, 5, "obj-72", "slider", "float", 0.0, 5, "obj-69", "flonum", "float", 0.001, 6, "obj-103", "rslider", "list", 61, 69, 5, "obj-97", "slider", "float", 126.0, 5, "obj-94", "flonum", "float", 37.735909, 6, "obj-114", "rslider", "list", 32, 58, 5, "obj-108", "slider", "float", 41.0, 5, "obj-105", "flonum", "float", 0.26753, 6, "obj-125", "rslider", "list", 64, 64, 5, "obj-119", "slider", "float", 0.0, 5, "obj-116", "flonum", "float", 0.001 ]
+ }
+, {
+ "number" : 3,
+ "data" : [ 5, "obj-18", "number", "int", -10, 5, "obj-28", "flonum", "float", 1.0, 5, "obj-41", "slider", "float", 117.0, 6, "obj-44", "rslider", "list", 58, 64, 5, "obj-64", "slider", "float", 29.0, 5, "obj-68", "flonum", "float", 0.133458, 6, "obj-78", "rslider", "list", 8, 126, 5, "obj-72", "slider", "float", 124.0, 5, "obj-69", "flonum", "float", 33.584938, 6, "obj-103", "rslider", "list", 61, 69, 5, "obj-97", "slider", "float", 126.0, 5, "obj-94", "flonum", "float", 37.735909, 6, "obj-114", "rslider", "list", 32, 58, 5, "obj-108", "slider", "float", 41.0, 5, "obj-105", "flonum", "float", 0.26753, 6, "obj-125", "rslider", "list", 44, 82, 5, "obj-119", "slider", "float", 117.0, 5, "obj-116", "flonum", "float", 22.336245 ]
+ }
+ ]
+ }
+
+ }
+, {
+ "box" : {
+ "maxclass" : "comment",
+ "text" : "duration and rate of change",
+ "fontsize" : 12.0,
+ "presentation_rect" : [ 735.0, 165.0, 157.0, 20.0 ],
+ "numinlets" : 1,
+ "patching_rect" : [ 735.0, 285.0, 157.0, 20.0 ],
+ "numoutlets" : 0,
+ "presentation" : 1,
+ "id" : "obj-115",
+ "fontname" : "Arial"
+ }
+
+ }
+, {
+ "box" : {
+ "maxclass" : "flonum",
+ "fontsize" : 12.0,
+ "presentation_rect" : [ 1170.0, 289.0, 0.0, 0.0 ],
+ "numinlets" : 1,
+ "patching_rect" : [ 765.0, 510.0, 50.0, 20.0 ],
+ "numoutlets" : 2,
+ "id" : "obj-116",
+ "fontname" : "Arial",
+ "outlettype" : [ "float", "bang" ]
+ }
+
+ }
+, {
+ "box" : {
+ "maxclass" : "newobj",
+ "text" : "scale 0 127 0.001 40 1.06",
+ "fontsize" : 12.0,
+ "presentation_rect" : [ 1170.0, 259.0, 0.0, 0.0 ],
+ "numinlets" : 6,
+ "patching_rect" : [ 765.0, 480.0, 149.0, 20.0 ],
+ "numoutlets" : 1,
+ "id" : "obj-117",
+ "fontname" : "Arial",
+ "outlettype" : [ "" ]
+ }
+
+ }
+, {
+ "box" : {
+ "maxclass" : "message",
+ "text" : "/oo synth set durRate $1",
+ "fontsize" : 12.0,
+ "presentation_rect" : [ 1155.0, 319.0, 0.0, 0.0 ],
+ "numinlets" : 2,
+ "patching_rect" : [ 750.0, 540.0, 141.0, 18.0 ],
+ "numoutlets" : 1,
+ "id" : "obj-118",
+ "fontname" : "Arial",
+ "outlettype" : [ "" ]
+ }
+
+ }
+, {
+ "box" : {
+ "maxclass" : "slider",
+ "presentation_rect" : [ 750.0, 225.0, 140.0, 20.0 ],
+ "numinlets" : 1,
+ "patching_rect" : [ 750.0, 345.0, 140.0, 20.0 ],
+ "numoutlets" : 1,
+ "size" : 150.0,
+ "presentation" : 1,
+ "id" : "obj-119",
+ "outlettype" : [ "" ]
+ }
+
+ }
+, {
+ "box" : {
+ "maxclass" : "message",
+ "text" : "/oo synth set durMin $1",
+ "fontsize" : 12.0,
+ "presentation_rect" : [ 1140.0, 184.0, 0.0, 0.0 ],
+ "numinlets" : 2,
+ "patching_rect" : [ 735.0, 405.0, 135.0, 18.0 ],
+ "numoutlets" : 1,
+ "id" : "obj-120",
+ "fontname" : "Arial",
+ "outlettype" : [ "" ]
+ }
+
+ }
+, {
+ "box" : {
+ "maxclass" : "newobj",
+ "text" : "s toSC",
+ "fontsize" : 12.0,
+ "presentation_rect" : [ 1140.0, 349.0, 0.0, 0.0 ],
+ "numinlets" : 1,
+ "patching_rect" : [ 735.0, 570.0, 47.0, 20.0 ],
+ "numoutlets" : 0,
+ "id" : "obj-121",
+ "fontname" : "Arial"
+ }
+
+ }
+, {
+ "box" : {
+ "maxclass" : "message",
+ "text" : "/oo synth set durMax $1",
+ "fontsize" : 12.0,
+ "presentation_rect" : [ 1155.0, 214.0, 0.0, 0.0 ],
+ "numinlets" : 2,
+ "patching_rect" : [ 750.0, 435.0, 139.0, 18.0 ],
+ "numoutlets" : 1,
+ "id" : "obj-122",
+ "fontname" : "Arial",
+ "outlettype" : [ "" ]
+ }
+
+ }
+, {
+ "box" : {
+ "maxclass" : "newobj",
+ "text" : "/ 127.",
+ "fontsize" : 12.0,
+ "numinlets" : 2,
+ "patching_rect" : [ 735.0, 375.0, 41.0, 20.0 ],
+ "numoutlets" : 1,
+ "id" : "obj-123",
+ "fontname" : "Arial",
+ "outlettype" : [ "float" ]
+ }
+
+ }
+, {
+ "box" : {
+ "maxclass" : "newobj",
+ "text" : "/ 127.",
+ "fontsize" : 12.0,
+ "numinlets" : 2,
+ "patching_rect" : [ 795.0, 375.0, 41.0, 20.0 ],
+ "numoutlets" : 1,
+ "id" : "obj-124",
+ "fontname" : "Arial",
+ "outlettype" : [ "float" ]
+ }
+
+ }
+, {
+ "box" : {
+ "maxclass" : "rslider",
+ "presentation_rect" : [ 735.0, 195.0, 140.0, 21.0 ],
+ "numinlets" : 2,
+ "patching_rect" : [ 735.0, 315.0, 140.0, 21.0 ],
+ "numoutlets" : 2,
+ "presentation" : 1,
+ "id" : "obj-125",
+ "outlettype" : [ "", "" ]
+ }
+
+ }
+, {
+ "box" : {
+ "maxclass" : "comment",
+ "text" : "triggerrate and rate of change",
+ "fontsize" : 12.0,
+ "presentation_rect" : [ 555.0, 165.0, 169.0, 20.0 ],
+ "numinlets" : 1,
+ "patching_rect" : [ 555.0, 285.0, 169.0, 20.0 ],
+ "numoutlets" : 0,
+ "presentation" : 1,
+ "id" : "obj-104",
+ "fontname" : "Arial"
+ }
+
+ }
+, {
+ "box" : {
+ "maxclass" : "flonum",
+ "fontsize" : 12.0,
+ "presentation_rect" : [ 992.0, 283.0, 0.0, 0.0 ],
+ "numinlets" : 1,
+ "patching_rect" : [ 585.0, 510.0, 50.0, 20.0 ],
+ "numoutlets" : 2,
+ "id" : "obj-105",
+ "fontname" : "Arial",
+ "outlettype" : [ "float", "bang" ]
+ }
+
+ }
+, {
+ "box" : {
+ "maxclass" : "newobj",
+ "text" : "scale 0 127 0.001 40 1.06",
+ "fontsize" : 12.0,
+ "presentation_rect" : [ 992.0, 253.0, 0.0, 0.0 ],
+ "numinlets" : 6,
+ "patching_rect" : [ 585.0, 480.0, 149.0, 20.0 ],
+ "numoutlets" : 1,
+ "id" : "obj-106",
+ "fontname" : "Arial",
+ "outlettype" : [ "" ]
+ }
+
+ }
+, {
+ "box" : {
+ "maxclass" : "message",
+ "text" : "/oo synth set trgRate $1",
+ "fontsize" : 12.0,
+ "presentation_rect" : [ 977.0, 313.0, 0.0, 0.0 ],
+ "numinlets" : 2,
+ "patching_rect" : [ 570.0, 540.0, 138.0, 18.0 ],
+ "numoutlets" : 1,
+ "id" : "obj-107",
+ "fontname" : "Arial",
+ "outlettype" : [ "" ]
+ }
+
+ }
+, {
+ "box" : {
+ "maxclass" : "slider",
+ "presentation_rect" : [ 570.0, 225.0, 140.0, 20.0 ],
+ "numinlets" : 1,
+ "patching_rect" : [ 570.0, 345.0, 140.0, 20.0 ],
+ "numoutlets" : 1,
+ "size" : 150.0,
+ "presentation" : 1,
+ "id" : "obj-108",
+ "outlettype" : [ "" ]
+ }
+
+ }
+, {
+ "box" : {
+ "maxclass" : "message",
+ "text" : "/oo synth set trgMin $1",
+ "fontsize" : 12.0,
+ "presentation_rect" : [ 962.0, 178.0, 0.0, 0.0 ],
+ "numinlets" : 2,
+ "patching_rect" : [ 555.0, 405.0, 132.0, 18.0 ],
+ "numoutlets" : 1,
+ "id" : "obj-109",
+ "fontname" : "Arial",
+ "outlettype" : [ "" ]
+ }
+
+ }
+, {
+ "box" : {
+ "maxclass" : "newobj",
+ "text" : "s toSC",
+ "fontsize" : 12.0,
+ "presentation_rect" : [ 962.0, 343.0, 0.0, 0.0 ],
+ "numinlets" : 1,
+ "patching_rect" : [ 555.0, 570.0, 47.0, 20.0 ],
+ "numoutlets" : 0,
+ "id" : "obj-110",
+ "fontname" : "Arial"
+ }
+
+ }
+, {
+ "box" : {
+ "maxclass" : "message",
+ "text" : "/oo synth set trgMax $1",
+ "fontsize" : 12.0,
+ "presentation_rect" : [ 977.0, 208.0, 0.0, 0.0 ],
+ "numinlets" : 2,
+ "patching_rect" : [ 570.0, 435.0, 135.0, 18.0 ],
+ "numoutlets" : 1,
+ "id" : "obj-111",
+ "fontname" : "Arial",
+ "outlettype" : [ "" ]
+ }
+
+ }
+, {
+ "box" : {
+ "maxclass" : "newobj",
+ "text" : "/ 255.",
+ "fontsize" : 12.0,
+ "numinlets" : 2,
+ "patching_rect" : [ 555.0, 375.0, 41.0, 20.0 ],
+ "numoutlets" : 1,
+ "id" : "obj-112",
+ "fontname" : "Arial",
+ "outlettype" : [ "float" ]
+ }
+
+ }
+, {
+ "box" : {
+ "maxclass" : "newobj",
+ "text" : "/ 255.",
+ "fontsize" : 12.0,
+ "numinlets" : 2,
+ "patching_rect" : [ 615.0, 375.0, 41.0, 20.0 ],
+ "numoutlets" : 1,
+ "id" : "obj-113",
+ "fontname" : "Arial",
+ "outlettype" : [ "float" ]
+ }
+
+ }
+, {
+ "box" : {
+ "maxclass" : "rslider",
+ "presentation_rect" : [ 555.0, 195.0, 140.0, 21.0 ],
+ "numinlets" : 2,
+ "patching_rect" : [ 555.0, 315.0, 140.0, 21.0 ],
+ "numoutlets" : 2,
+ "presentation" : 1,
+ "id" : "obj-114",
+ "outlettype" : [ "", "" ]
+ }
+
+ }
+, {
+ "box" : {
+ "maxclass" : "comment",
+ "text" : "playbackrate and rate of change",
+ "fontsize" : 12.0,
+ "presentation_rect" : [ 375.0, 165.0, 182.0, 20.0 ],
+ "numinlets" : 1,
+ "patching_rect" : [ 375.0, 285.0, 182.0, 20.0 ],
+ "numoutlets" : 0,
+ "presentation" : 1,
+ "id" : "obj-93",
+ "fontname" : "Arial"
+ }
+
+ }
+, {
+ "box" : {
+ "maxclass" : "flonum",
+ "fontsize" : 12.0,
+ "presentation_rect" : [ 812.0, 287.0, 0.0, 0.0 ],
+ "numinlets" : 1,
+ "patching_rect" : [ 405.0, 510.0, 50.0, 20.0 ],
+ "numoutlets" : 2,
+ "id" : "obj-94",
+ "fontname" : "Arial",
+ "outlettype" : [ "float", "bang" ]
+ }
+
+ }
+, {
+ "box" : {
+ "maxclass" : "newobj",
+ "text" : "scale 0 127 0.001 40 1.06",
+ "fontsize" : 12.0,
+ "presentation_rect" : [ 812.0, 257.0, 0.0, 0.0 ],
+ "numinlets" : 6,
+ "patching_rect" : [ 405.0, 480.0, 149.0, 20.0 ],
+ "numoutlets" : 1,
+ "id" : "obj-95",
+ "fontname" : "Arial",
+ "outlettype" : [ "" ]
+ }
+
+ }
+, {
+ "box" : {
+ "maxclass" : "message",
+ "text" : "/oo synth set pchRate $1",
+ "fontsize" : 12.0,
+ "presentation_rect" : [ 797.0, 317.0, 0.0, 0.0 ],
+ "numinlets" : 2,
+ "patching_rect" : [ 390.0, 540.0, 143.0, 18.0 ],
+ "numoutlets" : 1,
+ "id" : "obj-96",
+ "fontname" : "Arial",
+ "outlettype" : [ "" ]
+ }
+
+ }
+, {
+ "box" : {
+ "maxclass" : "slider",
+ "presentation_rect" : [ 390.0, 225.0, 140.0, 20.0 ],
+ "numinlets" : 1,
+ "patching_rect" : [ 390.0, 345.0, 140.0, 20.0 ],
+ "numoutlets" : 1,
+ "size" : 150.0,
+ "presentation" : 1,
+ "id" : "obj-97",
+ "outlettype" : [ "" ]
+ }
+
+ }
+, {
+ "box" : {
+ "maxclass" : "message",
+ "text" : "/oo synth set pchMin $1",
+ "fontsize" : 12.0,
+ "presentation_rect" : [ 782.0, 182.0, 0.0, 0.0 ],
+ "numinlets" : 2,
+ "patching_rect" : [ 375.0, 405.0, 137.0, 18.0 ],
+ "numoutlets" : 1,
+ "id" : "obj-98",
+ "fontname" : "Arial",
+ "outlettype" : [ "" ]
+ }
+
+ }
+, {
+ "box" : {
+ "maxclass" : "newobj",
+ "text" : "s toSC",
+ "fontsize" : 12.0,
+ "presentation_rect" : [ 782.0, 347.0, 0.0, 0.0 ],
+ "numinlets" : 1,
+ "patching_rect" : [ 375.0, 570.0, 47.0, 20.0 ],
+ "numoutlets" : 0,
+ "id" : "obj-99",
+ "fontname" : "Arial"
+ }
+
+ }
+, {
+ "box" : {
+ "maxclass" : "message",
+ "text" : "/oo synth set pchMax $1",
+ "fontsize" : 12.0,
+ "presentation_rect" : [ 797.0, 212.0, 0.0, 0.0 ],
+ "numinlets" : 2,
+ "patching_rect" : [ 390.0, 435.0, 141.0, 18.0 ],
+ "numoutlets" : 1,
+ "id" : "obj-100",
+ "fontname" : "Arial",
+ "outlettype" : [ "" ]
+ }
+
+ }
+, {
+ "box" : {
+ "maxclass" : "newobj",
+ "text" : "/ 32.",
+ "fontsize" : 12.0,
+ "numinlets" : 2,
+ "patching_rect" : [ 375.0, 375.0, 34.0, 20.0 ],
+ "numoutlets" : 1,
+ "id" : "obj-101",
+ "fontname" : "Arial",
+ "outlettype" : [ "float" ]
+ }
+
+ }
+, {
+ "box" : {
+ "maxclass" : "newobj",
+ "text" : "/ 32.",
+ "fontsize" : 12.0,
+ "numinlets" : 2,
+ "patching_rect" : [ 435.0, 375.0, 34.0, 20.0 ],
+ "numoutlets" : 1,
+ "id" : "obj-102",
+ "fontname" : "Arial",
+ "outlettype" : [ "float" ]
+ }
+
+ }
+, {
+ "box" : {
+ "maxclass" : "rslider",
+ "presentation_rect" : [ 375.0, 195.0, 140.0, 21.0 ],
+ "numinlets" : 2,
+ "patching_rect" : [ 375.0, 315.0, 140.0, 21.0 ],
+ "numoutlets" : 2,
+ "presentation" : 1,
+ "id" : "obj-103",
+ "outlettype" : [ "", "" ]
+ }
+
+ }
+, {
+ "box" : {
+ "maxclass" : "comment",
+ "text" : "panning and rate of change",
+ "fontsize" : 12.0,
+ "presentation_rect" : [ 195.0, 165.0, 157.0, 20.0 ],
+ "numinlets" : 1,
+ "patching_rect" : [ 195.0, 285.0, 157.0, 20.0 ],
+ "numoutlets" : 0,
+ "presentation" : 1,
+ "id" : "obj-81",
+ "fontname" : "Arial"
+ }
+
+ }
+, {
+ "box" : {
+ "maxclass" : "comment",
+ "text" : "position and rate of change",
+ "fontsize" : 12.0,
+ "presentation_rect" : [ 15.0, 165.0, 155.0, 20.0 ],
+ "numinlets" : 1,
+ "patching_rect" : [ 15.0, 285.0, 155.0, 20.0 ],
+ "numoutlets" : 0,
+ "presentation" : 1,
+ "id" : "obj-80",
+ "fontname" : "Arial"
+ }
+
+ }
+, {
+ "box" : {
+ "maxclass" : "flonum",
+ "fontsize" : 12.0,
+ "presentation_rect" : [ 629.0, 283.0, 0.0, 0.0 ],
+ "numinlets" : 1,
+ "patching_rect" : [ 225.0, 510.0, 50.0, 20.0 ],
+ "numoutlets" : 2,
+ "id" : "obj-69",
+ "fontname" : "Arial",
+ "outlettype" : [ "float", "bang" ]
+ }
+
+ }
+, {
+ "box" : {
+ "maxclass" : "newobj",
+ "text" : "scale 0 127 0.001 40 1.06",
+ "fontsize" : 12.0,
+ "presentation_rect" : [ 629.0, 253.0, 0.0, 0.0 ],
+ "numinlets" : 6,
+ "patching_rect" : [ 225.0, 480.0, 149.0, 20.0 ],
+ "numoutlets" : 1,
+ "id" : "obj-70",
+ "fontname" : "Arial",
+ "outlettype" : [ "" ]
+ }
+
+ }
+, {
+ "box" : {
+ "maxclass" : "message",
+ "text" : "/oo synth set panRate $1",
+ "fontsize" : 12.0,
+ "presentation_rect" : [ 614.0, 313.0, 0.0, 0.0 ],
+ "numinlets" : 2,
+ "patching_rect" : [ 210.0, 540.0, 144.0, 18.0 ],
+ "numoutlets" : 1,
+ "id" : "obj-71",
+ "fontname" : "Arial",
+ "outlettype" : [ "" ]
+ }
+
+ }
+, {
+ "box" : {
+ "maxclass" : "slider",
+ "presentation_rect" : [ 210.0, 225.0, 140.0, 20.0 ],
+ "numinlets" : 1,
+ "patching_rect" : [ 210.0, 345.0, 140.0, 20.0 ],
+ "numoutlets" : 1,
+ "size" : 150.0,
+ "presentation" : 1,
+ "id" : "obj-72",
+ "outlettype" : [ "" ]
+ }
+
+ }
+, {
+ "box" : {
+ "maxclass" : "message",
+ "text" : "/oo synth set panMin $1",
+ "fontsize" : 12.0,
+ "presentation_rect" : [ 599.0, 178.0, 0.0, 0.0 ],
+ "numinlets" : 2,
+ "patching_rect" : [ 195.0, 405.0, 138.0, 18.0 ],
+ "numoutlets" : 1,
+ "id" : "obj-73",
+ "fontname" : "Arial",
+ "outlettype" : [ "" ]
+ }
+
+ }
+, {
+ "box" : {
+ "maxclass" : "newobj",
+ "text" : "s toSC",
+ "fontsize" : 12.0,
+ "presentation_rect" : [ 599.0, 343.0, 0.0, 0.0 ],
+ "numinlets" : 1,
+ "patching_rect" : [ 195.0, 570.0, 47.0, 20.0 ],
+ "numoutlets" : 0,
+ "id" : "obj-74",
+ "fontname" : "Arial"
+ }
+
+ }
+, {
+ "box" : {
+ "maxclass" : "message",
+ "text" : "/oo synth set panMax $1",
+ "fontsize" : 12.0,
+ "presentation_rect" : [ 614.0, 208.0, 0.0, 0.0 ],
+ "numinlets" : 2,
+ "patching_rect" : [ 210.0, 435.0, 141.0, 18.0 ],
+ "numoutlets" : 1,
+ "id" : "obj-75",
+ "fontname" : "Arial",
+ "outlettype" : [ "" ]
+ }
+
+ }
+, {
+ "box" : {
+ "maxclass" : "newobj",
+ "text" : "/ 127.",
+ "fontsize" : 12.0,
+ "presentation_rect" : [ 599.0, 148.0, 0.0, 0.0 ],
+ "numinlets" : 2,
+ "patching_rect" : [ 195.0, 375.0, 41.0, 20.0 ],
+ "numoutlets" : 1,
+ "id" : "obj-76",
+ "fontname" : "Arial",
+ "outlettype" : [ "float" ]
+ }
+
+ }
+, {
+ "box" : {
+ "maxclass" : "newobj",
+ "text" : "/ 127.",
+ "fontsize" : 12.0,
+ "presentation_rect" : [ 659.0, 148.0, 0.0, 0.0 ],
+ "numinlets" : 2,
+ "patching_rect" : [ 255.0, 375.0, 41.0, 20.0 ],
+ "numoutlets" : 1,
+ "id" : "obj-77",
+ "fontname" : "Arial",
+ "outlettype" : [ "float" ]
+ }
+
+ }
+, {
+ "box" : {
+ "maxclass" : "rslider",
+ "presentation_rect" : [ 195.0, 195.0, 140.0, 21.0 ],
+ "numinlets" : 2,
+ "patching_rect" : [ 195.0, 315.0, 140.0, 21.0 ],
+ "numoutlets" : 2,
+ "presentation" : 1,
+ "id" : "obj-78",
+ "outlettype" : [ "", "" ]
+ }
+
+ }
+, {
+ "box" : {
+ "maxclass" : "flonum",
+ "fontsize" : 12.0,
+ "numinlets" : 1,
+ "patching_rect" : [ 45.0, 510.0, 50.0, 20.0 ],
+ "numoutlets" : 2,
+ "id" : "obj-68",
+ "fontname" : "Arial",
+ "outlettype" : [ "float", "bang" ]
+ }
+
+ }
+, {
+ "box" : {
+ "maxclass" : "newobj",
+ "text" : "scale 0 127 0.001 40 1.06",
+ "fontsize" : 12.0,
+ "numinlets" : 6,
+ "patching_rect" : [ 45.0, 480.0, 149.0, 20.0 ],
+ "numoutlets" : 1,
+ "id" : "obj-66",
+ "fontname" : "Arial",
+ "outlettype" : [ "" ]
+ }
+
+ }
+, {
+ "box" : {
+ "maxclass" : "message",
+ "text" : "/oo synth set posRate $1",
+ "fontsize" : 12.0,
+ "presentation_rect" : [ 435.0, 251.0, 0.0, 0.0 ],
+ "numinlets" : 2,
+ "patching_rect" : [ 30.0, 540.0, 143.0, 18.0 ],
+ "numoutlets" : 1,
+ "id" : "obj-65",
+ "fontname" : "Arial",
+ "outlettype" : [ "" ]
+ }
+
+ }
+, {
+ "box" : {
+ "maxclass" : "slider",
+ "presentation_rect" : [ 30.0, 225.0, 140.0, 20.0 ],
+ "numinlets" : 1,
+ "patching_rect" : [ 30.0, 345.0, 140.0, 20.0 ],
+ "numoutlets" : 1,
+ "size" : 150.0,
+ "presentation" : 1,
+ "id" : "obj-64",
+ "outlettype" : [ "" ]
+ }
+
+ }
+, {
+ "box" : {
+ "maxclass" : "message",
+ "text" : "/oo synth set posMin $1",
+ "fontsize" : 12.0,
+ "presentation_rect" : [ 422.0, 190.0, 0.0, 0.0 ],
+ "numinlets" : 2,
+ "patching_rect" : [ 15.0, 405.0, 137.0, 18.0 ],
+ "numoutlets" : 1,
+ "id" : "obj-59",
+ "fontname" : "Arial",
+ "outlettype" : [ "" ]
+ }
+
+ }
+, {
+ "box" : {
+ "maxclass" : "newobj",
+ "text" : "s toSC",
+ "fontsize" : 12.0,
+ "presentation_rect" : [ 421.0, 243.0, 0.0, 0.0 ],
+ "numinlets" : 1,
+ "patching_rect" : [ 15.0, 570.0, 47.0, 20.0 ],
+ "numoutlets" : 0,
+ "id" : "obj-58",
+ "fontname" : "Arial"
+ }
+
+ }
+, {
+ "box" : {
+ "maxclass" : "message",
+ "text" : "/oo synth set posMax $1",
+ "fontsize" : 12.0,
+ "numinlets" : 2,
+ "patching_rect" : [ 30.0, 435.0, 141.0, 18.0 ],
+ "numoutlets" : 1,
+ "id" : "obj-57",
+ "fontname" : "Arial",
+ "outlettype" : [ "" ]
+ }
+
+ }
+, {
+ "box" : {
+ "maxclass" : "newobj",
+ "text" : "/ 127.",
+ "fontsize" : 12.0,
+ "presentation_rect" : [ 419.0, 134.0, 0.0, 0.0 ],
+ "numinlets" : 2,
+ "patching_rect" : [ 15.0, 375.0, 41.0, 20.0 ],
+ "numoutlets" : 1,
+ "id" : "obj-52",
+ "fontname" : "Arial",
+ "outlettype" : [ "float" ]
+ }
+
+ }
+, {
+ "box" : {
+ "maxclass" : "newobj",
+ "text" : "/ 127.",
+ "fontsize" : 12.0,
+ "numinlets" : 2,
+ "patching_rect" : [ 75.0, 375.0, 41.0, 20.0 ],
+ "numoutlets" : 1,
+ "id" : "obj-51",
+ "fontname" : "Arial",
+ "outlettype" : [ "float" ]
+ }
+
+ }
+, {
+ "box" : {
+ "maxclass" : "rslider",
+ "presentation_rect" : [ 15.0, 195.0, 140.0, 21.0 ],
+ "numinlets" : 2,
+ "patching_rect" : [ 15.0, 315.0, 140.0, 21.0 ],
+ "numoutlets" : 2,
+ "presentation" : 1,
+ "id" : "obj-44",
+ "outlettype" : [ "", "" ]
+ }
+
+ }
+, {
+ "box" : {
+ "maxclass" : "comment",
+ "text" : "main volume",
+ "fontsize" : 12.0,
+ "presentation_rect" : [ 300.0, 30.0, 79.0, 20.0 ],
+ "numinlets" : 1,
+ "patching_rect" : [ 390.0, 30.0, 79.0, 20.0 ],
+ "numoutlets" : 0,
+ "presentation" : 1,
+ "id" : "obj-42",
+ "fontname" : "Arial"
+ }
+
+ }
+, {
+ "box" : {
+ "maxclass" : "slider",
+ "presentation_rect" : [ 270.0, 15.0, 20.0, 140.0 ],
+ "numinlets" : 1,
+ "patching_rect" : [ 360.0, 15.0, 20.0, 140.0 ],
+ "numoutlets" : 1,
+ "size" : 150.0,
+ "presentation" : 1,
+ "id" : "obj-41",
+ "outlettype" : [ "" ]
+ }
+
+ }
+, {
+ "box" : {
+ "maxclass" : "comment",
+ "text" : "release time in seconds\nfor fading out old synth",
+ "linecount" : 2,
+ "presentation_linecount" : 2,
+ "fontsize" : 12.0,
+ "presentation_rect" : [ 120.0, 45.0, 137.0, 34.0 ],
+ "numinlets" : 1,
+ "patching_rect" : [ 195.0, 165.0, 137.0, 34.0 ],
+ "numoutlets" : 0,
+ "presentation" : 1,
+ "id" : "obj-40",
+ "fontname" : "Arial"
+ }
+
+ }
+, {
+ "box" : {
+ "maxclass" : "newobj",
+ "text" : "loadmess 1.",
+ "fontsize" : 12.0,
+ "numinlets" : 1,
+ "patching_rect" : [ 135.0, 195.0, 75.0, 20.0 ],
+ "numoutlets" : 1,
+ "id" : "obj-38",
+ "fontname" : "Arial",
+ "outlettype" : [ "" ],
+ "hidden" : 1
+ }
+
+ }
+, {
+ "box" : {
+ "maxclass" : "newobj",
+ "text" : "pack s 1.",
+ "fontsize" : 12.0,
+ "numinlets" : 2,
+ "patching_rect" : [ 60.0, 195.0, 59.0, 20.0 ],
+ "numoutlets" : 1,
+ "id" : "obj-32",
+ "fontname" : "Arial",
+ "outlettype" : [ "" ]
+ }
+
+ }
+, {
+ "box" : {
+ "maxclass" : "flonum",
+ "fontsize" : 12.0,
+ "presentation_rect" : [ 60.0, 45.0, 50.0, 20.0 ],
+ "numinlets" : 1,
+ "patching_rect" : [ 135.0, 165.0, 50.0, 20.0 ],
+ "numoutlets" : 2,
+ "presentation" : 1,
+ "id" : "obj-28",
+ "fontname" : "Arial",
+ "outlettype" : [ "float", "bang" ],
+ "minimum" : 0.0
+ }
+
+ }
+, {
+ "box" : {
+ "maxclass" : "comment",
+ "text" : "db",
+ "fontsize" : 12.0,
+ "numinlets" : 1,
+ "patching_rect" : [ 420.0, 195.0, 24.0, 20.0 ],
+ "numoutlets" : 0,
+ "id" : "obj-23",
+ "fontname" : "Arial"
+ }
+
+ }
+, {
+ "box" : {
+ "maxclass" : "newobj",
+ "text" : "s toSC",
+ "fontsize" : 12.0,
+ "presentation_rect" : [ 672.0, 282.0, 0.0, 0.0 ],
+ "numinlets" : 1,
+ "patching_rect" : [ 60.0, 255.0, 47.0, 20.0 ],
+ "numoutlets" : 0,
+ "id" : "obj-21",
+ "fontname" : "Arial"
+ }
+
+ }
+, {
+ "box" : {
+ "maxclass" : "message",
+ "text" : "/oo func value $1 $2",
+ "fontsize" : 12.0,
+ "presentation_rect" : [ 673.0, 259.0, 0.0, 0.0 ],
+ "numinlets" : 2,
+ "patching_rect" : [ 60.0, 225.0, 119.0, 18.0 ],
+ "numoutlets" : 1,
+ "id" : "obj-17",
+ "fontname" : "Arial",
+ "outlettype" : [ "" ]
+ }
+
+ }
+, {
+ "box" : {
+ "maxclass" : "newobj",
+ "text" : "tosymbol",
+ "fontsize" : 12.0,
+ "presentation_rect" : [ 673.0, 229.0, 0.0, 0.0 ],
+ "numinlets" : 1,
+ "patching_rect" : [ 60.0, 165.0, 59.0, 20.0 ],
+ "numoutlets" : 1,
+ "id" : "obj-19",
+ "fontname" : "Arial",
+ "outlettype" : [ "" ]
+ }
+
+ }
+, {
+ "box" : {
+ "maxclass" : "message",
+ "text" : "/Applications/SuperCollider344/sounds/a11wlk01-44_1.aiff",
+ "linecount" : 3,
+ "fontsize" : 12.0,
+ "numinlets" : 2,
+ "patching_rect" : [ 75.0, 105.0, 163.0, 46.0 ],
+ "numoutlets" : 1,
+ "id" : "obj-16",
+ "fontname" : "Arial",
+ "outlettype" : [ "" ]
+ }
+
+ }
+, {
+ "box" : {
+ "maxclass" : "newobj",
+ "text" : "conformpath @pathtype boot",
+ "fontsize" : 12.0,
+ "numinlets" : 1,
+ "patching_rect" : [ 60.0, 75.0, 165.0, 20.0 ],
+ "numoutlets" : 2,
+ "id" : "obj-14",
+ "fontname" : "Arial",
+ "outlettype" : [ "", "int" ]
+ }
+
+ }
+, {
+ "box" : {
+ "maxclass" : "button",
+ "presentation_rect" : [ 60.0, 15.0, 20.0, 20.0 ],
+ "numinlets" : 1,
+ "patching_rect" : [ 60.0, 15.0, 20.0, 20.0 ],
+ "numoutlets" : 1,
+ "presentation" : 1,
+ "id" : "obj-13",
+ "outlettype" : [ "bang" ]
+ }
+
+ }
+, {
+ "box" : {
+ "maxclass" : "newobj",
+ "text" : "opendialog sound",
+ "fontsize" : 12.0,
+ "numinlets" : 1,
+ "patching_rect" : [ 60.0, 45.0, 105.0, 20.0 ],
+ "numoutlets" : 2,
+ "id" : "obj-4",
+ "fontname" : "Arial",
+ "outlettype" : [ "", "bang" ]
+ }
+
+ }
+, {
+ "box" : {
+ "maxclass" : "comment",
+ "text" : "load a soundfile",
+ "fontsize" : 12.0,
+ "presentation_rect" : [ 75.0, 15.0, 95.0, 20.0 ],
+ "numinlets" : 1,
+ "patching_rect" : [ 75.0, 15.0, 95.0, 20.0 ],
+ "numoutlets" : 0,
+ "presentation" : 1,
+ "id" : "obj-2",
+ "fontname" : "Arial"
+ }
+
+ }
+, {
+ "box" : {
+ "maxclass" : "newobj",
+ "text" : "r toSC",
+ "fontsize" : 12.0,
+ "numinlets" : 0,
+ "patching_rect" : [ 555.0, 135.0, 45.0, 20.0 ],
+ "numoutlets" : 1,
+ "id" : "obj-37",
+ "fontname" : "Arial",
+ "outlettype" : [ "" ]
+ }
+
+ }
+, {
+ "box" : {
+ "maxclass" : "newobj",
+ "text" : "s toSC",
+ "fontsize" : 12.0,
+ "numinlets" : 1,
+ "patching_rect" : [ 360.0, 255.0, 47.0, 20.0 ],
+ "numoutlets" : 0,
+ "id" : "obj-36",
+ "fontname" : "Arial"
+ }
+
+ }
+, {
+ "box" : {
+ "maxclass" : "newobj",
+ "text" : "loadmess 127",
+ "fontsize" : 12.0,
+ "numinlets" : 1,
+ "patching_rect" : [ 390.0, 60.0, 85.0, 20.0 ],
+ "numoutlets" : 1,
+ "id" : "obj-35",
+ "fontname" : "Arial",
+ "outlettype" : [ "" ],
+ "hidden" : 1
+ }
+
+ }
+, {
+ "box" : {
+ "maxclass" : "newobj",
+ "text" : "- 127",
+ "fontsize" : 12.0,
+ "numinlets" : 2,
+ "patching_rect" : [ 360.0, 165.0, 38.0, 20.0 ],
+ "numoutlets" : 1,
+ "id" : "obj-33",
+ "fontname" : "Arial",
+ "outlettype" : [ "int" ]
+ }
+
+ }
+, {
+ "box" : {
+ "maxclass" : "number",
+ "fontsize" : 12.0,
+ "numinlets" : 1,
+ "patching_rect" : [ 360.0, 195.0, 50.0, 20.0 ],
+ "numoutlets" : 2,
+ "id" : "obj-18",
+ "fontname" : "Arial",
+ "outlettype" : [ "int", "bang" ]
+ }
+
+ }
+, {
+ "box" : {
+ "maxclass" : "message",
+ "text" : "/oo synth set vol $1",
+ "fontsize" : 12.0,
+ "numinlets" : 2,
+ "patching_rect" : [ 360.0, 225.0, 114.0, 18.0 ],
+ "numoutlets" : 1,
+ "id" : "obj-12",
+ "fontname" : "Arial",
+ "outlettype" : [ "" ]
+ }
+
+ }
+, {
+ "box" : {
+ "maxclass" : "newobj",
+ "text" : "udpsend 127.0.0.1 57120",
+ "fontsize" : 12.0,
+ "numinlets" : 1,
+ "patching_rect" : [ 555.0, 165.0, 147.0, 20.0 ],
+ "numoutlets" : 0,
+ "id" : "obj-3",
+ "fontname" : "Arial"
+ }
+
+ }
+ ],
+ "lines" : [ {
+ "patchline" : {
+ "source" : [ "obj-124", 0 ],
+ "destination" : [ "obj-122", 0 ],
+ "hidden" : 0,
+ "midpoints" : [ ]
+ }
+
+ }
+, {
+ "patchline" : {
+ "source" : [ "obj-125", 1 ],
+ "destination" : [ "obj-124", 0 ],
+ "hidden" : 0,
+ "midpoints" : [ ]
+ }
+
+ }
+, {
+ "patchline" : {
+ "source" : [ "obj-125", 0 ],
+ "destination" : [ "obj-123", 0 ],
+ "hidden" : 0,
+ "midpoints" : [ ]
+ }
+
+ }
+, {
+ "patchline" : {
+ "source" : [ "obj-123", 0 ],
+ "destination" : [ "obj-120", 0 ],
+ "hidden" : 0,
+ "midpoints" : [ ]
+ }
+
+ }
+, {
+ "patchline" : {
+ "source" : [ "obj-116", 0 ],
+ "destination" : [ "obj-118", 0 ],
+ "hidden" : 0,
+ "midpoints" : [ ]
+ }
+
+ }
+, {
+ "patchline" : {
+ "source" : [ "obj-117", 0 ],
+ "destination" : [ "obj-116", 0 ],
+ "hidden" : 0,
+ "midpoints" : [ ]
+ }
+
+ }
+, {
+ "patchline" : {
+ "source" : [ "obj-119", 0 ],
+ "destination" : [ "obj-117", 0 ],
+ "hidden" : 0,
+ "midpoints" : [ ]
+ }
+
+ }
+, {
+ "patchline" : {
+ "source" : [ "obj-118", 0 ],
+ "destination" : [ "obj-121", 0 ],
+ "hidden" : 0,
+ "midpoints" : [ ]
+ }
+
+ }
+, {
+ "patchline" : {
+ "source" : [ "obj-120", 0 ],
+ "destination" : [ "obj-121", 0 ],
+ "hidden" : 0,
+ "midpoints" : [ ]
+ }
+
+ }
+, {
+ "patchline" : {
+ "source" : [ "obj-122", 0 ],
+ "destination" : [ "obj-121", 0 ],
+ "hidden" : 0,
+ "midpoints" : [ ]
+ }
+
+ }
+, {
+ "patchline" : {
+ "source" : [ "obj-113", 0 ],
+ "destination" : [ "obj-111", 0 ],
+ "hidden" : 0,
+ "midpoints" : [ ]
+ }
+
+ }
+, {
+ "patchline" : {
+ "source" : [ "obj-114", 1 ],
+ "destination" : [ "obj-113", 0 ],
+ "hidden" : 0,
+ "midpoints" : [ ]
+ }
+
+ }
+, {
+ "patchline" : {
+ "source" : [ "obj-114", 0 ],
+ "destination" : [ "obj-112", 0 ],
+ "hidden" : 0,
+ "midpoints" : [ ]
+ }
+
+ }
+, {
+ "patchline" : {
+ "source" : [ "obj-112", 0 ],
+ "destination" : [ "obj-109", 0 ],
+ "hidden" : 0,
+ "midpoints" : [ ]
+ }
+
+ }
+, {
+ "patchline" : {
+ "source" : [ "obj-111", 0 ],
+ "destination" : [ "obj-110", 0 ],
+ "hidden" : 0,
+ "midpoints" : [ ]
+ }
+
+ }
+, {
+ "patchline" : {
+ "source" : [ "obj-109", 0 ],
+ "destination" : [ "obj-110", 0 ],
+ "hidden" : 0,
+ "midpoints" : [ ]
+ }
+
+ }
+, {
+ "patchline" : {
+ "source" : [ "obj-107", 0 ],
+ "destination" : [ "obj-110", 0 ],
+ "hidden" : 0,
+ "midpoints" : [ ]
+ }
+
+ }
+, {
+ "patchline" : {
+ "source" : [ "obj-108", 0 ],
+ "destination" : [ "obj-106", 0 ],
+ "hidden" : 0,
+ "midpoints" : [ ]
+ }
+
+ }
+, {
+ "patchline" : {
+ "source" : [ "obj-106", 0 ],
+ "destination" : [ "obj-105", 0 ],
+ "hidden" : 0,
+ "midpoints" : [ ]
+ }
+
+ }
+, {
+ "patchline" : {
+ "source" : [ "obj-105", 0 ],
+ "destination" : [ "obj-107", 0 ],
+ "hidden" : 0,
+ "midpoints" : [ ]
+ }
+
+ }
+, {
+ "patchline" : {
+ "source" : [ "obj-103", 0 ],
+ "destination" : [ "obj-101", 0 ],
+ "hidden" : 0,
+ "midpoints" : [ ]
+ }
+
+ }
+, {
+ "patchline" : {
+ "source" : [ "obj-101", 0 ],
+ "destination" : [ "obj-98", 0 ],
+ "hidden" : 0,
+ "midpoints" : [ ]
+ }
+
+ }
+, {
+ "patchline" : {
+ "source" : [ "obj-102", 0 ],
+ "destination" : [ "obj-100", 0 ],
+ "hidden" : 0,
+ "midpoints" : [ ]
+ }
+
+ }
+, {
+ "patchline" : {
+ "source" : [ "obj-103", 1 ],
+ "destination" : [ "obj-102", 0 ],
+ "hidden" : 0,
+ "midpoints" : [ ]
+ }
+
+ }
+, {
+ "patchline" : {
+ "source" : [ "obj-94", 0 ],
+ "destination" : [ "obj-96", 0 ],
+ "hidden" : 0,
+ "midpoints" : [ ]
+ }
+
+ }
+, {
+ "patchline" : {
+ "source" : [ "obj-95", 0 ],
+ "destination" : [ "obj-94", 0 ],
+ "hidden" : 0,
+ "midpoints" : [ ]
+ }
+
+ }
+, {
+ "patchline" : {
+ "source" : [ "obj-97", 0 ],
+ "destination" : [ "obj-95", 0 ],
+ "hidden" : 0,
+ "midpoints" : [ ]
+ }
+
+ }
+, {
+ "patchline" : {
+ "source" : [ "obj-96", 0 ],
+ "destination" : [ "obj-99", 0 ],
+ "hidden" : 0,
+ "midpoints" : [ ]
+ }
+
+ }
+, {
+ "patchline" : {
+ "source" : [ "obj-98", 0 ],
+ "destination" : [ "obj-99", 0 ],
+ "hidden" : 0,
+ "midpoints" : [ ]
+ }
+
+ }
+, {
+ "patchline" : {
+ "source" : [ "obj-100", 0 ],
+ "destination" : [ "obj-99", 0 ],
+ "hidden" : 0,
+ "midpoints" : [ ]
+ }
+
+ }
+, {
+ "patchline" : {
+ "source" : [ "obj-78", 1 ],
+ "destination" : [ "obj-77", 0 ],
+ "hidden" : 0,
+ "midpoints" : [ ]
+ }
+
+ }
+, {
+ "patchline" : {
+ "source" : [ "obj-78", 0 ],
+ "destination" : [ "obj-76", 0 ],
+ "hidden" : 0,
+ "midpoints" : [ ]
+ }
+
+ }
+, {
+ "patchline" : {
+ "source" : [ "obj-77", 0 ],
+ "destination" : [ "obj-75", 0 ],
+ "hidden" : 0,
+ "midpoints" : [ ]
+ }
+
+ }
+, {
+ "patchline" : {
+ "source" : [ "obj-75", 0 ],
+ "destination" : [ "obj-74", 0 ],
+ "hidden" : 0,
+ "midpoints" : [ ]
+ }
+
+ }
+, {
+ "patchline" : {
+ "source" : [ "obj-76", 0 ],
+ "destination" : [ "obj-73", 0 ],
+ "hidden" : 0,
+ "midpoints" : [ ]
+ }
+
+ }
+, {
+ "patchline" : {
+ "source" : [ "obj-73", 0 ],
+ "destination" : [ "obj-74", 0 ],
+ "hidden" : 0,
+ "midpoints" : [ ]
+ }
+
+ }
+, {
+ "patchline" : {
+ "source" : [ "obj-71", 0 ],
+ "destination" : [ "obj-74", 0 ],
+ "hidden" : 0,
+ "midpoints" : [ ]
+ }
+
+ }
+, {
+ "patchline" : {
+ "source" : [ "obj-72", 0 ],
+ "destination" : [ "obj-70", 0 ],
+ "hidden" : 0,
+ "midpoints" : [ ]
+ }
+
+ }
+, {
+ "patchline" : {
+ "source" : [ "obj-70", 0 ],
+ "destination" : [ "obj-69", 0 ],
+ "hidden" : 0,
+ "midpoints" : [ ]
+ }
+
+ }
+, {
+ "patchline" : {
+ "source" : [ "obj-69", 0 ],
+ "destination" : [ "obj-71", 0 ],
+ "hidden" : 0,
+ "midpoints" : [ ]
+ }
+
+ }
+, {
+ "patchline" : {
+ "source" : [ "obj-68", 0 ],
+ "destination" : [ "obj-65", 0 ],
+ "hidden" : 0,
+ "midpoints" : [ ]
+ }
+
+ }
+, {
+ "patchline" : {
+ "source" : [ "obj-66", 0 ],
+ "destination" : [ "obj-68", 0 ],
+ "hidden" : 0,
+ "midpoints" : [ ]
+ }
+
+ }
+, {
+ "patchline" : {
+ "source" : [ "obj-64", 0 ],
+ "destination" : [ "obj-66", 0 ],
+ "hidden" : 0,
+ "midpoints" : [ ]
+ }
+
+ }
+, {
+ "patchline" : {
+ "source" : [ "obj-65", 0 ],
+ "destination" : [ "obj-58", 0 ],
+ "hidden" : 0,
+ "midpoints" : [ ]
+ }
+
+ }
+, {
+ "patchline" : {
+ "source" : [ "obj-59", 0 ],
+ "destination" : [ "obj-58", 0 ],
+ "hidden" : 0,
+ "midpoints" : [ ]
+ }
+
+ }
+, {
+ "patchline" : {
+ "source" : [ "obj-52", 0 ],
+ "destination" : [ "obj-59", 0 ],
+ "hidden" : 0,
+ "midpoints" : [ ]
+ }
+
+ }
+, {
+ "patchline" : {
+ "source" : [ "obj-57", 0 ],
+ "destination" : [ "obj-58", 0 ],
+ "hidden" : 0,
+ "midpoints" : [ ]
+ }
+
+ }
+, {
+ "patchline" : {
+ "source" : [ "obj-51", 0 ],
+ "destination" : [ "obj-57", 0 ],
+ "hidden" : 0,
+ "midpoints" : [ ]
+ }
+
+ }
+, {
+ "patchline" : {
+ "source" : [ "obj-44", 0 ],
+ "destination" : [ "obj-52", 0 ],
+ "hidden" : 0,
+ "midpoints" : [ ]
+ }
+
+ }
+, {
+ "patchline" : {
+ "source" : [ "obj-44", 1 ],
+ "destination" : [ "obj-51", 0 ],
+ "hidden" : 0,
+ "midpoints" : [ ]
+ }
+
+ }
+, {
+ "patchline" : {
+ "source" : [ "obj-41", 0 ],
+ "destination" : [ "obj-33", 0 ],
+ "hidden" : 0,
+ "midpoints" : [ ]
+ }
+
+ }
+, {
+ "patchline" : {
+ "source" : [ "obj-35", 0 ],
+ "destination" : [ "obj-41", 0 ],
+ "hidden" : 1,
+ "midpoints" : [ ]
+ }
+
+ }
+, {
+ "patchline" : {
+ "source" : [ "obj-38", 0 ],
+ "destination" : [ "obj-28", 0 ],
+ "hidden" : 1,
+ "midpoints" : [ ]
+ }
+
+ }
+, {
+ "patchline" : {
+ "source" : [ "obj-28", 0 ],
+ "destination" : [ "obj-32", 1 ],
+ "hidden" : 0,
+ "midpoints" : [ ]
+ }
+
+ }
+, {
+ "patchline" : {
+ "source" : [ "obj-32", 0 ],
+ "destination" : [ "obj-17", 0 ],
+ "hidden" : 0,
+ "midpoints" : [ ]
+ }
+
+ }
+, {
+ "patchline" : {
+ "source" : [ "obj-19", 0 ],
+ "destination" : [ "obj-32", 0 ],
+ "hidden" : 0,
+ "midpoints" : [ ]
+ }
+
+ }
+, {
+ "patchline" : {
+ "source" : [ "obj-17", 0 ],
+ "destination" : [ "obj-21", 0 ],
+ "hidden" : 0,
+ "midpoints" : [ ]
+ }
+
+ }
+, {
+ "patchline" : {
+ "source" : [ "obj-14", 0 ],
+ "destination" : [ "obj-19", 0 ],
+ "hidden" : 0,
+ "midpoints" : [ ]
+ }
+
+ }
+, {
+ "patchline" : {
+ "source" : [ "obj-14", 0 ],
+ "destination" : [ "obj-16", 1 ],
+ "hidden" : 0,
+ "midpoints" : [ ]
+ }
+
+ }
+, {
+ "patchline" : {
+ "source" : [ "obj-4", 0 ],
+ "destination" : [ "obj-14", 0 ],
+ "hidden" : 0,
+ "midpoints" : [ ]
+ }
+
+ }
+, {
+ "patchline" : {
+ "source" : [ "obj-13", 0 ],
+ "destination" : [ "obj-4", 0 ],
+ "hidden" : 0,
+ "midpoints" : [ ]
+ }
+
+ }
+, {
+ "patchline" : {
+ "source" : [ "obj-37", 0 ],
+ "destination" : [ "obj-3", 0 ],
+ "hidden" : 0,
+ "midpoints" : [ ]
+ }
+
+ }
+, {
+ "patchline" : {
+ "source" : [ "obj-33", 0 ],
+ "destination" : [ "obj-18", 0 ],
+ "hidden" : 0,
+ "midpoints" : [ ]
+ }
+
+ }
+, {
+ "patchline" : {
+ "source" : [ "obj-18", 0 ],
+ "destination" : [ "obj-12", 0 ],
+ "hidden" : 0,
+ "midpoints" : [ ]
+ }
+
+ }
+, {
+ "patchline" : {
+ "source" : [ "obj-12", 0 ],
+ "destination" : [ "obj-36", 0 ],
+ "hidden" : 0,
+ "midpoints" : [ ]
+ }
+
+ }
+ ]
+ }
+
+}
Added: OpenObject/examples2/oo_soundfiles.scd
===================================================================
--- OpenObject/examples2/oo_soundfiles.scd (rev 0)
+++ OpenObject/examples2/oo_soundfiles.scd 2013-12-28 23:05:48 UTC (rev 2679)
@@ -0,0 +1,49 @@
+// example for granulating a soundfile using gui built in MaxMSP.
+// see attached file 'oo_soundfiles.maxpat'.
+// SuperCollider listens on port 57120, so messages must be sent to this port.
+
+(
+s.waitForBoot{
+ var func, buffers, synth;
+ SynthDef(\granulate, {|buf, out= 0, gate= 1,
+ vol= 0,//overal volume in db (0 = unity gain)
+ atk= 0.01, rel= 1,//cross fade times when changing buffer
+ posMin= 0, posMax= 1, posRate= 1,//buffer offset boundaries and rate of chage
+ panMin= -1, panMax= 1, panRate= 1,//panning boundaries and rate of change
+ pchMin= 0.9, pchMax= 1.1, pchRate= 1,//playback speed boundaries and rate of chage
+ trgMin= 0.005, trgMax= 0.5, trgRate= 1,//trigger density
+ durMin= 0.005, durMax= 0.5, durRate= 1//duration boundaries and rate of change
+ |
+ var env= EnvGen.kr(Env.asr(atk, 1, rel), gate, doneAction:2);
+ var pos= LFDNoise1.kr(posRate).range(posMin, posMax);
+ var pan= LFDNoise1.kr(panRate).range(panMin, panMax);
+ var pch= LFDNoise1.kr(pchRate).range(pchMin, pchMax);
+ var trg= Impulse.kr(1/LFDNoise1.kr(trgRate).exprange(trgMin.max(0.001), trgMax));
+ var dur= LFDNoise1.kr(durRate).exprange(durMin.max(0.001), durMax);
+ var snd= GrainBuf.ar(1, trg, dur, buf, pch, pos, 4);
+ Out.ar(out, Pan2.ar(snd, pan, env*vol.dbamp));
+ }).add;
+ s.sync;
+ buffers= List.newClear(5);//hold buffers and free later
+ OpenObject.start;
+ func= {|path, releaseTime= 1|
+ var b;
+ if(File.exists(path), {
+ buffers.pop.free;//free previous
+ ("loading file"+path.asString.quote).postln;
+ Routine.run({
+ b= Buffer.readChannel(s, path, channels:[0]);
+ buffers.addFirst(b);
+ s.sync;
+ synth.release;//stop and fade out previous
+ synth= Synth(\granulate, [\buf, b, \rel, releaseTime]);
+ s.sync;
+ OpenObject.put(\synth, synth);//oo access
+ });
+ }, {
+ ("file"+path.asString.quote+"not found").warn;
+ });
+ };
+ OpenObject.put(\func, func);//oo access
+};
+)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
_______________________________________________
sc-dev mailing list
info (subscription, etc.): http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml
archive: https://listarc.bham.ac.uk/marchives/sc-dev/
search: https://listarc.bham.ac.uk/lists/sc-dev/search/