From fe9db9250acc1649337daffd889f78d6a4b0200a Mon Sep 17 00:00:00 2001 From: Leo Coogan Date: Tue, 20 May 2025 14:03:26 -0400 Subject: [PATCH] new --- additive_and_fourier.scd | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 additive_and_fourier.scd diff --git a/additive_and_fourier.scd b/additive_and_fourier.scd new file mode 100644 index 0000000..555ba18 --- /dev/null +++ b/additive_and_fourier.scd @@ -0,0 +1,33 @@ +( +{ + var baseFreq = 100; + var numHarmonics = 10; + var amps = Array.fill(numHarmonics, { |i| 1 / (i + 1) }); // amplitude falloff + var freqs = Array.fill(numHarmonics, { |i| + baseFreq * (i + 1) * (1 + 0.1 * SinOsc.kr(0.1 * (i + 1))) + }); // slight modulation of harmonic frequencies + + var sines = Mix.fill(numHarmonics, { |i| + SinOsc.ar(freqs[i], 0, amps[i]) + }); + + sines * 0.2 +}.play; +) + + + +// Additive synthesis with arbitrary frequencies +{ Mix.ar([400, 450, 503].collect { |freq| LFTri.ar(freq, 0, 0.1) }).dup }.play; + + +// Fourier-style additive synthesis: harmonic series +( +{ + var f0 = 100; + var harmonics = Array.fill(10, { |i| + SinOsc.ar(f0 * (i + 1), 0, 0.1 / (i + 1)) + }); + Mix(harmonics) +}.play; +)