33 lines
925 B
Plaintext
33 lines
925 B
Plaintext
|
(
|
||
|
SynthDef(\granulator, {
|
||
|
|
||
|
arg out = 0, bufnum = ~smpBuffers.ar(0), grainDur=0.2, grainFreq=140, amp=0.8,
|
||
|
gate = 1, attackTime = 0.1, susLevel = 1.0, releaseTime = 1.0,
|
||
|
spread = 1, pan = 0, seed = 1924, id=0;
|
||
|
var snd, env;
|
||
|
|
||
|
RandID.ir(id);
|
||
|
RandSeed.ir(1, seed);
|
||
|
spread = spread * abs(abs(pan)-1);
|
||
|
|
||
|
env = Linen.kr(gate, attackTime, susLevel, releaseTime);
|
||
|
snd = GrainBuf.ar(numChannels: 1,
|
||
|
trigger: Impulse.kr(grainFreq * LFNoise0.kr(grainFreq).range(0.5,1.5)),
|
||
|
dur: grainDur,
|
||
|
sndbuf: bufnum,
|
||
|
rate: [0.2,0.3,0.4,0.5],
|
||
|
pos:LFTri.ar(0.0001, iphase:[IRand(0,1),IRand(0,1),IRand(0,1),IRand(0,1)]).range(0,1),
|
||
|
interp: 4,
|
||
|
maxGrains: 1024,
|
||
|
pan: [ LFNoise1.kr(0.1).range(-1,1),
|
||
|
LFNoise1.kr(0.1).range(-1,1),
|
||
|
LFNoise1.kr(0.1).range(-1,1),
|
||
|
LFNoise1.kr(0.1).range(-1,1) ]
|
||
|
);
|
||
|
snd = Splay.ar(snd, spread:spread, level:amp, center: pan);
|
||
|
snd = snd * env;
|
||
|
|
||
|
Out.ar(out, snd);
|
||
|
}).add;
|
||
|
);
|