From bfc4f81bddd6092b183bc4644b574ff716722f7d Mon Sep 17 00:00:00 2001 From: adminoo Date: Sun, 11 Jan 2026 11:15:57 +0100 Subject: [PATCH] feat: pad chords, granulator --- examples/pad_chords.scd | 2 +- synthdefs/granulator.scd | 18 ++++++++++++++---- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/examples/pad_chords.scd b/examples/pad_chords.scd index 7c824aa..afdc684 100644 --- a/examples/pad_chords.scd +++ b/examples/pad_chords.scd @@ -17,7 +17,7 @@ r { \padoo, rel, (40 + deg).midicps, - [ff: 2200, attack: rel, decay: 1, release: rel, vibrato: 0.2, amp: 0.3, gate: 1] + [ff: 3200, attack: rel, decay: 1, release: rel, vibrato: 2, amp: 0.3, gate: 1] ); (rrand(0.25, 1) + rel).wait; }); diff --git a/synthdefs/granulator.scd b/synthdefs/granulator.scd index 84faa32..9f3f180 100644 --- a/synthdefs/granulator.scd +++ b/synthdefs/granulator.scd @@ -1,17 +1,27 @@ /* Generic modulable buffer granulator */ SynthDef(\grainoo, { - |buf| - var sig; + |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 + ); sig = GrainBuf.ar( numChannels: 2, trigger: Impulse.ar(\trig_rate.kr(20)), dur: \gdur.kr(0.5), sndbuf: buf, + rate: \rate.kr(0.5) * (0.01 + env), pos: \gpos.kr(0), - rate: \rate.kr(0.5).lag(1), + pan: \gpan.kr(0), + ); sig = RLPF.ar(sig, \ff.kr(6000), \rq.kr(1)); - sig = Pan2.ar(sig, LFNoise0.ar(0.5)); + sig = sig * env; sig = sig * \amp.kr(1); sig = Limiter.ar(sig); Out.ar(\out.kr(0), sig);