From 84aae5aa845a362e19e5ec914295ab6e7ed343bf Mon Sep 17 00:00:00 2001 From: Leo Coogan Date: Mon, 14 Apr 2025 22:17:52 -0400 Subject: [PATCH] added springverb & rearranged effects --- dubecho.scd => effects/dubecho.scd | 0 effects/springverb.scd | 44 ++++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+) rename dubecho.scd => effects/dubecho.scd (100%) create mode 100644 effects/springverb.scd diff --git a/dubecho.scd b/effects/dubecho.scd similarity index 100% rename from dubecho.scd rename to effects/dubecho.scd diff --git a/effects/springverb.scd b/effects/springverb.scd new file mode 100644 index 0000000..d03d2ae --- /dev/null +++ b/effects/springverb.scd @@ -0,0 +1,44 @@ +b = Buffer.read(s, "/home/lcoogan/snd/demos/springverb.wav") + +( +{ + PlayBuf.ar(1, b!2, 1, loop: 1) * 0.3 +}.play; +) + +( +SynthDef(\springverb, { |length = 1, fb = 0.8, sep = 0.012| + var input = In.ar(0, 2); + var output = input + Fb({ |feedback| + + var left, right, spring, magic; + magic = LeakDC.ar(feedback * fb + input); + magic = HPF.ar(magic, 400); + magic = LPF.ar(magic, 5000); + magic = magic.tanh; + + // Simulate spring reverb inside the feedback loop + spring = CombL.ar(magic, 0.1, 0.03, 1.5); // short decay, boingy + spring = AllpassL.ar(spring, 0.1, [0.022, 0.027], 1.5); + magic = magic + spring * 0.4; // mix in some splash + + #left, right = magic; + magic = [ + DelayC.ar(left, 1, LFNoise2.ar(12).range(0, sep)), + DelayC.ar(right, 1, LFNoise2.ar(12).range(sep, 0)) + ]; + + }, length); + ReplaceOut.ar(0, output); +}).store; +) + +( +~springverb = Synth(\springverb, [ + \length, TempoClock.default.tempo * (3/8), + \fb, 0.1, + \sep, 0.0014 +], addAction: \addToTail); +) + +