2_oscillator_synthdefs.scd 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. // Basic oscillator SynthDefs
  2. (
  3. // Pure sine tone
  4. SynthDef(\sineTone, { |out=0, freq=440, amp=0.1, pan=0, attack=0.01, release=1|
  5. var sig, env;
  6. env = EnvGen.kr(Env.perc(attack, release), doneAction: 2);
  7. sig = SinOsc.ar(freq) * env * amp;
  8. Out.ar(out, Pan2.ar(sig, pan));
  9. }).add;
  10. // Square wave tone
  11. SynthDef(\squareTone, { |out=0, freq=440, amp=0.1, pan=0, attack=0.01, release=1, width=0.5|
  12. var sig, env;
  13. env = EnvGen.kr(Env.perc(attack, release), doneAction: 2);
  14. sig = Pulse.ar(freq, width) * env * amp;
  15. Out.ar(out, Pan2.ar(sig, pan));
  16. }).add;
  17. // Sawtooth wave tone
  18. SynthDef(\sawTone, { |out=0, freq=440, amp=0.1, pan=0, attack=0.01, release=1|
  19. var sig, env;
  20. env = EnvGen.kr(Env.perc(attack, release), doneAction: 2);
  21. sig = Saw.ar(freq) * env * amp;
  22. Out.ar(out, Pan2.ar(sig, pan));
  23. }).add;
  24. // Triangle wave tone
  25. SynthDef(\triTone, { |out=0, freq=440, amp=0.1, pan=0, attack=0.01, release=1|
  26. var sig, env;
  27. env = EnvGen.kr(Env.perc(attack, release), doneAction: 2);
  28. sig = LFTri.ar(freq) * env * amp;
  29. Out.ar(out, Pan2.ar(sig, pan));
  30. }).add;
  31. // FM synthesis tone
  32. SynthDef(\fmTone, { |out=0, freq=440, amp=0.1, pan=0, attack=0.01, release=1, modRatio=2, modAmt=0.5|
  33. var sig, env, mod;
  34. env = EnvGen.kr(Env.perc(attack, release), doneAction: 2);
  35. mod = SinOsc.ar(freq * modRatio, 0, freq * modAmt);
  36. sig = SinOsc.ar(freq + mod) * env * amp;
  37. Out.ar(out, Pan2.ar(sig, pan));
  38. }).add;
  39. "Oscillator SynthDefs loaded".postln;
  40. )