(
Instr.new("StreichWalker", { |buf,rate=1, dur=0.1, pos = 0.1, amp = 0.9, trigr = 64, randoffset = 0.01, flange = 1 |
var clk, pan, chain;
clk = Impulse.kr(256);
pos = pos + TRand.kr(0, randoffset, clk);
Mix.new ([TGrains.ar(2, // numChannels
clk, // trigger
buf, _// bufnum
___
//rate, // rate
rate + TRand.kr(flange/(-1000), flange/1000, clk), // this is going in a flanger direction, sorta
pos, // centerPos
dur, // dur
TRand.kr(-1,1, clk), //pan, // pan
___ amp), // amp
__ ]);
});
);

(
SynthDef(clusterboom, {| out = 0, freq=55, dur=1, amp=1|
_Out.ar(
__out,
__Splay.ar({SinOsc.ar(exprand(freq-(freq/128),freq+(freq/128)),0,0.1)}!33)
___
EnvGen.kr(Env.perc,1,1,0,dur,2)
___
amp
__)
}).add;
);

1.do{|i| ~streicherList = ~streicherList.add(~streichCh.play(Instr.at("StreichWalker")));};

(
~baseamp.isNil.if {~baseamp = 1};
~waitroot.isNil.if {~waitroot = 1};
~direction.isNil.if {~direction = 1};
~jumpPosition = 0;
~cleanBufNum.isNil.if {~cleanBufNum = 0} {(~cleanBufNum > (~buffers.size - 1)).if {~cleanBufNum = 0}};
(
~rateChooser.notNil.if {~rateChooser.pause};
~rateChooser.free;
//~rateChooser = Task({inf.do{~rate = [1/32,1,1,1].choose;0.1.wait;};});
//~rateChooser = Task({inf.do{~rate = [1/32,22/24,22/24].choose;0.1.wait;};});
~rateChooser = Task({inf.do{~rate = [1/32,1/16,1/8, 1,1,1,1,1,1].choose;(~waitroot/8).wait;};});
//~rateChooser = Task({inf.do{~rate = [1/32,1/16,1/8,1/4, 1].choose;(~waitroot/8).wait;};});
~rateChooser.play;
);
(
~rateSetter.notNil.if {~rateSetter.pause};
~rateSetter.free;
//~rateSetter = Task({inf.do{~streicherList.choose.synth.set(rate, ~rate);(~waitroot/4).wait;};});
~rateSetter = Task({inf.do{~streicherList.choose.synth.set(rate, ~rate);(~waitroot/8).wait;};});
~rateSetter.play;
);
(
~posChooser.notNil.if {~posChooser.pause};
~posChooser.free;
//~posChooser = Task({inf.do{~jumpPosition = ~buffers[~cleanBufNum].duration.rand;0.1.wait;};});
//~posChooser = Task({inf.do{~jumpPosition = (~jumpPosition + 0.001)%(~buffers[~cleanBufNum].duration);0.001.wait;};});
~posChooser = Task({inf.do{~jumpPosition = (~jumpPosition + (0.01 ~direction));(~waitroot/64).wait;};});
//~posChooser = Task({inf.do{~jumpPosition = (~jumpPosition - 0.01);(~waitroot/8).wait;};});
~posChooser.play;
);
(
~posSetter.notNil.if {~posSetter.pause};
~posSetter.free;
~posSetter = Task({inf.do{~streicherList.choose.synth.set(pos, ~jumpPosition); (~waitroot/32).wait;};});
// thought this might get rid of the clicks, but no:
/
~posSetter = Task({inf.do{
var chosen = ~streicherList.choose.synth;
chosen.set(amp, 0);
chosen.set(pos, ~jumpPosition);
chosen.set(amp, ~baseamp);
(~waitroot/32).wait;
};});
*/
~posSetter.play;
);

(
~bufSetter.notNil.if {~bufSetter.pause};
~bufSetter.free;
//~bufSetter = Task({inf.do{~streicherList.choose.synth.set(buf, ~buffers[~cleanBufNum]);0.5.wait;};});
~bufSetter = Task({inf.do{~streicherList.choose.synth.set(buf, ~buffers[~cleanBufNum].bufnum + 1);(~waitroot/2).wait;};});
//~bufSetter = Task({inf.do{~streicherList.choose.synth.set(buf, ~rectoBuffer.bufnum + 1);0.5.wait;};});
~bufSetter.play;
);
(
~randominterference.notNil.if {~randominterference.pause};
~randominterference.free;
~randominterference = Task({inf.do{~streicherList.choose.synth.set(pos, 33.0.rand); (~waitroot/2).wait;};});
~randominterference.play;
);

(
~lag.isNil.if {~lag = 1/8};
~lagger.notNil.if {~lagger.pause};
~lagger.free;
~lagger = Task({inf.do{~streicherList.choose.synth.set(pos, ~jumpPosition - ~lag); (~waitroot/8).wait;};});
~lagger.play;
);

)
(
~bufSetter.notNil.if {~bufSetter.pause};
~bufSetter.free;
~bufSetter = Task({inf.do{
_~streicherList.choose.synth.set(buf, [
__//~buffers.choose.bufnum,
__~buffers[~cleanBufNum].bufnum,
__~liveBuf.bufnum].choose
_
+0);
_____(~waitroot/16).wait;};});
~bufSetter.play;
)

(
~silences.isNil.if {~silences = [1/8,1/4,1/2]};
~bassmidis.isNil.if {~bassmidis = [9,21,22]};
~boom_p.isNil.if {~boomp = false};
~bass.isNil.if {~bass = 15.midicps};
~boomamp.isNil.if {~boomamp = 4 };
~boomdur.isNil.if {~boomdur = 1/2 };
~boomcoin.isNil.if {~boomcoin = 1/2 };
~silencer.notNil.if {~silencer.pause};
~silencer.free;
~silencer = Task({inf.do{
____
~streichCh.preSends.first.level(0,false,false);
____
~streicherList.do{|i| i.synth.set(amp, 0);};
(~silences.choose * ~waitroot).wait;
if (~boomp && 0.75.coin) {
__0.25.coin.if {~bass = ~bassmidis.choose.midicps};
__~longClickCh.play('clusterboom', ['freq', ~bass, 'amp', ~boomamp, 'dur', ~boomdur * [1,1,1,4].choose]);
____
};
_0.25.coin.if {
__~reverbCh.mute(true);
__((1/8)* ~waitroot).wait;
__~reverbCh.mute(false);
_
};
~streichCh.preSends.first.level(0.1,false,false);
____~streicherList.do{|i| i.synth.set(amp, ~baseamp);};
(~silences.choose * ~waitroot).wait;
};});
~silencer.play;
);


pic: flickr.com/photos/jstar/282603...es-48773669@N02

Translate this for me

    Other
    Full Link
    Short Link (X/Twitter)
    Video Preview in progress...