From 35e87299e76ec8df542ec137a7ae6a02d1e44911 Mon Sep 17 00:00:00 2001 From: iyeanur6-cyber Date: Sat, 27 Jun 2026 01:00:02 +0530 Subject: [PATCH 1/4] Create Goose.sc --- src/Goose.sc | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 src/Goose.sc diff --git a/src/Goose.sc b/src/Goose.sc new file mode 100644 index 00000000..4fa87e96 --- /dev/null +++ b/src/Goose.sc @@ -0,0 +1,36 @@ +Goose { + *honk { + var play; + play = { + Mix.fill(74, { + |i| + var osc, env, freq, detune, pan; + detune = rrand(-15.0, 15.0); + freq = 350 + detune + (i * 0.2); + osc = Saw.ar(freq) * Pulse.ar(freq * 0.5, 0.35); + osc = BPF.ar(osc, XLine.kr(rrand(800, 1200), rrand(400, 600), 0.15), 0.3); + env = EnvGen.ar(Env([0, 1, 0.6, 0], [0.01, 0.08, 0.12], [2, -2, -4]), doneAction: 2); + pan = rrand(-0.8, 0.8); + Pan2.ar(osc * env * 0.08, pan); + }); + }; + ^play.play; + } + + *honkify { + arg inputSignal; + var fftSize, hopSize, windowType, chain, pitch, hasPitch, noise, synth; + fftSize = 2048; + hopSize = 0.25; + windowType = 1; + # pitch, hasPitch = Pitch.kr(inputSignal, initFreq: 440, minFreq: 60, maxFreq: 2000, ampThreshold: 0.02); + chain = FFT(LocalBuf(fftSize), inputSignal, hopSize, windowType); + chain = PV_MagSmudge(chain, 1.2); + chain = PV_BrickWall(chain, 0.85); + noise = WhiteNoise.ar(0.03) * LPF.ar(Dust.ar(800), pitch * 1.5); + synth = IFFT(chain) * 0.7; + synth = synth + noise; + synth = BPF.ar(synth, pitch * 2.5, 0.4) * hasPitch; + ^synth; + } +} From 33e4bc0c35cb2b5ee4ce7e88693ee293acdf4863 Mon Sep 17 00:00:00 2001 From: iyeanur6-cyber Date: Sat, 27 Jun 2026 02:19:26 +0530 Subject: [PATCH 2/4] Update Goose.sc --- src/Goose.sc | 51 +++++++++++++++++++++------------------------------ 1 file changed, 21 insertions(+), 30 deletions(-) diff --git a/src/Goose.sc b/src/Goose.sc index 4fa87e96..723c5a64 100644 --- a/src/Goose.sc +++ b/src/Goose.sc @@ -1,36 +1,27 @@ Goose { *honk { - var play; - play = { - Mix.fill(74, { - |i| - var osc, env, freq, detune, pan; - detune = rrand(-15.0, 15.0); - freq = 350 + detune + (i * 0.2); - osc = Saw.ar(freq) * Pulse.ar(freq * 0.5, 0.35); - osc = BPF.ar(osc, XLine.kr(rrand(800, 1200), rrand(400, 600), 0.15), 0.3); - env = EnvGen.ar(Env([0, 1, 0.6, 0], [0.01, 0.08, 0.12], [2, -2, -4]), doneAction: 2); - pan = rrand(-0.8, 0.8); - Pan2.ar(osc * env * 0.08, pan); - }); - }; - ^play.play; + var synths = Array.fill(74, { + { + var freq = Expressing.rand(400, 750) * LFNoise1.kr(Expressing.rand(8, 15)).range(0.92, 1.08); + var form = freq * Expressing.rand(1.8, 2.5); + var bw = Expressing.rand(150, 300); + var env = EnvGen.ar(Env.new([0, 1, 0.8, 0], [0.03, 0.08, Expressing.rand(0.1, 0.25)], \sine), doneAction: 2); + var sig = Formant.ar(freq, form, bw); + var noise = BPF.ar(WhiteNoise.ar(), freq, 0.3) * EnvGen.ar(Env.perc(0.01, 0.05)); + (sig + noise) * env * 0.012; + }.play; + }); + ^synths; } - *honkify { - arg inputSignal; - var fftSize, hopSize, windowType, chain, pitch, hasPitch, noise, synth; - fftSize = 2048; - hopSize = 0.25; - windowType = 1; - # pitch, hasPitch = Pitch.kr(inputSignal, initFreq: 440, minFreq: 60, maxFreq: 2000, ampThreshold: 0.02); - chain = FFT(LocalBuf(fftSize), inputSignal, hopSize, windowType); - chain = PV_MagSmudge(chain, 1.2); - chain = PV_BrickWall(chain, 0.85); - noise = WhiteNoise.ar(0.03) * LPF.ar(Dust.ar(800), pitch * 1.5); - synth = IFFT(chain) * 0.7; - synth = synth + noise; - synth = BPF.ar(synth, pitch * 2.5, 0.4) * hasPitch; - ^synth; + *honkify { |audioIn| + var chain, noiseProfile, morph; + chain = FFT(LocalBuf(2048), audioIn); + noiseProfile = LFNoise2.kr(12).range(0.4, 1.6); + chain = PV_MagSqrt(chain); + chain = PV_MagShift(chain, 1.15, 40); + chain = PV_RectComb(chain, 8, 0.1, noiseProfile); + morph = IFFT(chain); + ^morph * 1.3; } } From bbcffecb8f7c637401fc30eb855dcfb7262a707d Mon Sep 17 00:00:00 2001 From: iyeanur6-cyber Date: Sat, 27 Jun 2026 08:47:34 +0530 Subject: [PATCH 3/4] Update Goose.sc --- src/Goose.sc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Goose.sc b/src/Goose.sc index 723c5a64..f4cbd71f 100644 --- a/src/Goose.sc +++ b/src/Goose.sc @@ -2,10 +2,10 @@ Goose { *honk { var synths = Array.fill(74, { { - var freq = Expressing.rand(400, 750) * LFNoise1.kr(Expressing.rand(8, 15)).range(0.92, 1.08); - var form = freq * Expressing.rand(1.8, 2.5); - var bw = Expressing.rand(150, 300); - var env = EnvGen.ar(Env.new([0, 1, 0.8, 0], [0.03, 0.08, Expressing.rand(0.1, 0.25)], \sine), doneAction: 2); + var freq = ExpRand(400, 750) * LFNoise1.kr(ExpRand(8, 15)).range(0.92, 1.08); + var form = freq * ExpRand(1.8, 2.5); + var bw = ExpRand(150, 300); + var env = EnvGen.ar(Env.new([0, 1, 0.8, 0], [0.03, 0.08, ExpRand(0.1, 0.25)], \sine), doneAction: 2); var sig = Formant.ar(freq, form, bw); var noise = BPF.ar(WhiteNoise.ar(), freq, 0.3) * EnvGen.ar(Env.perc(0.01, 0.05)); (sig + noise) * env * 0.012; From f8a04bbaa76c39c9e2cd704a9eb99e9905e79d80 Mon Sep 17 00:00:00 2001 From: iyeanur6-cyber Date: Sat, 27 Jun 2026 16:24:42 +0530 Subject: [PATCH 4/4] Update Goose.sc --- src/Goose.sc | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/Goose.sc b/src/Goose.sc index f4cbd71f..75f5d21e 100644 --- a/src/Goose.sc +++ b/src/Goose.sc @@ -2,13 +2,16 @@ Goose { *honk { var synths = Array.fill(74, { { - var freq = ExpRand(400, 750) * LFNoise1.kr(ExpRand(8, 15)).range(0.92, 1.08); - var form = freq * ExpRand(1.8, 2.5); - var bw = ExpRand(150, 300); - var env = EnvGen.ar(Env.new([0, 1, 0.8, 0], [0.03, 0.08, ExpRand(0.1, 0.25)], \sine), doneAction: 2); - var sig = Formant.ar(freq, form, bw); - var noise = BPF.ar(WhiteNoise.ar(), freq, 0.3) * EnvGen.ar(Env.perc(0.01, 0.05)); - (sig + noise) * env * 0.012; + var modFreq = ExpRand(120, 350); + var index = ExpRand(2, 6) * LFNoise1.kr(ExpRand(5, 12)).range(0.5, 1.5); + var modSig = SinOsc.ar(modFreq) * modFreq * index; + var carFreq = (ExpRand(350, 680) + modSig) * LFNoise2.kr(ExpRand(6, 15)).range(0.95, 1.05); + var env = EnvGen.ar(Env.new([0, 1, 0.7, 0.4, 0], [0.02, 0.05, 0.1, ExpRand(0.08, 0.2)], \sine), doneAction: 2); + var carSig = LFSaw.ar(carFreq); + var shaper = (carSig * ExpRand(1.5, 3.5)).tanh; + var finalSig = BPF.ar(shaper, carFreq * ExpRand(1.2, 2.2), 0.25); + var transient = HPF.ar(WhiteNoise.ar(), 2000) * EnvGen.ar(Env.perc(0.005, 0.03)); + (finalSig + transient) * env * 0.01; }.play; }); ^synths;