A place to dump little or mid-sized snippets of SuperCollider code.
You can not 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
1.0KB

  1. ( // basic synth SynthDef
  2. SynthDef(\blipo, { | out, freq = 440, amp = 0.1, nharms = 10, pan = 0, gate = 1, sustain |
  3. var audio = Blip.ar(freq * (SinOsc.kr(3).range(1,1.01)), nharms, amp);
  4. var env = Linen.kr(gate, releaseTime: sustain, doneAction: Done.freeSelf);
  5. OffsetOut.ar(out, Pan2.ar(audio, pan, env) );
  6. }).add;
  7. // reverb effect SynthDef
  8. SynthDef("reverbo", { arg outBus = 0, inBus, wet = 0.1;
  9. var input = In.ar(inBus,2);
  10. var rev = JPverb.ar(input * wet, t60:6, damp:0.5);
  11. Out.ar(outBus, input + (rev));
  12. }).add;
  13. )
  14. // create a 'private' 2-chan audio bus
  15. ~revbus = Bus.audio(s,2);
  16. (
  17. // start reverb effect on the private bus
  18. ~fxRev = Synth("reverbo", [\inBus, ~revbus, \wet, 0.6]);
  19. Pbind(
  20. \instrument, \blipo,
  21. \dur, Pflatten(1, Plorenz() * 0.8),
  22. \degree, (Pflatten(1, Plorenz()) * 18).asInteger,
  23. \mtranspose, Prand([Pn(0,24),Pn(2,24),Pn(4,24)], inf),
  24. \detune, Prand([0,1,2,0.5,1.5], inf),
  25. \nharms, Prand((2..10),300),
  26. \octave, 3,
  27. \legato, Prand((4..7),inf) * 0.2,
  28. \pan, Prand((-10..10),inf) * 0.1,
  29. \out, ~revbus
  30. ).play;
  31. )