You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
35 lines
927 B
Plaintext
35 lines
927 B
Plaintext
(
|
|
SynthDef(\junoPad, {
|
|
arg gate=1, freq=220, atk=4, sus=2, rel=6, amp=0.3;
|
|
var sig, env, freqs, lfo, chorus, modRate, modDepth;
|
|
|
|
// Slightly detuned saw waves
|
|
freqs = freq * [1, 1.01, 0.99]; // Small detune
|
|
sig = Mix(Saw.ar(freqs)); // Stack saw waves
|
|
|
|
// LFO to slowly move filter cutoff
|
|
lfo = SinOsc.kr(0.1).range(500, 2000);
|
|
sig = RLPF.ar(sig, lfo, 0.3); // Low-pass filter with modulation
|
|
.
|
|
// Envelope for smooth rise
|
|
env = EnvGen.kr(Env.asr(atk, 1, rel), gate, doneAction:2);
|
|
sig = sig * env * amp;
|
|
|
|
// Chorus effect (emulates Juno-chorus)
|
|
modRate = [0.3, 0.4]; // Two different modulation rates
|
|
modDepth = 0.01; // Small pitch variation
|
|
chorus = sig + DelayC.ar(sig, 0.02, SinOsc.kr(modRate).range(0, modDepth));
|
|
|
|
// Reverb for space
|
|
// sig = FreeVerb.ar(chorus, mix: 0.5, room: 0.8, damp: 0.5);
|
|
|
|
sig = sig * chorus;
|
|
|
|
Out.ar(0, sig);
|
|
}).play;
|
|
)
|
|
|
|
|
|
|
|
|