gtr/segments/00-RHINOCEROS.scd

69 lines
2.0 KiB
Plaintext

//Pdup
// rhinosorous ///////////////////////////////////
TempoClock.default.tempo = 70/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);
// Place([Pn(1/8, {[2,5,8,13].choose}), 1, [3,5,8,13], Rest(1) ], 4),
~durpat = Pseq([ // .sum to check
//1,1,3,1,1,1,5,1,2,1,8,1,13, // 13 events
//Pconst(32, ~wdurs), // 32 beats / 8 bars
//Ppatlace([
//Place([Pn(1/8, { [2,5,8,13].choose }), 1, [3,5,8,13], Rest(1) ], 4),
// INSTALL NEW SUPERCOLLIDER FOR PDUP
//Pdup(Pseq([2,3,5,8],inf), Pseq([1/8, 1/3, 1/5, 1/8],inf)),
Pdup(Pseq([2,3,5,8],inf),
Pseq([
Place([1/8, 1/3, 1/5, [1/8, 1/2, 1/16, 1/4] ], 4 ) ],inf )),
//Place([ Prand( [13,5], 3), 1/8, 1, [3,5,8,13], Rest(1) ] , 4).trace,
//1,1,3,1,1,1,5,1,2,1,8,1,13, // 13 events
//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
//Pconst(21, Pseq([5,3,5,8],1)),
Rest(8)
], 1);
~octptn = Pseq([
Pfin(13, Pn(4,inf)),
Pconst(32, Pn(6,inf)),
Pconst(32, Pn(3, inf)),
Pfin(13, Pn(4,inf)),
Pconst(28, Pn(7,inf)),
Pconst(16, Pn(5,inf)),
Pconst(21, Pn(4,inf)),
], inf);
~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);
//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;
////////////////////////////////////