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 */
SynthDef(\grainoo, {
|buf, gate = 1|
var sig, env;
env = EnvGen.ar(
Env.asr(
\attack.kr(0.0),
\decay.kr(1.0),
\release.kr(1.0)),
gate,
// doneAction: Done.freeSelf
);
/* Ambient-friendly modulable buffer granulator */
SynthDef(\grainoo, { |buf, gate=1|
var sig, env, trig, pos, rate;
// nonzero attack
env = EnvGen.ar(Env.asr(\attack.kr(0.05), 1.0, \release.kr(3.0)), gate, doneAction: 2);
trig = Impulse.kr(\trig_rate.kr(18));
// Smooth discontinuous control changes
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(
numChannels: 2,
trigger: Impulse.ar(\trig_rate.kr(20)),
dur: \gdur.kr(0.5),
trigger: trig,
dur: \gdur.kr(0.18),
sndbuf: buf,
rate: \rate.kr(0.5) * (0.01 + env),
pos: \gpos.kr(0),
pan: \gpan.kr(0),
rate: rate,
pos: pos,
pan: \gpan.kr(0)
);
sig = RLPF.ar(sig, \ff.kr(6000), \rq.kr(1));
sig = sig * env;
sig = sig * \amp.kr(1);
sig = Limiter.ar(sig);
sig = BLowPass4.ar(sig, \ff.kr(3800), \rq.kr(0.9));
sig = LPF.ar(sig, \aircut.kr(6500));
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);
}).add;