bbozkurt | 1 Dec 03:59 2009
Picon
Picon

SF.net SVN: quarks:[1272] NatureToolkit

Revision: 1272
          http://quarks.svn.sourceforge.net/quarks/?rev=1272&view=rev
Author:   bbozkurt
Date:     2009-12-01 02:59:49 +0000 (Tue, 01 Dec 2009)

Log Message:
-----------
Update to NatureToolkit, adding GAWorkbench and GAPmatch.

Modified Paths:
--------------
    DIRECTORY/NatureToolkit.quark

Added Paths:
-----------
    NatureToolkit/GAWorkbench/
    NatureToolkit/GAWorkbench/GAWorkbench.sc
    NatureToolkit/GAWorkbench/Help/
    NatureToolkit/GAWorkbench/Help/GAWorkbench.html
    NatureToolkit/NatureToolkit.html
    NatureToolkit/Utils/
    NatureToolkit/Utils/GAPmatch/
    NatureToolkit/Utils/GAPmatch/GAPmatch.sc
    NatureToolkit/Utils/GAPmatch/Help/
    NatureToolkit/Utils/GAPmatch/Help/GAPmatch.html

Modified: DIRECTORY/NatureToolkit.quark
===================================================================
--- DIRECTORY/NatureToolkit.quark	2009-11-29 06:03:24 UTC (rev 1271)
+++ DIRECTORY/NatureToolkit.quark	2009-12-01 02:59:49 UTC (rev 1272)
(Continue reading)

Iannis Zannos | 1 Dec 14:56 2009
Picon

Suggestion to add methods "onStart", "onEnd for Node.


Hello, 

I would like to suggest adding following two methods to Node. These use the NodeWatcher to add actions to any Node to be performed when that Node starts or when it ends (gets freed). The onStart method is useful for mapping a control input of a node to a bus immediately when it starts. The onEnd node is a straightforward and reliable method for notifying an object when a Synth stops. This is useful for automatically updating any widgets that depend on a running synth. This is encountered in many toolkits that come with SuperCollider. Most of these fail to update the status of any "start/stop" button when the synth that it depends on is freed. This can be corrected by using the onEnd method. 

Iannis Zannos

-------------------------

/* 1. Examples:  */

(
b = Bus.control;
p = { Out.kr(b.index, SinOsc.kr(7, 0, 20, 400)) }.play;
c = { | freq = 1000 | SinOsc.ar(freq, 0, 0.1) }
.play
.onStart({ c.map(\freq, b.index); });
)

(
w = Window("synth is running").front;
a = { SinOsc.ar(400, 0, 0.1) }
.play
.onEnd({ 'hi there i just stopped'.postln; })
.onEnd({ w.close });
{ a.free }.defer(3);
)



/* 2. Code for SCClassLibrary:  
onStart: 
Notify SuperCollider client (SCLang) when a Node (Group, Synth) starts
onEnd:  
Notify SuperCollider client (SCLang) when a Node (Group, Synth) ends
*/

+ Node {
onStart { | argFunc |
var cmdPeriodFunc;
NodeWatcher.register(this);
this.addDependant { | me, whatHappened |
if (whatHappened == \n_go) {
argFunc.(this);
this.removeDependant(argFunc);
}
};
}
onEnd { | argFunc |
var cmdPeriodFunc;
NodeWatcher.register(this);
this.addDependant { | me, whatHappened |
if (whatHappened == \n_end) {
argFunc.(this);
this.removeDependant(argFunc);
}
};
}
envirOnEnd { | argEnvir, argFunc |
this onEnd: { argEnvir use: argFunc }
}
}

+ EventStreamPlayer {
onEnd { | argFunc |
this.addDependant { | me, whatHappened |
if (whatHappened == \stopped) {
argFunc.(this);
this.removeDependant(argFunc);
}
}
}
onStart { | argFunc |
// immediately do argFunc. For compatibility with Node, 
argFunc.(this);
}
}



nescivi | 1 Dec 18:56 2009
Picon
Picon

SF.net SVN: quarks:[1273] SpeakersCorner/SpatioScope.html

Revision: 1273
          http://quarks.svn.sourceforge.net/quarks/?rev=1273&view=rev
Author:   nescivi
Date:     2009-12-01 17:56:22 +0000 (Tue, 01 Dec 2009)

Log Message:
-----------
documentation for SpatioScope gridPos and grid

