algomom/sc/motherPatterns.scd

192 lines
3.4 KiB
Plaintext
Raw Normal View History

2023-01-26 10:36:56 +01:00
/*RUN*/
~s0 = Scale.harmonicMinor;
~s1 = Scale.melodicMinor;
~s2 = Scale.gong;
~s3 = Scale.whole;
~s4 = Scale.chromatic;
~d0 = Pn(Pseries(0, 1, 2), inf);
~d1 = Pn(Pseries(0, 1, 3), inf);
~d2 = Pn(Pseries(0, 4, 9), inf);
~d3 = Pn(Pseries(0, 1, 11), inf);
~d4 = (Pexprand(1, 8, inf) - 1).round;
~d5 = Pwrand([Pseries(0,1,inf)],[15,20,3,4,5].normalizeSum, inf);
// repeat patterns
~d6 = Pclutch(~d4, Pseq(#[0,0,0,0,0,0,0,0,1,1,1,1,1],inf));
~d7 = Pstutter(Prand([1, 2, 5], inf), Pwhite(-1.0, 1.0));
//c = Pstutter(3, Pxrand([1, 2, 3], inf) * 4 + 65);
~d8 = Pseq([0,6,2,4,1,3,3,7,5,11]); // ground bass
~d9 = Prand([1,3,5,7],8);
~d10 = Pseq([2,4,6,8],8);
~d11 = Prand([0,2,4,6],8);
~d12 = Pseq([3,5,7,9],8);
~ddd = Pseq([~d9, ~d10, ~d11, ~d12],inf);
/////////////////////////////////////////////////
~rx0 = Pwrand([1/8, 1/4, 1/2, 2],[80,50,20,20].normalizeSum, 1);
~rx1 = Pwrand([1/8, 1/4, 1/2, 2],[80,50,20,20].normalizeSum, 1);
~rx2 = Pwrand([1/8, 1/4, 1/2, 2],[80,50,20,20].normalizeSum, 1);
~rx3 = Pwrand([1/8, 1/4,],[90,30, 10, 0].normalizeSum, 1);
~rx3 = Pxrand([
1/8,
1/4,
1/2,
1/8,
1
],1);
///////////////////////
~r16 = Pseq([
1/16,
1/16,
1/16,
1/16,
1/16,
1/16,
1/16,
1/16,
1/16,
1/16,
1/16,
1/16,
1/16,
1/16,
1/16,
1/16,
],1);
~r01 = Pseq([
1/8,
Rest(1/8),
Rest(1/8),
Rest(1/8),
Rest(1/8),
Rest(1/8),
Rest(1/8),
Rest(1/8),
],1);
~r02 = Pseq([
1/8,
Rest(1/8),
Rest(1/8),
Rest(1/8),
1/8,
Rest(1/8),
Rest(1/8),
Rest(1/8),
],1);
~r03 = Pseq([
1/8,
1/8,
1/8,
Rest(1/8),
1/8,
1/8,
1/8,
Rest(1/8),
],1);
~r04 = Pseq([
Rest(1/8),
1/8,
1/8,
1/8,
Rest(1/8),
1/8,
1/8,
1/8,
],1);
~rrr = PatternProxy.new;
~rr = PatternProxy.new;
~rr.source = Pxrand([~r01,~r02, ~r03, ~r04],inf);
~rrr.source = Pxrand([~r0,~r0, ~r0, ~r02],inf);
~rr.source = Prand([~r03,~r04, ~r0, ~r0],inf);
~rrr.source = Prand([~r03,~r03,~r02, ~r4],inf);
~rs = Pseq([
Pseq([~rx0],32),
Pseq([~rx1],32),
Pseq([~rx2],32),
Pseq([~rx3],32),
Pseq([~r03],8),
Pseq([~r04],8),
Pseq([~r0],8),
Pseq([~r0],8),
Pseq([~r04],8),
Pseq([~r16],8),
Pseq([~r0],inf),
],inf);
~rb = Pseq([
Pseq([~rx0],32),
Pseq([~rx1],32),
Pseq([~rx2],32),
Pseq([~rx3],32),
Pseq([~r03],8),
Pseq([~r04],8),
Pseq([~r0],8),
Pseq([~r0],8),
Pseq([~r04],8),
Pseq([~r16],8),
Pseq([~r0],inf),
],inf);
/////////////////////////////// OCTAVISATION PATTERNS
~oo = PatternProxy.new;
~ooo = PatternProxy.new;
~o0 = Prand([5], inf);
~o1 = Prand([2,3], inf);
~o2 = Prand([3,4,5], inf);
~o3 = Pwrand([3,4,5,6,7],[15,20,3,4,5].normalizeSum, inf);
~o = Pseq([
Pxrand([4,5,6], 32),
Pseq([5,6,7], 32),
Pseq([4,7], 32),
Pxrand([4,5,6,7], 32),
] , inf);
~oo.source = ~o;
~o = Pseq([
Pseq([8], 32),
] , inf);
/////////////////////////////////////////////////////
~r1 = 1/4;
~r2 = Pwrand([0.25, Rest(0.75), 1], [0.6, 0.2, 0.2], inf);
~r3 = Pwrand(#[0.25, 0.5, 0.75, 4], #[0.4, 0.3, 0.2, 0.1], inf);
~r4 = 8;
~r5 = Pwrand([Pseq([1/8,1/8,1/8,1/8,1/8, Rest(3/8), Rest(1)],2), 0.25, 0.5, 0.75, 4],
#[0.05, 0.4, 0.3, 0.2, 0.05], inf);
~r6 = Pwhite(1, 6, inf) * 0.125;
~triplet = Pseq([1,1,1,1,5] , 1) / 5 ;
~white = Pwhite(1, 6, 5) * 0.125;
~sync8th = Pseq([Rest(1/8), 1/8] , 4);
~sixteen = Pseq([1/Pwhite(5,10,Pwhite(4,7))], Pwhite(1,2));
~long = Pwhite(1,5,1) / 3;
~rest = Rest(2);
~phrase = Pxrand([~white, ~sync8th, ~sixteen, ~long, ~rest, ~rest+0.7], inf);
//////////////////////////////////////////////////////