how to better write jean claude risset/karlheinz stockhausen style code
/*
author: Tiago Morais Morgado
language: sc3.13
date: 28-1-23
*/
// Strukture Generator - WIP sound for kodenaam piece "kataclismo metastásico"
s.options.memSize=2**20; s.reboot;
(
~meinenKloud={Mix.fill(16,{
var mouseATrig=MouseX.kr(0.1,100); var mouseBTrig=MouseY.kr(0.1,100);
var mouseADur=MouseX.kr(0.1,10); var mouseBDur=MouseY.kr(0.1,10);
var mouseAFreq=MouseX.kr(0.1,10); var mouseBFreq=MouseY.kr(0.1,10);
var num1=3.14; var num2=3.14*0.5;
var loNum=0.125; var hiNum=8;
var tendencyMask1=XLine.kr(start:0.5,end:50,dur:300,mul:1,doneAction:2);
var tendencyMask2=XLine.kr(start:0.25,end:25,dur:600,mul:1);
var tendencyMask3=XLine.kr(start:0.125,end:12.5,dur:900,mul:1);
var modRate1=TRand.kr(lo:num2,hi:num1,trig:Impulse.kr(freq:TRand.kr(lo:num2,hi:num1,trig:Impulse.kr(num2))));
var modRate2=TRand.kr(lo:num2,hi:num1,trig:Impulse.kr(freq:TRand.kr(lo:num2,hi:num1,trig:Impulse.kr(num2))));
var modRate3=TRand.kr(lo:num2,hi:num1,trig:Impulse.kr(freq:TRand.kr(lo:num2,hi:num1,trig:Impulse.kr(num2))));
var lo1TM=loNum*tendencyMask1; var lo2TM=loNum*tendencyMask2; var lo3TM=loNum*tendencyMask3;
var hi1TM=loNum*tendencyMask1; var hi2TM=loNum*tendencyMask2; var hi3TM=loNum*tendencyMask3;
var mrTM1=modRate1*tendencyMask1; var mrTM2=modRate2*tendencyMask2; var mrTM3=modRate3*tendencyMask3;
var mod1_1=TRand.kr(lo:lo1TM,hi:hi1TM,trig:Impulse.kr(freq:mrTM1));
var mod2_1=TRand.kr(lo:lo2TM,hi:hi2TM,trig:Impulse.kr(freq:mrTM2));
var mod3_1=TRand.kr(lo:lo3TM,hi:hi3TM,trig:Impulse.kr(freq:mrTM3));
var mod1_2=TRand.kr(lo:lo1TM,hi:hi1TM,trig:Impulse.kr(freq:mrTM1));
var mod2_2=TRand.kr(lo:lo2TM,hi:hi2TM,trig:Impulse.kr(freq:mrTM2));
var mod3_2=TRand.kr(lo:lo3TM,hi:hi3TM,trig:Impulse.kr(freq:mrTM3));
var dur1=rrand(0.25,4)*mod1_1*[mouseADur,mouseBDur].choose;
var triggerRate1=rrand(0.25,4)*mod1_2*[mouseATrig,mouseBTrig].choose;
var dur2=rrand(0.25,4)*mod2_1*[mouseADur,mouseBDur].choose;
var triggerRate2=rrand(0.25,4)*mod2_2*[mouseATrig,mouseBTrig].choose;
var dur3=rrand(0.25,4)*mod3_1*[mouseADur,mouseBDur].choose;
var triggerRate3=rrand(0.25,4)*mod3_2*[mouseATrig,mouseBTrig].choose;
var freqMulMouse1=[mouseAFreq,mouseBFreq].choose;
var freqMulMouse2=[mouseAFreq,mouseBFreq].choose;
var freqMulMouse3=[mouseAFreq,mouseBFreq].choose;
var sig1 = GrainFM.ar(
numChannels: 2,
trigger: Impulse.ar(freq:triggerRate1),
dur:dur1,
carfreq:TRand.ar(lo:2200*freqMulMouse1,hi:8800*freqMulMouse1,
trig:Impulse.ar(freq:triggerRate1))+[0,rrand(-1,1)],
modfreq:TRand.ar(lo:2200*freqMulMouse1,hi:8800*freqMulMouse1,
trig:Impulse.ar(freq:triggerRate1))+[0,rrand(-1,1)],
index: 1,
pan: WhiteNoise.ar(amp:0.6),
envbufnum:-1,
maxGrains: 2,
mul:0.1);
var sig2 = GrainFM.ar(
numChannels: 2,
trigger: Impulse.ar(freq:triggerRate2),
dur:dur2,
carfreq:TRand.ar(lo:220*freqMulMouse2,hi:880*freqMulMouse2,
trig:Impulse.ar(freq:triggerRate2))+[0,rrand(-1,1)],
modfreq:TRand.ar(lo:220*freqMulMouse2,hi:880*freqMulMouse2,
trig:Impulse.ar(freq:triggerRate2))+[0,rrand(-1,1)],
index: 1,
pan: WhiteNoise.ar(amp:0.6),
envbufnum:-1,
maxGrains: 2,
mul:0.1);
var sig3 = GrainFM.ar(
numChannels: 2,
trigger: Impulse.ar(freq:triggerRate3),
dur:dur3*mod3_1,
carfreq:TRand.ar(lo:22*freqMulMouse3,hi:88*freqMulMouse3,
trig:Impulse.ar(freq:triggerRate3))+[0,rrand(-1,1)],
modfreq:TRand.ar(lo:22*freqMulMouse3,hi:88*freqMulMouse3,
trig:Impulse.ar(freq:triggerRate3))+[0,rrand(-1,1)],
index: 1,
pan: WhiteNoise.ar(0.6),
envbufnum:-1,
maxGrains: 2,
mul:0.1);
var dry = sig1+sig2+sig3;
var rev = FreeVerb.ar(in:dry);
var del = CombC.ar(in:dry);
var out = del+rev+dry;
out = out * 0.3;
out;
})}.play;
)
))