Modified Paths:
--------------
    SpeakersCorner/SpatioScope.html

Modified: SpeakersCorner/SpatioScope.html
===================================================================
--- SpeakersCorner/SpatioScope.html	2009-12-01 02:59:49 UTC (rev 1272)
+++ SpeakersCorner/SpatioScope.html	2009-12-01 17:56:22 UTC (rev 1273)
 <at>  <at>  -5,19 +5,19  <at>  <at> 
 <meta http-equiv="Content-Style-Type" content="text/css">
 <title></title>
 <meta name="Generator" content="Cocoa HTML Writer">
-<meta name="CocoaVersion" content="949.43">
+<meta name="CocoaVersion" content="824.48">
 <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: 9.0px Monaco; min-height: 12.0px}
 p.p3 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco}
-p.p4 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #961e1e}
-p.p5 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #001db9}
+p.p4 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #9a1d1b}
+p.p5 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #001ebb}
 p.p6 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px}
 span.s1 {font: 18.0px Helvetica}
 span.s2 {color: #000000}
-span.s3 {color: #001db9}
+span.s3 {color: #001ebb}
 span.s4 {font: 9.0px Monaco}
-span.s5 {color: #961e1e}
+span.s5 {color: #9a1d1b}
 span.Apple-tab-span {white-space:pre}
 </style>
 </head>
 <at>  <at>  -52,7 +52,20  <at>  <at> 
 <p class="p4"><span class="s2"><span class="Apple-tab-span">	</span></span>// supply locations
by hand - 1 <at> 1 is left bottom.</p>
 <p class="p3">z = <span class="s3">SpatioScope</span>([ -0.5  <at>  -0.7, 0.5  <at>  -0.4, 0.8  <at>  0.8, -0.5  <at>  0.5, 0 <at> 0
]);<span class="Apple-converted-space"> </span></p>
 <p class="p2"><br></p>
+<p class="p6"><br></p>
+<p class="p1"><b><span class="Apple-tab-span">	</span>*gridPos(numx, numy) <span
class="Apple-tab-span">	</span></b>// calculate positions for a grid</p>
+<p class="p1"><span class="Apple-tab-span">	</span><span
class="Apple-tab-span">	</span><b>numx</b>: number of speakers in the x-direction</p>
+<p class="p1"><span class="Apple-tab-span">	</span><span
class="Apple-tab-span">	</span><b>numy</b>: number of speakers in the y-direction</p>
+<p class="p6"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></p>
+<p class="p3"><span class="s3">SpatioScope</span>.gridPos(4,6);</p>
+<p class="p2"><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="p1"><b><span class="Apple-tab-span">	</span>*grid(numx, numy radius, angleOffset,
server, parent, bounds) <span class="Apple-tab-span">	</span></b>// make a SpatioScope for a grid</p>
+<p class="p1"><span class="Apple-tab-span">	</span><span
class="Apple-tab-span">	</span><b>numx, numy</b> as in *<b>gridPos</b></p>
+<p class="p1"><span class="s4"><span class="Apple-tab-span">	</span><span
class="Apple-tab-span">	</span></span><b>server, parent, bounds </b>as in <b>*new</b></p>
+<p class="p6"><br></p>
+<p class="p3">z = <span class="s3">SpatioScope</span>.grid(4,6);</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="p1"><b><span class="Apple-tab-span">	</span>*ringPos(num, radius, angleOffset) <span
class="Apple-tab-span">	</span></b>// calculate positions for a ring</p>
 <p class="p1"><span class="Apple-tab-span">	</span><span
class="Apple-tab-span">	</span><b>num</b>: number of speakers in the ring</p>
 <p class="p1"><span class="Apple-tab-span">	</span><span
class="Apple-tab-span">	</span><b>radius</b>: radius from center</p>

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: http://www.listarc.bham.ac.uk/marchives/sc-dev/
search: http://www.listarc.bham.ac.uk/lists/sc-dev/search/

nescivi | 1 Dec 19:36 2009
Picon

Re: Suggestion to add methods "onStart", "onEnd for Node.

On Tuesday 01 December 2009 08:56:43 Iannis Zannos wrote:
> Hello,
> 
> I would like to suggest adding following two methods to Node. These use the
> NodeWatcher to add actions to any Node to be performed when that Node
>  starts or when it ends (gets freed). The onStart method is useful for
>  mapping a control input of a node to a bus immediately when it starts. The
>  onEnd node is a straightforward and reliable method for notifying an
>  object when a Synth stops. This is useful for automatically updating any
>  widgets that depend on a running synth. This is encountered in many
>  toolkits that come with SuperCollider. Most of these fail to update the
>  status of any "start/stop" button when the synth that it depends on is
>  freed. This can be corrected by using the onEnd method.

I like the idea!
I've found myself writing similar code quite often, so it would be nice to 
have it as methods available.

sincerely,
Marije

> 
> Iannis Zannos
> 
> -------------------------
> 
> /* 1. Examples:  */
> 
> (
> b = Bus.control;
> p = { Out.kr(b.index, SinOsc.kr(7, 0, 20, 400)) }.play;
> c = { | freq = 1000 | SinOsc.ar(freq, 0, 0.1) }
> .play
> .onStart({ c.map(\freq, b.index); });
> )
> 
> (
> w = Window("synth is running").front;
> a = { SinOsc.ar(400, 0, 0.1) }
> .play
> .onEnd({ 'hi there i just stopped'.postln; })
> .onEnd({ w.close });
> { a.free }.defer(3);
> )
> 
> 
> 
> /* 2. Code for SCClassLibrary:
> onStart:
> Notify SuperCollider client (SCLang) when a Node (Group, Synth) starts
> onEnd:
> Notify SuperCollider client (SCLang) when a Node (Group, Synth) ends
> */
> 
> + Node {
> onStart { | argFunc |
> var cmdPeriodFunc;
> NodeWatcher.register(this);
> this.addDependant { | me, whatHappened |
> if (whatHappened == \n_go) {
> argFunc.(this);
> this.removeDependant(argFunc);
> }
> };
> }
> onEnd { | argFunc |
> var cmdPeriodFunc;
> NodeWatcher.register(this);
> this.addDependant { | me, whatHappened |
> if (whatHappened == \n_end) {
> argFunc.(this);
> this.removeDependant(argFunc);
> }
> };
> }
> envirOnEnd { | argEnvir, argFunc |
> this onEnd: { argEnvir use: argFunc }
> }
> }
> 
> + EventStreamPlayer {
> onEnd { | argFunc |
> this.addDependant { | me, whatHappened |
> if (whatHappened == \stopped) {
> argFunc.(this);
> this.removeDependant(argFunc);
> }
> }
> }
> onStart { | argFunc |
> // immediately do argFunc. For compatibility with Node,
> argFunc.(this);
> }
> }
> 

_______________________________________________
sc-dev mailing list

info (subscription, etc.): http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml
archive: http://www.listarc.bham.ac.uk/marchives/sc-dev/
search: http://www.listarc.bham.ac.uk/lists/sc-dev/search/

nescivi | 1 Dec 19:45 2009
Picon
Picon

SF.net SVN: supercollider:[9563] trunk/build/Help/Control/GeneralHID.html

Revision: 9563
          http://supercollider.svn.sourceforge.net/supercollider/?rev=9563&view=rev
Author:   nescivi
Date:     2009-12-01 18:45:41 +0000 (Tue, 01 Dec 2009)

Log Message:
-----------
added a reference to Ixi's hid server for windows

Modified Paths:
--------------
    trunk/build/Help/Control/GeneralHID.html

Modified: trunk/build/Help/Control/GeneralHID.html
===================================================================
--- trunk/build/Help/Control/GeneralHID.html	2009-11-28 15:53:33 UTC (rev 9562)
+++ trunk/build/Help/Control/GeneralHID.html	2009-12-01 18:45:41 UTC (rev 9563)
 <at>  <at>  -37,7 +37,7  <at>  <at> 
 <p class="p2"><br></p>
 <p class="p4"><b>Some outstanding issues</b></p>
 <p class="p2"><br></p>
-<p class="p1">This class is not completely finished yet. Common slot numbers across platforms are not
yet guaranteed. On Windows there is not yet a proper implementation available.</p>
+<p class="p1">This class is not completely finished yet. Common slot numbers across platforms are not
yet guaranteed. On Windows there is not yet a proper implementation available, but you can use HID Server
from <a href="http://ixi-software.net/content/backyard.html">Ixi's backyard</a>, which comes
with classes which are compatible with GeneralHID.</p>
 <p class="p2"><br></p>
 <p class="p4"><b>Creation / Class Methods</b></p>
 <p class="p5"><br></p>

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: http://www.listarc.bham.ac.uk/marchives/sc-dev/
search: http://www.listarc.bham.ac.uk/lists/sc-dev/search/

Wouter Snoei | 2 Dec 13:53 2009
Picon

Re: Suggestion to add methods "onStart", "onEnd for Node.

Hi Iannis,

indeed a good idea. But it would also be nice if it would be possible  
to remove or replace the onEnd function before it actually fired.  
Maybe it could be modelled like actions in views; i.e. a separate  
endAction and startAction slot? And then maybe a flag to enable them?

cheers,
Wouter

Op 1 dec 2009, om 19:36 heeft nescivi het volgende geschreven:

> On Tuesday 01 December 2009 08:56:43 Iannis Zannos wrote:
>> Hello,
>>
>> I would like to suggest adding following two methods to Node. These  
>> use the
>> NodeWatcher to add actions to any Node to be performed when that Node
>> starts or when it ends (gets freed). The onStart method is useful for
>> mapping a control input of a node to a bus immediately when it  
>> starts. The
>> onEnd node is a straightforward and reliable method for notifying an
>> object when a Synth stops. This is useful for automatically  
>> updating any
>> widgets that depend on a running synth. This is encountered in many
>> toolkits that come with SuperCollider. Most of these fail to update  
>> the
>> status of any "start/stop" button when the synth that it depends on  
>> is
>> freed. This can be corrected by using the onEnd method.
>
> I like the idea!
> I've found myself writing similar code quite often, so it would be  
> nice to
> have it as methods available.
>
> sincerely,
> Marije
>
>>
>> Iannis Zannos
>>
>> -------------------------
>>
>> /* 1. Examples:  */
>>
>> (
>> b = Bus.control;
>> p = { Out.kr(b.index, SinOsc.kr(7, 0, 20, 400)) }.play;
>> c = { | freq = 1000 | SinOsc.ar(freq, 0, 0.1) }
>> .play
>> .onStart({ c.map(\freq, b.index); });
>> )
>>
>> (
>> w = Window("synth is running").front;
>> a = { SinOsc.ar(400, 0, 0.1) }
>> .play
>> .onEnd({ 'hi there i just stopped'.postln; })
>> .onEnd({ w.close });
>> { a.free }.defer(3);
>> )
>>
>>
>>
>> /* 2. Code for SCClassLibrary:
>> onStart:
>> Notify SuperCollider client (SCLang) when a Node (Group, Synth)  
>> starts
>> onEnd:
>> Notify SuperCollider client (SCLang) when a Node (Group, Synth) ends
>> */
>>
>> + Node {
>> onStart { | argFunc |
>> var cmdPeriodFunc;
>> NodeWatcher.register(this);
>> this.addDependant { | me, whatHappened |
>> if (whatHappened == \n_go) {
>> argFunc.(this);
>> this.removeDependant(argFunc);
>> }
>> };
>> }
>> onEnd { | argFunc |
>> var cmdPeriodFunc;
>> NodeWatcher.register(this);
>> this.addDependant { | me, whatHappened |
>> if (whatHappened == \n_end) {
>> argFunc.(this);
>> this.removeDependant(argFunc);
>> }
>> };
>> }
>> envirOnEnd { | argEnvir, argFunc |
>> this onEnd: { argEnvir use: argFunc }
>> }
>> }
>>
>> + EventStreamPlayer {
>> onEnd { | argFunc |
>> this.addDependant { | me, whatHappened |
>> if (whatHappened == \stopped) {
>> argFunc.(this);
>> this.removeDependant(argFunc);
>> }
>> }
>> }
>> onStart { | argFunc |
>> // immediately do argFunc. For compatibility with Node,
>> argFunc.(this);
>> }
>> }
>>
>
>
> _______________________________________________
> sc-dev mailing list
>
> info (subscription, etc.): http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml
> archive: http://www.listarc.bham.ac.uk/marchives/sc-dev/
> search: http://www.listarc.bham.ac.uk/lists/sc-dev/search/

_______________________________________________
sc-dev mailing list

info (subscription, etc.): http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml
archive: http://www.listarc.bham.ac.uk/marchives/sc-dev/
search: http://www.listarc.bham.ac.uk/lists/sc-dev/search/

Tim Blechmann | 2 Dec 16:20 2009

Re: patches for trunk

> i would like to merge the following branches from my git repository into
> trunk:
> 
> - slot_access_squashed: typesafety for PyrSlot struct/union
> - sclang64: 64bit sclang
> - math_cleanup: cleanup of mathops
> - math_speedups: mathops - directly work on result slot instead
> - nova-simd-ct-unrolled: compile-time loop unrolling for simd functions
> 
> git clone url: git://tim.klingt.org/supercollider.git
> gitweb interface: http://tim.klingt.org/git?p=supercollider.git

i just wanted to ask about the state of the sclang64 branch on osx. if
it does compile and run as 32bit application, i would like to commit
this patch series.

besides, the nova-simd-ct-unrolled branch is independent from the 64bit
port of sclang ... is it ok to commit?

thanks, tim

--

-- 
tim@...
http://tim.klingt.org

Art is either a complaint or do something else
  John Cage quoting Jasper Johns

nescivi | 2 Dec 18:59 2009
Picon

Re: [sc-users] crazy port

Hiho,

I was actually wondering if we could solve this problem with a proper exit 
signal handling, so that if we stop sclang in an orderly way, it will clean up 
the port properly.

This also goes back to an issue Fernando reported a while back, and that we 
promised to look into :)

sincerely,
Marije

On Wednesday 02 December 2009 12:23:26 Guilherme Lunhani wrote:
> Hi, i have a little problem
> with receive OSC port in sclang...
> 
> In linux ( everytime that I restart the interpreter
> this port change, i.e, one time is 5120, other time
> is 57121, 57122, etc...
> 
> any light?
> 

_______________________________________________
sc-dev mailing list

info (subscription, etc.): http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml
archive: http://www.listarc.bham.ac.uk/marchives/sc-dev/
search: http://www.listarc.bham.ac.uk/lists/sc-dev/search/

Josh Parmenter | 2 Dec 19:35 2009
Picon

Re: Re: patches for trunk

Hi Tim,

I'll play around more with the 32-bit build today. I seem to remember getting some other crash once or twice,
but was in the middl of other work to look for it. 

Please way a day on the sclang64

Josh

On Dec 2, 2009, at 7:20 AM, Tim Blechmann wrote:

>> i would like to merge the following branches from my git repository into
>> trunk:
>> 
>> - slot_access_squashed: typesafety for PyrSlot struct/union
>> - sclang64: 64bit sclang
>> - math_cleanup: cleanup of mathops
>> - math_speedups: mathops - directly work on result slot instead
>> - nova-simd-ct-unrolled: compile-time loop unrolling for simd functions
>> 
>> git clone url: git://tim.klingt.org/supercollider.git
>> gitweb interface: http://tim.klingt.org/git?p=supercollider.git
> 
> i just wanted to ask about the state of the sclang64 branch on osx. if
> it does compile and run as 32bit application, i would like to commit
> this patch series.
> 
> besides, the nova-simd-ct-unrolled branch is independent from the 64bit
> port of sclang ... is it ok to commit?
> 
> thanks, tim
> 
> -- 
> tim@...
> http://tim.klingt.org
> 
> Art is either a complaint or do something else
>  John Cage quoting Jasper Johns
> 

******************************************
/* Joshua D. Parmenter
http://www.realizedsound.net/josh/

“Every composer – at all times and in all cases – gives his own interpretation of how modern society is
structured: whether actively or passively, consciously or unconsciously, he makes choices in this
regard. He may be conservative or he may subject himself to continual renewal; or he may strive for a
revolutionary, historical or social palingenesis." - Luigi Nono
*/

_______________________________________________
sc-dev mailing list

info (subscription, etc.): http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml
archive: http://www.listarc.bham.ac.uk/marchives/sc-dev/
search: http://www.listarc.bham.ac.uk/lists/sc-dev/search/

Tim Blechmann | 2 Dec 19:53 2009

Re: patches for trunk

> I'll play around more with the 32-bit build today. I seem to remember getting some other crash once or
twice, but was in the middl of other work to look for it. 

the 32bit build should have the same typesafety checks as the 64bit
version, so you could experience some assertion failures, if you don't
do a release build (or whatever xcode equivalent of not defining
NDEBUG). there may be some float/integer/pointer type errors. the
release build should run as before, though ...

tim

--

-- 
tim@...
http://tim.klingt.org

There's no such entity as "most people". These are generalities. All
generalities are meaningless. You've got to pin it down to a specific
person doing a specific thing at a specific time and space.
  William S. Burroughs


Gmane