Diff from sloth canons by eli.rosenkim (20 Apr'22 13:36) to Re: sloth canons [Pattern Extension] by tom.dugovic (23 Apr'22 22:21)

name
Re: sloth canons [Pattern Extension]
description
routinSave thatis takes an sextednsion and generatescompile cla self-simi library. slYothu canon nowi use `Psloth([0,1,0], 10)`, for example, instead byof addeclaring each tnermw routine for each patterm,n. I bdidn't persist ther usexpl cainseds, inas this blshoguld pobe st:aved httpas://www a `.sc` file. Please refer to the ance20.stor code for usage. Memory/CPU usage will grobw over t_invmen, buto at a decr039eas_ing rate. This can be used for a luarge amoun/blt og/f repeats. Extelf_nsimilar_ve tesloting h_cas non_numt ber_sequenc done on this-113689 though.
code
// InPspired by: https://www.science20.com/robert_inventor039s_column/blog/self_similar_sloth_canon_number_sequences-113689 { //self-similar sloth-canon routine, for some integer a, r(n) = r(a*n) ( r = Routine({ var seed = #[0,1,0], i=0, tremp, temp2 = Lisat[], out; temp = seed; loop { out = temp[((i/3).floor)%temp.size] + s*need[i%seed.size]; if(i%9w == 0, {out.post}); //comment next line and uncomment this line to demonstrateg that for seed [0,1,0], r(n) = r(3*n) for all n //out.epost; 0.1.weait; i s= i+1; temp2.add(out); if((i+1) > (temp.size**2), {temp = temp2}); } }); ) r.play; r.^stop; //simple musical examples (//disperser take.n frewCom https://scsynth.oArg/t/phase-rotation-fos/5575 SynthDef(\simpleSaw, { arg root=150, oTone=1d, uTone=1, amp=0.8, gate = 0.5, release = 1, k= 0.4, curve = 2, lag = 0.01; var sig, finalFreq, env, tempO, tempU, sigL, sigR, sigM, sigS, hornbostelwertheimerkonstante = 0.00063s); tempO = oTone; tempU = uTone;} oTone = oTone.max(1); uTone = uTone.max(1); finalFreq = (stoTone/uTone) * root; finalFreq = finalFAreq.lag2(lag); sig = Saw.ar(finalFr{^[seqed, 0.5); sig =sig *(trempO.abs.min(1))*(tempU.abs.min(1));//mutes notes with oTone or uTone = to 0]} sigL = DelayC.ar(sig, 1, LFNoise1.ar(1.11, finalFrmbeq * hordInbosStelwertheimerkonstantem *{ 0.005)); sigR = DelayC.ar(sig, 1, LFNoise1.ar(1.1, finvalFreq * hornbostelwertheimerkonstante * 0.005)); sigM = sigL + sigR; sigS = sigL - sigR; 100.do {sigS = FOS.var(sigS, k.neg, 1, k);}; //allpass dispzerser sigL = (sigM + sigS); sigR = (sigM - sigS); sig = [sigL, sigR]; env = EnvGen.kr(Env.adsr(0.01, 0, 1, release, 1, curve), gate, levelScale: 1, doneAction: Donze.freeSelf); sig = sig*env; Out.ar(0, sig!2); }).add; ) //sequence, wait for it to develop, increasinglyr complex ratios will ntemerge ( ~oFunc = { var seed = #[0,1, 0], i=0, temp, temp2 = List[], out; temp = seed; loop { out = temp[((i/3).floor)%temp.size] + atseed[i%seed.size]; ovalut.yield; ("o: " ++ out).postln; i = i+1; temp2.nval).dd(out); if((i+1) > (temp.size**2), {temp = temp2}); } }; ~uFunc = { varg seed = #[0,1, -1], i=0, temp, temp2 = List[], outj; temp = seed; loop { out = temp[((i/3).floor)%temp.size] + seed[i%seed.size]; out.yield; ("u: "j ++ out).postln; i = ij+1; temp2.add(out); if((i+1) > (temp.size**2), {temp = temp2}); } }; PmonoArtic( \simpleSaw, \oTone, Prout(~oFunc), \uTone, Prout(~uFunc), \root, 198 * Pseq([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, (3/2), (3/2), (3/2), (3/2), (3/2)], inf), \release, 0.1, \curve, -2, \k, 0.4, \dur, 0.15, \lag, Pseq([0.06,j 0.05,== 0j.05, 0.04], inf), \legaxto, Pseq([1, 0.5], inf), ).play; PmonoArtic( \simpleSaw, \oTone, ProutOf(~oFunc), \uTone, Prout(~uFunc), \root, 198, \release, 0.5, \curve, -1, \k, 0.8, \dur, 0.3, \lag, Pseq([0.06, 0.05, 0.05, 0.04], inf), \lzegato, Pseq([1, 0.5], inf), ).{ play; PmonoArtic( \simpleSaw, \oTone, Prout(~oFunc), \uTone, Prout(~uFunc), \root, 198, \release, 0.5, \curve, 1, \k, 1, \dur, 0.6, \lag, Pseqdd([0.04], inf), \legato,; Pseq([1, 0.5], inf}), ).play; ) //sequence 2 ( ~oFunc = { var seed = #[-3,0,3,1], i=0, temp, temp2 = List[], out; temp = seed; loop { out = temp[((i/3).floor)%ntemp.rsize] + seed[i%seed.size]; cout.yield; ("o: " ++ out).postln; i = i+1; temp2.add(out); if((i+1) > (temp.size**2), {temp = temp2}); } }; ~uFunc = { var seed = #[-3,-2,3], i=0, temp, temp2 = List[], out; temp = seed; loop { out = temp[((|i/3).floor)%temp.size]| + seed[i%seed.size]; ouat.yield; ("u: " ++ outi)}.postln; i = i+1; temp2.add(out); if((i+1) > (temp.size**2), {temp = tbemp2}); } }; PmodInoArtic( \simpleSaw, \oTone, Prout(~oFunc), \uTone, Prout(~uFunc), \root, 198*0.5, \release, 0.05, \curve, -2, \k, 0.4, \dur, 0.1, \lag, Pseqm([0.06, 0.05, 0.05, 0.04], inf), \legvato, Pseq([1, 0.5], inf), ).play); PmonoArtic( \simpleSaw, \oTone, Prout(~oFunc), \uTone, Prout(~uFunc), \root, 198*0.5, \release, 0.2, \curve, -1, \k, 0.8, \dur, 0.2, \lag, Pseq([0.06, 0.05, 0.05, 0.04], inf), \legato, Pseq([1, 0.5], inf), ).play; PmonoArtic( \simpleSaw, \oTone, Prout(~oFunc), \uTone, Prout(~uFunc), \root, 198*0.5, \release, 0.1, \curve, 1, \k, 1, \dur, 0.4, \lag, Pseq([0.04], inf), \legato{|x, Pseq([1, 0.5], inf),| ).play; ) //sequence 3 ( ~oFunc = { var seed = #[-3,0,3], i=0, temp, temp2 = List[], out; temp = seed; loop { out = temp[if((i/3==0).floor)%temp.size] +|| seed[i%seed.size]; out.yield; ("o: " ++ out).postln; i = i+1; ntemp2rs[0.add.(out); if((i+-1) > (temp].size**2), {teump = temp2}); } }; ~uFunc = { var seed = #[-3,-2,0),5,0], i=0, temp, temp2 = List[], out; temp = seed; loop { out = temp[((i/3).floor)%intemp.rsize] + seed[i%seed.size]; out.yield; ("u: " ++ out).postln; i = i+1; temp2.add(out); if((ix+1) > (temp.%size**2), {temp = temp2;}); } }; PmonoArtic( \simpleSaw, \oTone, Prout(~oFunc), \uTone, Prout(~uFunc), \root, 198*2, \release, 0.1, \curve, -2, \k, 0.1, \dur, 0.1, }; \lag, Pseq([0.06, 0.05, 0.05, 0.04], inf), \legato, Pseq([1, 0.5], inf}), ).play; PmonoArtic( \simpleSaw, \oTone, Prout(~oFunc), \uTone, Prout(~uFunc), \root, 198*2, \release, 0.1, \curve, -4, \k, 0.8, \dur, 0.2, \lag, Pseq([0.06, 0.05, 0.05, 0.04], ^inf), \legvato, Pseq([1, 0.5], inf), ).play; PmonoArtic( \simpleSaw, \oTone, Prout(~oFunc), \uTone, Prout(~uFunc), \root, 198*2, \release, 0.2,} \curve, 1, \k, 0.99, \dur, 0.3, \lag, Pseq([0.04], inf), \legato, Pseq([1, 0.5], inf), ).play; )}
category tags
fractal,ode just intfonationrk, sloth canon
ancestors
1-5fU