Smol or mid-sized snippets of SuperCollider code that start in SuperCollider's Workspace Emacs buffer from scratch.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

72 lines
1.7 KiB

// init buffer b
a= Array.fill(40,{arg i; if(i.odd,{if(0.6.coin,{[0,exprand(0.005,0.05)]}, {[8,rrand(0.1,1.0),9,2*rrand(0,12)]})},{[rrand(1,6),[exprand(0.1,1.0),rrand(0.1,1.0),exprand(0.01,0.2)].choose]}); }).flatten;
b=Buffer.sendCollection(s, a, 1);
Ndef(\innoiz1).play
Ndef(\innoiz1).fadeTime = 5;
( // def the task function
~instruct = {
inf.do {
a = Array.fill(30, {
arg i;
if( i.odd,
{ if( 0.6.coin,
{ [0,exprand(0.005,0.05)] },
{ [8, rrand(0.1,1.0), 9, 2*rrand(0,12)] } )
},
{ [rrand(1,6),
[exprand(0.1,1.0),rrand(0.1,1.0),exprand(0.01,0.2)].choose
] }
);
}).flatten;
b.sendCollection(a);
exprand(0.01,1).wait;
}
}
)
(
// continuously change/fill buffer with instructions
t=Task(~instruct).play;
// stop filling
t.stop;
(// play Instructions with PitchShift and more
Ndef(\innoiz1, {
var snd;
snd = Instruction.ar(b.bufnum);
snd = PitchShift.ar(in: snd,
//windowSize: 1/7.55,
windowSize: 0.3,
//pitchRatio: 2,
pitchRatio: LFNoise1.kr([0.5,1]).exprange(0.2,4),
pitchDispersion: 0.05,
timeDispersion: 0.44 );
snd = snd * (LFPulse.ar(LFNoise1.kr(1).range(1,16)).range(LFNoise1.kr(0.2).range(0.8,1),1));
snd = Splay.ar(snd,
spread: LFNoise2.kr(LFNoise0.kr(LFNoise0.kr(0.1,1)).range(0.1,10)).range(0,1),
center: LFNoise1.kr(LFNoise0.kr(LFNoise0.kr(0.1,1)).range(0.1,10)).range(-1,1));
//snd = LPF.ar(snd, 10000);
snd = BHiShelf.ar(snd, 3000, 1, db:12);
snd = BLowShelf.ar(snd, 500, 1, db:12);
snd = HPF.ar(snd, 20);
//snd = BPF.ar(snd, LFNoise1.kr(0.1).exprange(100,10000), 1);
snd = snd.clip2(0.9);
//snd = snd * LFPulse.kr(LFNoise0.kr(0.2).exprange(0.1,1), width:0.05);
snd = (CombN.ar(snd, 1, [0.55,0.77] * LFNoise1.kr(0.1).range(0.99,1.01), 2, mul:0.1)) + snd;
snd;
})
)