From 2e38f0ed7e5741ec7856a2ff120d7176ad1ab251 Mon Sep 17 00:00:00 2001 From: Leo Coogan Date: Wed, 9 Apr 2025 11:13:38 -0400 Subject: [PATCH] becoming satisfactory, missing the right noise blend --- aphex_twin_rhubarb_EF.scd | 93 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 aphex_twin_rhubarb_EF.scd diff --git a/aphex_twin_rhubarb_EF.scd b/aphex_twin_rhubarb_EF.scd new file mode 100644 index 0000000..183e72b --- /dev/null +++ b/aphex_twin_rhubarb_EF.scd @@ -0,0 +1,93 @@ +( +s.waitForBoot({ + + s.newBusAllocators; + ~revbus = Bus.audio(s, 2); + + SynthDef(\rhubarb, { + var bn, pn, osc, sig, env, freq = \freq.ir(440); + bn = Crackle.ar(1!4); + bn = LPF.ar(bn, 10); // Low-pass filter to reduce high frequencies + bn = GlitchBPF.ar(bn, freq * {Rand(-0.1, 0.1).midiratio}.dup(4), \rq.ir(0.01), 24); + osc = LFSaw.ar(freq * {Rand(-0.1, 0.1).midiratio}.dup(4), {Rand(0.48, 0.52)}.dup(4)); + osc = LPF.ar(osc, (freq * 2).clip(20, 20000)); + osc = osc * LFDNoise3.kr(0.1!4).exprange(1.1, 1.5); + osc = Fold.ar(osc, -20, 20); + osc = LPF.ar(osc, 400).tanh(20) * 0.12; + env = Env.asr(\atk.kr(0.35), \dec.kr(3), \sus.kr(1), \rel.kr(2), \crv.ir(-2)).ar(2, \gate.kr(1)); + sig = bn + osc + PinkNoise.ar(0.015!4 * LFDNoise3.kr(1).exprange(0.35, 1)); + sig = sig * LFDNoise3.kr(0.1!4).exprange(1.1, 1.2); + sig = Splay.ar(sig, spread:10); + sig = sig.tanh * \amp.ir(0.25); + + /*sig = sig + BPF.ar(sig, 400, 0.3, 1, 0); + sig = sig + GlitchBPF.ar(sig, 400, 1, 1, 0) * 0.1;*/ + + sig = sig + CombL.ar(sig, maxdelaytime:0.2, delaytime:0.2, decaytime: 1.0) * 0.4; + + sig = sig * env; + Out.ar(\out.ir(0), sig); + }).add; + + SynthDef(\reverb, { + var sig, verb; + sig = In.ar(\in.ir(~revbus), 2); + verb = GVerb.ar(sig.sum, 299, 1); + // verb = JPverb.ar(verb, 299, 1); + verb = JPverb.ar(verb, t60: 2.0, damp: 0.0, size: 3.0, earlyDiff: 0.1, modDepth: 0, modFreq: 1.0, low: 1.0, mid: 1.0, high: 1.0, lowcut: 500.0, highcut: 2000.0); + verb = LPF.ar(verb, \lpf.ir(12500), \amp.ir(0.2)); + sig = sig.blend(verb, \mix.kr(0.8)); + Out.ar(\out.ir(0), sig); + }).add; + + s.sync; + + ~rev = Synth(\reverb, [in: ~revbus, out: 0], s, \addAfter); + + t = TempoClock(86/60); + + p = Pbind( + \instrument, \rhubarb, + \dur, Pseq([ 1.5, 4.5, 1.5, 1.5, 5 ], inf), + \sustain, Pkey(\dur), + \midinote, Pseq([ + [ 57, 62, 66 ], + [ 54, 57, 61 ], + [ 57, 61, 64 ], + [ 52, 56, 59 ], + Prand([[ 33, 50, 54, 57], [ 50, 54, 57 ]], 1), + ], inf), + \amp, 1, + \atk, Pwhite(0.2, 0.5), + \rel, Pexprand(1.2, 2.5), + \out, ~revbus + ).play(t) +}); +) + + + +( +SynthDef(\rhubarb, { + var bn, pn, osc, sig, env, freq = \freq.ir(440); + bn = BrownNoise.ar(0.02); // Subtle noise for warmth + bn = BPF.ar(bn, freq * {Rand(-0.1, 0.1).midiratio}.dup(4), \rq.ir(0.01), 8); + + osc = LFSaw.ar([freq, freq * 1.01, freq * 0.99], {Rand(0.48, 0.52)}.dup(3)); // Multiple detuned oscillators + + // Removed aggressive band-limiting for more high-end content + osc = osc * LFDNoise3.kr(0.1!4).exprange(1.1, 1.5); + osc = Fold.ar(osc, -1, 1); + osc = LPF.ar(osc, 2000, 0.4); // Analog-style low-pass filter with resonance + + env = Env.asr(\atk.kr(0.1), \sus.kr(1), \rel.kr(2), \crv.ir(-2)).ar(2, \gate.kr(1)); + + sig = bn + osc + PinkNoise.ar(0.015!4 * LFDNoise3.kr(1).exprange(0.35, 1)); + sig = sig * LFDNoise3.kr(0.1!4).exprange(1.1, 1.2); + sig = Splay.ar(sig); + sig = sig.tanh * 0.15; // Subtle distortion for warmth + sig = sig * env; + + Out.ar(\out.ir(0), sig); +}).add; +) \ No newline at end of file