| 12345678910111213141516171819202122232425262728293031323334 |
- (
- // Low Frequency Oscillator for parameter modulation
- SynthDef(\lfo, { |out=0, freq=1, min=0, max=1, waveform=0|
- var lfo;
- // Select waveform based on parameter
- lfo = Select.kr(waveform, [
- SinOsc.kr(freq), // Sine wave (waveform=0)
- LFTri.kr(freq), // Triangle wave (waveform=1)
- LFSaw.kr(freq, 0, -1), // Decreasing sawtooth wave (waveform=2)
- LFPulse.kr(freq, 0, 0.5) // Square wave (waveform=3)
- ]);
- // Scale to range
- lfo = lfo.range(min, max);
- // Output to control bus
- Out.kr(out, lfo);
- }).add;
- // ADSR envelope generator
- SynthDef(\envelope, { |out=0, gate=1, attack=0.01, decay=0.3, sustain=0.5, release=1|
- var env = EnvGen.kr(
- Env.adsr(attack, decay, sustain, release),
- gate,
- );
- Out.kr(out, env);
- }).add;
- "Modulation SynthDefs loaded".postln;
- )
|