| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- // Basic oscillator SynthDefs
- (
- // Pure sine tone
- SynthDef(\sineTone, { |out=0, freq=440, amp=0.1, pan=0, attack=0.01, release=1|
- var sig, env;
- env = EnvGen.kr(Env.perc(attack, release), doneAction: 2);
- sig = SinOsc.ar(freq) * env * amp;
- Out.ar(out, Pan2.ar(sig, pan));
- }).add;
- // Square wave tone
- SynthDef(\squareTone, { |out=0, freq=440, amp=0.1, pan=0, attack=0.01, release=1, width=0.5|
- var sig, env;
- env = EnvGen.kr(Env.perc(attack, release), doneAction: 2);
- sig = Pulse.ar(freq, width) * env * amp;
- Out.ar(out, Pan2.ar(sig, pan));
- }).add;
- // Sawtooth wave tone
- SynthDef(\sawTone, { |out=0, freq=440, amp=0.1, pan=0, attack=0.01, release=1|
- var sig, env;
- env = EnvGen.kr(Env.perc(attack, release), doneAction: 2);
- sig = Saw.ar(freq) * env * amp;
- Out.ar(out, Pan2.ar(sig, pan));
- }).add;
- // Triangle wave tone
- SynthDef(\triTone, { |out=0, freq=440, amp=0.1, pan=0, attack=0.01, release=1|
- var sig, env;
- env = EnvGen.kr(Env.perc(attack, release), doneAction: 2);
- sig = LFTri.ar(freq) * env * amp;
- Out.ar(out, Pan2.ar(sig, pan));
- }).add;
- // FM synthesis tone
- SynthDef(\fmTone, { |out=0, freq=440, amp=0.1, pan=0, attack=0.01, release=1, modRatio=2, modAmt=0.5|
- var sig, env, mod;
- env = EnvGen.kr(Env.perc(attack, release), doneAction: 2);
- mod = SinOsc.ar(freq * modRatio, 0, freq * modAmt);
- sig = SinOsc.ar(freq + mod) * env * amp;
- Out.ar(out, Pan2.ar(sig, pan));
- }).add;
- "Oscillator SynthDefs loaded".postln;
- )
|