1
0

feat: lag in granulator (smooth operator)

This commit is contained in:
2026-03-02 17:11:02 +01:00
parent bfc4f81bdd
commit 03f5515c8f

View File

@ -1,28 +1,33 @@
/* Generic modulable buffer granulator */ /* Ambient-friendly modulable buffer granulator */
SynthDef(\grainoo, { SynthDef(\grainoo, { |buf, gate=1|
|buf, gate = 1| var sig, env, trig, pos, rate;
var sig, env;
env = EnvGen.ar( // nonzero attack
Env.asr( env = EnvGen.ar(Env.asr(\attack.kr(0.05), 1.0, \release.kr(3.0)), gate, doneAction: 2);
\attack.kr(0.0),
\decay.kr(1.0), trig = Impulse.kr(\trig_rate.kr(18));
\release.kr(1.0)),
gate, // Smooth discontinuous control changes
// doneAction: Done.freeSelf pos = Lag.kr(\gpos.kr(0.2), \posLag.kr(0.25));
); rate = Lag.kr(\rate.kr(1.0), \rateLag.kr(0.25));
sig = GrainBuf.ar( sig = GrainBuf.ar(
numChannels: 2, numChannels: 2,
trigger: Impulse.ar(\trig_rate.kr(20)), trigger: trig,
dur: \gdur.kr(0.5), dur: \gdur.kr(0.18),
sndbuf: buf, sndbuf: buf,
rate: \rate.kr(0.5) * (0.01 + env), rate: rate,
pos: \gpos.kr(0), pos: pos,
pan: \gpan.kr(0), pan: \gpan.kr(0)
); );
sig = RLPF.ar(sig, \ff.kr(6000), \rq.kr(1));
sig = sig * env; sig = BLowPass4.ar(sig, \ff.kr(3800), \rq.kr(0.9));
sig = sig * \amp.kr(1); sig = LPF.ar(sig, \aircut.kr(6500));
sig = Limiter.ar(sig); sig = HPF.ar(sig, 25);
sig = LeakDC.ar(sig);
sig = sig * env * \amp.kr(0.2);
sig = Limiter.ar(sig, 0.98);
Out.ar(\out.kr(0), sig); Out.ar(\out.kr(0), sig);
}).add; }).add;