Re: [livecode] livecoding with a bp2-alike thing

From: Julian Rohrhuber <rohrhuber_at_uni-hamburg.de>
Date: Mon, 27 Nov 2006 14:12:59 +0100

>On Mon, 2006-11-27 at 12:53 +0100, Julian Rohrhuber wrote:
>> if you are not depending on any ressources on the
>> server, you can quickly boot a new one if you
>> actually have managed to crash the old.
>>
>> sclang is easy to crash with an infinite loop à
>> la: fork { loop { } } or anything that approaches
>> such a situation, but otherwise it usually is
>> pretty stable.
>
>It's nice to finish a set with a lot of processes, perhaps even a
>forkbomb, where everything slowly grinds to a halt. It seems that this
>high precision low latency stuff gets in the say of this.

of yourse that's also not too hard if you simply
create lots of synths, it will definitely glitch
[1].

>
>> Alex, are you sending osc first to sclang and from there to scserver?
>
>Yes although Rohan Drape has now given me a recipe to schedule events
>directly on scserver with high precision. I would then have to
>implement some of these rules to make it sounds wonky again:
> http://www.speech.kth.se/music/performance/performance_rules.html
>
>He also pointed me at the Stream, Pattern and Event model stuff in
>sclang. That really looks quite beautiful to use. Do all the
>supercollider people use that stuff?
>
>alex

yes, sure.

Many of the JITLib classes extend this scheme.
You can do livecoding with l-systems, e.g. using
Plsys:
http://swiki.hfbk-hamburg.de:8888/MusicTechnology/727




[1] this you could use to slowly tune the glitch:



s = Server.local;
s.boot;

SynthDef("numsynths",{
        SendTrig.kr(Impulse.kr(0), 0, NumRunningSynths.ir);
        Line.kr(doneAction: 2); // free self
}).send(s);


SynthDef("wastecpu",{
        var dt = Rand(1, 5);
        { Line.ar(dur: dt, doneAction: 2) } ! 50; // free self
}).send(s);



(
q = q ? ();
q.numSynths = 0;
q.balance = 100;

// register to receive this message
OSCresponder(s.addr,'/tr',{ arg t,r,msg;
        q.numSynths = msg[3].postln;
}).add;


fork {
        inf.do {|i|
                if(q.numSynths < q.balance) {
                        Synth("wastecpu");
                };
                Synth("numsynths");
                0.1.wait;

        }

}

)


// tune numSynths..
q.balance = 15;



PS fredrik has a glitch ugen, called Slub, but i
suppose you know that already..
-- 
.
Received on Mon Nov 27 2006 - 13:18:00 GMT

This archive was generated by hypermail 2.4.0 : Sun Aug 20 2023 - 16:02:23 BST