microcompositions added to midimother
parent
2cbdacd99f
commit
b9321ff9b1
269
midimother.scd
269
midimother.scd
|
@ -1,50 +1,275 @@
|
|||
"/home/rob/gtr/motherMIDISetup.scd".load;
|
||||
|
||||
TempoClock.default.tempo = 60/60;
|
||||
|
||||
~xx = (
|
||||
Pdef(\m_1).play(quant: 4); // TOP MOTHER
|
||||
Pdef(\m_1_CC).play(quant:4); // CC 1
|
||||
Pdef(\m_2).play(quant: 4); // BTM MOTHER NOTEON
|
||||
Pdef(\m_2_CC).play(quant:4); // CC 1
|
||||
)
|
||||
|
||||
Pdef(\m_1).stop; // NOTEON
|
||||
Pdef(\m_1_CC).stop;
|
||||
Pdef(\m_2).stop; // NOTEON
|
||||
Pdef(\m_2_CC).stop;
|
||||
|
||||
////////////////////////////////////////
|
||||
Pdef(\m_1).play(quant: 4); // TOP MOTHER
|
||||
Pdef(\m_1).stop; // NOTEON
|
||||
Pdef(\m_1_CC).play(quant:4); // CC 1
|
||||
Pdef(\m_1).stop; // NOTEON
|
||||
Pdef(\m_1_CC).stop;
|
||||
// --------------- /
|
||||
Pdef(\m_2).play(quant: 4); // BTM MOTHER NOTEON
|
||||
Pdef(\m_2).stop; // NOTEON
|
||||
Pdef(\m_2_CC).play(quant:4); // CC 1
|
||||
Pdef(\m_2).stop; // NOTEON
|
||||
Pdef(\m_2_CC).stop;
|
||||
//////////////////////////////
|
||||
Pbindef(\m_1,\scale,~s1,\degree,~d4,\dur,~r1,\octave,~o2, \mtranspose,0);
|
||||
Pbindef(\m_2,\scale,~s1,\degree,~d4,\dur,~r2,\octave,~o2, \mtranspose,0);
|
||||
|
||||
// indiviudal controls //////////////
|
||||
Pbindef(\m_1, \root, 4); Pbindef(\m_2, \root, 4);
|
||||
Pbindef(\m_1, \mtranspose, 0); Pbindef(\m_2, \mtranspose, 0);
|
||||
Pbindef(\m_1, \scale, ~s1 ); Pbindef(\m_2, \scale, ~s1);
|
||||
Pbindef(\m_1, \octave, ~o0); Pbindef(\m_2, \octave, 2);
|
||||
Pbindef(\m_1, \dur, ~r4); Pbindef(\m_2, \dur, ~r0);
|
||||
Pbindef(\m_1, \degree, ~d6); Pbindef(\m_2, \degree, ~d3);
|
||||
// ground bass figure // chromatic //
|
||||
Pbindef(\m_1, \dur, 8, \octave, 3, \scale,~s4,\degree,~d8, inf);
|
||||
Pbindef(\m_2, \dur, 9, \octave, 2, \scale,~s4,\degree,~d8, inf);
|
||||
Pbindef(\m_1, \degree, ~ddd); Pbindef(\m_2, \degree, ~ddd);
|
||||
|
||||
// -------------------
|
||||
// variation for piano webern op27 mvt3
|
||||
// sustain ON - decay full
|
||||
|
||||
//~row0 = [3, 11, 10, 2, 1, 0, 6, 4, 7, 5, 9, 8];
|
||||
|
||||
~op = Scale.new(#[3, 11, 10, 2, 1, 0, 6, 4, 7, 5, 9, 8], name: "op27_III");
|
||||
|
||||
~vfp3 = Pseq(~row0, 4);
|
||||
~vfp3_reverse = Pseq(~row0.reverse, 4);
|
||||
|
||||
~vfp2 = Pseq([4,5,1,3,0,2,8,9,10,6,7,11], 4);
|
||||
~vfp2_reverse = Pseq([4,5,1,3,0,2,8,9,10,6,7,11].reverse, 4);
|
||||
|
||||
~fib = Pseq([2,3.5,8,13,21], 4); // four interations of fibonnaci duration sequence
|
||||
~fibr = Pseq([2,3.5,8,13,21].reverse, 4); // counterpoint rhythmic inversion
|
||||
|
||||
// change from dur 8 to ~fib
|
||||
|
||||
Pbindef(\m_1, \dur, ~fib, \octave, 7, \scale,~s4,\degree,~vfp2, inf);
|
||||
Pbindef(\m_2, \dur, ~fibr, \octave, 2, \scale,~s4,\degree,~vfp2_reverse, inf);
|
||||
|
||||
( Pdef(\m_1_CC, Pbind( \type, \midi, \midicmd, \control, \midiout, ~m32_1,
|
||||
\ctlNum, 1, \control, Pexprand(77,127, inf) ,\dur, 1/16)).play(quant:4));
|
||||
|
||||
Pdef(\m_2_CC, Pbind( \type, \midi, \midicmd, \control, \midiout, ~m32_2, \ctlNum, 1, \control, Pexprand(77,127, inf), \dur, 1/16 )).play(quant:4);
|
||||
|
||||
|
||||
|
||||
// rhinosorous ///////////////////////////////////
|
||||
|
||||
TempoClock.default.tempo = 90/60;
|
||||
|
||||
~durs = [1/16,1/8, 3/16, 1/4, 1/3, 3/8, 1/2, 5/8, 2/3, 3/4, 7/8, 1, 5/4, 2]; //16 beats
|
||||
|
||||
~wdurs = Pwrand([1/8, 1/4, 1/3, 1/2, 2, 6, 10, Rest(1)],[50, 30, 20, 10, 35, 20 ,10, 30].normalizeSum, inf);
|
||||
~wdurs1 = Pwrand([1/16, 1/8, 1/6, 1/4, 1],[50, 30, 20, 10, 20].normalizeSum, inf);
|
||||
|
||||
~drnd1 = Pconst(16, Pxrand(~durs, ~durs.size)); // 16 beats of rnd durs
|
||||
~dgauss0 = Pfindur(16, Pgauss(0,1, inf) );
|
||||
|
||||
~op = Scale.new(#[3, 11, 10, 2, 1, 0, 6, 4, 7, 5, 9, 8], name: "op27_III");
|
||||
|
||||
~df = Pseq([1,1,3,1,1,1,5,1,2,1,8,1,13],1);
|
||||
|
||||
~durpat = Pseq([ // .sum to check
|
||||
1,1,3,1,1,1,5,1,2,1,8,1,13,
|
||||
Pconst(32, ~wdurs),
|
||||
Pseq([Pn(1/16, 8), 4,3.5], 1), // 8
|
||||
1,1,3,1,1,1,5,1,2,1,8,1,13,
|
||||
Pseq([1/2, 1/2, 1/2, 1/6, 1/6, 1/6, 5], 4), // 28
|
||||
Pseq([1/6,1/6,1/6,1/6,1/6,1/6, 3], 4), // 16
|
||||
//Pseq([1/6,1/6,1/6,1/6,1/6,1/6], 4),
|
||||
//Pseq([3/8, 1/8, 1/6, 1/6, 1/6, Rest(3), 2 ], 8),
|
||||
Pconst(21, Pseq([5,3,5,8],1)),
|
||||
Rest(32)
|
||||
], 1);
|
||||
|
||||
~octptn = Pseq([
|
||||
Pfin(13, Pn(4,inf)),
|
||||
Pconst(32, Pn(7,inf)),
|
||||
Pconst(8, Pn(3, inf)),
|
||||
|
||||
Pfin(13, Pn(4,inf)),
|
||||
|
||||
Pconst(28, Pn(7,inf)),
|
||||
Pconst(16, Pn(5,inf)),
|
||||
Pconst(21, Pn(4,inf)),
|
||||
|
||||
], inf);
|
||||
|
||||
//~deg = Pseq((0..11) ++ Pseq([8,9,10,11],3) ++ (11..0) ++ [\rest], 1);
|
||||
//~deg = Pseq((0..11) ++ [\rest], 4);
|
||||
|
||||
~prime = Pseq( (0..11) , 1);
|
||||
~retro = Pseq( (11..0) , 1);
|
||||
|
||||
~melodyA = Pseq([~prime, ~prime, ~retro], inf);
|
||||
~melodyB = Pseq([~prime, ~retro, ~prime], inf);
|
||||
|
||||
Pbindef(\m_1, \dur, ~durpat, \octave, ~octptn, \scale, ~op, \degree,~melodyA);
|
||||
Pbindef(\m_2, \dur, ~durpat, \octave, 3, \scale,~op, \degree,~melodyB, inf);
|
||||
|
||||
//Pchain
|
||||
|
||||
Pdef(\m_1).play(quant: 4); // TOP MOTHER
|
||||
Pdef(\m_2).play(quant: 4); // TOP MOTHER
|
||||
|
||||
Pdef(\m_1).stop;
|
||||
Pdef(\m_2).stop;
|
||||
|
||||
|
||||
|
||||
////////////////////////////////////
|
||||
|
||||
TempoClock.default.tempo = 30/60;
|
||||
|
||||
~drepeat = Pseq([
|
||||
Pseq([0],16),
|
||||
Pseq([7,8,9],4),
|
||||
Pseq([9],16),
|
||||
Pseq([1,3,5],5),
|
||||
Pseq([2],16),
|
||||
Pseq([8],16),
|
||||
Pseq([10,9,4],6),
|
||||
Pseq([10],16),
|
||||
Pseq([10,11],8),
|
||||
], 4);
|
||||
|
||||
~rp0 = 1/8;
|
||||
|
||||
~rp1 = Pseq([
|
||||
1/8,
|
||||
1/8,
|
||||
1/16,
|
||||
1/16,
|
||||
1/16,
|
||||
1/16,
|
||||
|
||||
1/8,
|
||||
1/8,
|
||||
1/16,
|
||||
1/16,
|
||||
1/16,
|
||||
1/16 ], 1);
|
||||
|
||||
~rp2 = Pseq([
|
||||
1/8,
|
||||
1/8,
|
||||
1/16,
|
||||
1/16,
|
||||
1/16,
|
||||
1/16,
|
||||
1/8,
|
||||
1/8,
|
||||
Rest(1)
|
||||
],1);
|
||||
|
||||
~pr = Pseq([
|
||||
Pseq([~rp0],16),
|
||||
Pseq([~rp2],4),
|
||||
Pseq([~rp0],16),
|
||||
Pseq([~rp2],1),
|
||||
Pseq([~rp1],4)],
|
||||
4);
|
||||
|
||||
~pr2 = Pseq([
|
||||
Pseq([~rp2],4),
|
||||
Pseq([~rp0],16),
|
||||
Pseq([~rp0],16),
|
||||
Pseq([~rp2],1),
|
||||
Pseq([~rp1],4)],
|
||||
4);
|
||||
|
||||
Pbindef(\m_1, \scale,~s4,\degree,~drepeat,\octave, ~o1,\dur, ~pr );
|
||||
Pbindef(\m_2, \scale,~s4,\degree,~drepeat,\octave, ~o3,\dur, ~pr2 );
|
||||
|
||||
Pbindef(\m_1, \octave, 4, \dur, ~r0 );
|
||||
Pbindef(\m_2, \octave, 6, \dur, ~r0 );
|
||||
|
||||
/////////////////////////////////////////////////////
|
||||
|
||||
//// MINIMAL BAROQUE GROOVE
|
||||
|
||||
~r0 = Pn(1/8, 16);
|
||||
|
||||
TempoClock.default.tempo = 60/60;
|
||||
|
||||
~rx0 = Pwrand([1/8, 1/4, 1/2, 4],[80,50,20,20].normalizeSum, 1);
|
||||
~rx1 = Pwrand([1/8, 1/4, 1/2, 1],[80,50,20,20].normalizeSum, 1);
|
||||
~rx2 = Pwrand([1/8, 1/4, 1/2],[80,50,20].normalizeSum, 1);
|
||||
~rx3 = Pwrand([1/8, 1/4],[90,30].normalizeSum, 1);
|
||||
|
||||
~rs = Pseq([
|
||||
Pconst(32, Pseq([~rx0],inf)),
|
||||
Pconst(32, Pseq([~r0],inf)),
|
||||
|
||||
/*Pconst(32, Pseq([~rx0],inf)),
|
||||
|
||||
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),*/
|
||||
],1);
|
||||
|
||||
~rb = Pseq([
|
||||
Pconst(32, Pseq([~rx0],inf)),
|
||||
Pconst(32, Pseq([~r0],inf)),
|
||||
|
||||
//
|
||||
// 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),
|
||||
],1);
|
||||
|
||||
Pbindef(\m_1, \scale,~s0,\degree,~ddd,\octave, ~oo,\dur,~rs );
|
||||
Pbindef(\m_2, \scale,~s0,\degree,~ddd,\octave, ~o1,\dur,~rb );
|
||||
|
||||
Pdef(\m_1).play(quant: 4); // TOP MOTHER
|
||||
Pdef(\m_2).play(quant: 4); // BTM MOTHER NOTEON
|
||||
|
||||
// CC Control Message 1 ---> TOP Mother32 ASSIGN OUT
|
||||
( Pdef(\m_1_CC, Pbind( \type, \midi, \midicmd, \control, \midiout, ~m32_1,
|
||||
\ctlNum, 1, \control, Pexprand(50,127, inf),\dur, 1/16)).play(quant:4));
|
||||
|
||||
// CC Control Message 1 ---> BOTTOM Mother32 ASSIGN OUT
|
||||
Pdef(\m_2_CC, Pbind( \type, \midi, \midicmd, \control, \midiout, ~m32_2, \ctlNum, 1, \control, Pexprand(77,127, inf), \dur, 1/8 )).play(quant:4);
|
||||
|
||||
// quasi-extended serialism
|
||||
Pbindef(\m_1, \scale,~s4,\degree,~d6,\octave,~o3,\dur,~phrase);
|
||||
Pbindef(\m_2, \scale,~s4,\degree,~d6,\octave,~o1,\dur,~phrase);
|
||||
|
||||
// chiptune minmalismo in melodic minor /////////////////////////////// r 0,1,3
|
||||
Pbindef(\m_1, \scale,~s0,\degree,~d4,\octave,~o3,\dur,~rrr );
|
||||
Pbindef(\m_1, \scale,~s0,\degree,~d4,\octave,7,\dur,~rrr );
|
||||
Pbindef(\m_2, \scale,~s0,\degree,~d4,\octave,~o3,\dur,~rrr );
|
||||
|
||||
|
||||
|
||||
|
||||
////////$$$/////////
|
||||
Pbindef(\m_1, \octave, 1, \scale, ~s3 )
|
||||
Pbindef(\m_2, \scale,~s0, \mtranspose,0)
|
||||
|
||||
|
||||
//// new
|
||||
Pbindef(\m_1, \scale,~s0,\degree,~ddd,\octave, ~o3,\dur,~rr );
|
||||
Pbindef(\m_2, \scale,~s0,\degree,~ddd,\octave, ~o2,\dur,~rrr );
|
||||
|
||||
|
||||
// CC Control Message 1 ---> TOP Mother32 ASSIGN OUT
|
||||
( Pdef(\m_1_CC, Pbind( \type, \midi, \midicmd, \control, \midiout, ~m32_1,
|
||||
\ctlNum, 1, \control,
|
||||
//Pexprand(7,100, inf),
|
||||
\dur, ~r0)).play(quant:4));
|
||||
|
||||
// CC Control Message 1 ---> BOTTOM Mother32 ASSIGN OUT
|
||||
Pdef(\m_2_CC, Pbind( \type, \midi, \midicmd, \control, \midiout, ~m32_2, \ctlNum, 1, \control, Pexprand(77,127, inf), \dur, 1/8 )).play(quant:4);
|
|
@ -16,20 +16,62 @@
|
|||
~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
|
||||
|
||||
~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);
|
||||
|
||||
~r0 = 1/8;
|
||||
|
||||
/////////////////////////////////////////////////
|
||||
~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);
|
||||
|
||||
~r0 = Pseq([
|
||||
1/8,
|
||||
1/8,
|
||||
1/8,
|
||||
1/8,
|
||||
1/8,
|
||||
1/8,
|
||||
1/8,
|
||||
1/8,
|
||||
],1);
|
||||
|
||||
~r01 = Pseq([
|
||||
1/8,
|
||||
Rest(1/8),
|
||||
|
@ -47,7 +89,7 @@
|
|||
Rest(1/8),
|
||||
Rest(1/8),
|
||||
1/8,
|
||||
1/8,
|
||||
Rest(1/8),
|
||||
Rest(1/8),
|
||||
Rest(1/8),
|
||||
],1);
|
||||
|
@ -56,29 +98,88 @@
|
|||
1/8,
|
||||
1/8,
|
||||
1/8,
|
||||
Rest(1/8),
|
||||
1/8,
|
||||
1/8,
|
||||
1/8,
|
||||
1/8,
|
||||
1/8,
|
||||
Rest(1/8),
|
||||
],1);
|
||||
|
||||
~r04 = Pseq([
|
||||
1/8,
|
||||
1/8,
|
||||
Rest(1/8),
|
||||
1/8,
|
||||
1/8,
|
||||
1/8,
|
||||
Rest(1/8),
|
||||
1/8,
|
||||
1/8,
|
||||
1/8,
|
||||
],1);
|
||||
|
||||
~rrr = NodeProxy.new.play;
|
||||
~rrr.source = Pxrand([~r01,~r02, ~r03, ~r04],inf);
|
||||
~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);
|
||||
|
@ -98,8 +199,4 @@
|
|||
|
||||
~phrase = Pxrand([~white, ~sync8th, ~sixteen, ~long, ~rest, ~rest+0.7], inf);
|
||||
|
||||
~o0 = Prand([5], inf);
|
||||
~o1 = Prand([1,2,3], inf);
|
||||
~o2 = Prand([3,4,5], inf);
|
||||
~o3 = Pwrand([3,4,5,6,7],[15,20,3,4,5].normalizeSum, inf);
|
||||
|
||||
//////////////////////////////////////////////////////
|
Loading…
Reference in New Issue