From 2062b8d5df867f21b2586f46c05ad45e938dca28 Mon Sep 17 00:00:00 2001 From: Eugene Petkevich Date: Sun, 5 Jun 2022 22:11:04 +0300 Subject: [PATCH] Add fiboorgan and jpverb --- startup.scd | 47 ++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 46 insertions(+), 1 deletion(-) diff --git a/startup.scd b/startup.scd index e3b2f34..06ed20d 100644 --- a/startup.scd +++ b/startup.scd @@ -15,6 +15,8 @@ MIDIIn.connectAll; // ==== Synths +// == Sources + // snare drum 808 continuous SynthDef(\buti, {|out=0, amp=1, pan=0, t_trig=0, accent=0.1, freq=200, tone=0.5, decay=0.5, snappy=0.5| var sig; @@ -85,16 +87,37 @@ SynthDef(\naje, { Out.ar(out, sig * amp); }).add; +// fibonacci organ +SynthDef.new(\neta, { arg freq = 440, amp = 1.0, gate = 1, out = 0; + var shape = Env.adsr(0.1, 0.2, 0.7, 0.5, 1.0, -4.0, 0); + var fb = 1.0; + var ss = SinOscFB.ar(freq, fb, amp) + + SinOscFB.ar(freq*2, fb, amp/2) + + SinOscFB.ar(freq*3, fb, amp/3) + + SinOscFB.ar(freq*5, fb, amp/5) + + SinOscFB.ar(freq*8, fb, amp/8) + + SinOscFB.ar(freq*13, fb, amp/13) + + SinOscFB.ar(freq*21, fb, amp/21) + + SinOscFB.ar(freq*34, fb, amp/34) + + SinOscFB.ar(freq*55, fb, amp/55) + ; + ss = [ss, DelayC.ar(ss, 0.005, 0.005)]; + ss = ss * 0.7; + ss = BLowPass4.ar(ss, Rand(1060, 1260)); + Out.ar(out, EnvGen.kr(shape, gate, doneAction: 2) * ss); +}).add; + // additive pulse synth SynthDef(\pope, {|out=0, gate=1, freq=440, amp=1, pan=0, doneAction=2| var sig = 0; var num = 30; + var panDelay = 0.005; num.do({ sig = sig + (LFPulse.ar(freq, Rand(0, 0.01), SinOsc.kr(SinOsc.kr(Rand(2, 8), 0, 2, 2), Rand(0, 2pi), 0.5, 0.5)) / num); }); sig = sig * EnvGen.kr(Env.asr(0.03, 0.3, 1.8), gate, doneAction: doneAction); sig = Pan2.ar(sig, pan, amp); - sig = [DelayN.ar(sig[0], 0.01, (0.01*pan).clip(0, 1)), DelayN.ar(sig[1], 0.01, (-0.01*pan).clip(0, 1))]; + sig = [DelayN.ar(sig[0], panDelay, (panDelay*pan).clip(0, 1)), DelayN.ar(sig[1], panDelay, (panDelay.neg*pan).clip(0, 1))]; Out.ar(out, sig); }).add; @@ -133,3 +156,25 @@ SynthDef(\ruse, { | gate = 1, freq = 55, amp=1, out=0 | sig = Pan2.ar(sig, 0); Out.ar(out, sig * amp); }).add; + +// == Effects + +// JPverb with all parameters and mix +SynthDef(\qahe, {|in, out=0, mix=0, t60=1.0, damp=0.0, size=1.0, earlyDiff=0.707, modDepth=0.1, modFreq=2.0, low=1.0, + mid=1.0, high=1.0, lowcut=500.0, highcut=2000.0| + var sig, rev; + sig = In.ar(in, 2); + rev = JPverb.ar(sig, + t60: t60, + damp: damp, + size: size, + earlyDiff: earlyDiff, + modDepth: modDepth, + modFreq: modFreq, + low: low, + mid: mid, + high: high, + lowcut: lowcut, + highcut: highcut); + Out.ar(out, sig + (mix * rev)); +}).add; -- 2.17.1