SuperCollider code for 8-channel composition exhibited in 2020 at Steklenik gallery run by CONA institute.
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.

155 lines
3.0 KiB

  1. ( // latoocarfian trig and 2DC ...
  2. SynthDef(\latooTriggers, { |out, trigA=1.1, gate=1, fadeTime=1, amp=0.5|
  3. var trig, sig, env;
  4. trig = LatoocarfianTrig.kr(
  5. minfreq: 4,
  6. maxfreq: 12,
  7. //a: [1.1,1.9] // or 1.9?
  8. a: trigA
  9. );
  10. sig = Latoocarfian2DC.ar(
  11. minfreq: 420,
  12. maxfreq: 8200,
  13. a: Lag.kr(TRand.kr(0.4, 0.8, trig), 0.1),
  14. b: Lag.kr(TRand.kr(2.0, 3.0, trig), 0.1),
  15. //d:[1.0, 1.1]
  16. d:1.1
  17. );
  18. sig = (sig.cubed * 2).tanh;
  19. sig = sig + (BrownNoise.ar() * 0.1);
  20. sig = Ringz.ar(in:sig, freq: LFNoise2.kr(2).exprange(50,15000), decaytime: 0.02)*0.1;
  21. sig = (sig*0.4).fold2(0.9) + sig.excess(0.5).clip2(0.9); //!!
  22. sig = sig * Latch.kr(trig, trig);
  23. /* sig = sig + JPverb.ar(
  24. in: sig * 0.2,
  25. t60: LFNoise2.ar(0.4).range(0.2,3),
  26. damp:0.8,
  27. modDepth:0.3,
  28. modFreq:10); */
  29. sig = LeakDC.ar(sig * 0.6);
  30. env = EnvGen.kr(
  31. Env([0, 1, 0], [fadeTime, fadeTime], \sin, 1),
  32. gate, doneAction: Done.freeSelf);
  33. sig = sig * env * amp;
  34. Out.ar(out,sig);
  35. }).add;
  36. );
  37. ( // LatoocarfianC being thrown around
  38. SynthDef(\latooThroBass, {
  39. arg out, amp=0.5;
  40. // wandering latoocarfian into variable 'freq':
  41. var freq = LatoocarfianC.ar(
  42. 30,
  43. // randomize parameters:
  44. LFNoise2.kr(0.1,1.5,1.5),
  45. LFNoise2.kr(0.4,1.5,1.5),
  46. LFNoise2.kr(0.3,0.5,1.5),
  47. LFNoise2.kr(0.2,0.5,1.5)
  48. ).range(40,130);
  49. // wandering latoocarfian applied as frequency to squarewave:
  50. var sig = Mix(Pulse.ar([freq,freq*0.99]));
  51. // adding sinwave for more clean deep sound
  52. sig = sig + Mix(SinOsc.ar([freq*0.998,freq*0.995]));
  53. // pinch of simple fold distortion
  54. sig = sig.fold(-1,1);
  55. // low pass filter to give sense of closing and opening
  56. sig = LPF.ar(sig, LFNoise2.kr(1).exprange(50,15000));
  57. // add space. lots of space
  58. //sig = sig * 0.4 + Greyhole.ar(sig * 0.4, delayTime:0.4, damp: 0.3, diff: 0.6, feedback:0.5,);
  59. sig = sig * amp;
  60. Out.ar(out,sig);
  61. }).add;
  62. );
  63. ( // LatoocarfianC being thrown around
  64. SynthDef(\latooWanderings, {
  65. arg out = 0, gate = 1, fadeTime = 1, amp = 0.9;
  66. // a fade-in/out envelope
  67. var env = EnvGen.kr( Env([0, 1, 0], [fadeTime, fadeTime], \sin, 1),
  68. gate, levelScale: amp, doneAction: Done.freeSelf );
  69. // wandering latoocarfian into variable 'freq':
  70. var freq = LatoocarfianC.ar(
  71. freq: 30,
  72. // randomize parameters:
  73. a: LFNoise2.kr(0.1,1.5,1.5),
  74. b: LFNoise2.kr(0.4,1.5,1.5),
  75. c: LFNoise2.kr(0.3,0.5,1.5),
  76. d: LFNoise2.kr(0.2,0.5,1.5)
  77. ).range(40,130);
  78. // wandering latoocarfian applied as frequency to squarewave:
  79. var sig = Pulse.ar(freq * LFNoise2.kr(0.1).range(0.99,1.01));
  80. // adding sinwave for more clean deep sound
  81. //sig = sig + SinOsc.ar([freq*0.998,freq*0.995]);
  82. sig = sig + SinOsc.ar(freq * LFNoise2.kr(0.1).range(0.99,1.01));
  83. // pinch of simple fold distortion
  84. sig = sig.fold2(0.9);
  85. // low pass filter to give sense of closing and opening
  86. sig = LPF.ar(sig, LFNoise2.kr(1).exprange(50,15000));
  87. // add space. lots of space
  88. // sig = sig * 0.4 + Greyhole.ar(sig * 0.4, delayTime:0.4, damp: 0.3, diff: 0.6, feedback:0.5,);
  89. sig = sig * env;
  90. Out.ar(out, sig);
  91. }).add;
  92. );