algoforte03a/SINODA_LULLABY.scd

235 lines
5.5 KiB
Plaintext

// ----------------------------------------------------------------------------
// SINODA LULLABY
(
~tf.stop; ~tf = fork { loop { TempoClock.default.tempo = 0.15.rand + 1; 1.wait; }};
~fxFeedDelay1.set(\feedback, 0.7);
~fxFeedDelay1.set(\amount, 0.6);
fork {
">>> routine start...".postln;
"--- triSinSquare bliss...".postln;
Pbindef(\sinoL, *[
instrument: \triSinSquare,
dur: Pseq([1, 1/2, 1/2, 1/4, 1/4, 1/2, Pn(1/3,3)], inf) ,
scale: Scale.minor(\just),
legato: 0.01,
rls:4,
dec: 0.01,
atk:0.001,
sus:0.1,
sqamp: Pwhite(0,1),
pan:Pwhite(-1,1, inf),
octave:[4,5],
degree: Pseq([0,3,4,8],inf),
amp: 0.3 * Pseq([
Pseg([0,1],36,\sqr),
Pseg([1,0.7,1],24,\sqr,inf)
]),
mtranspose: Pdup(8,Pseq([3,0,4,-2],inf)) + [0,3],
lpf: Pseg([1,7,1],18,\exp,inf), //Pexprand(1, 10,inf)
ctranspose: 0,
outBus: ~fxFeedDelayBus1
]).play(quant:3);
60.wait;
"--- chords each 3 beats".postln;
Pbindef(\sinoLpiano, *[ type: \midi, midicmd: \noteOn, midiout: m, chan: 1,
scale: Scale.minor,
legato: 2, //Pwhite(0.5, 1) * Pseg([0.5, 2, 0.5], 30, \lin, inf),
amp: Ptuple([ Pwhite(0.6,0.9), Pwhite(0.6,0.9), Pwhite(0.6,0.9) ], inf)
* Pseg([0.5, 0.8, 0.6], 50, \lin, inf),
dur: 3,
degree: Pseq([[0,2,4],[0,8,4,3],Prand([[0,2,4],[0,8,4,3]])],inf),
octave: [6,5,4,7]-1,
mtranspose: Pdup(4, Pseq([3, 3, 0, 4],inf)),
ctranspose: 0
]).play(quant:3);
36.wait;
"--- dominant each 1.5 beats".postln;
Pbindef(\sinoLpianoS, *[ type: \midi, midicmd: \noteOn, midiout: m, chan: 1,
scale: Scale.minor,
legato: 2,
amp: Pwhite(0.6,0.9) * Pseg([0.5, 0.8, 0.4], 30, \lin, inf),
dur: 1.5,
// degree: [0,2,4,8,9,11,13,15],
degree: 0,
octave: Prand([5,6,7],inf),
ctranspose: 0
]).play(quant:3);
"--- recording, granulating...".postln;
~recBmono = Synth(\recBufMono, [\bufnum, ~pBufMono1, \loop, 1], addAction: \addToTail);
~mpulseGran = Synth(\gran, [\out, ~fxJPverbBus1, \buffer, ~pBufMono1, \atk, 30, \amp, 0.1]);
72.wait;
"--- stopping...".postln;
Pbindef(\sinoL).stop;
Pbindef(\sinoLpiano).stop;
Pbindef(\sinoLpianoS).stop;
~mpulseGran.release(6);
3.wait;
"--- ctranspose: -5.".postln;
~ctranspose = -5; // 0, 5, -2, 3, -4, 1, -6, -1, 4, -3 ?
Pbindef(\sinoL, *[ ctranspose: ~ctranspose, amp: 0.2 * Pseg([0,0,1],36,\sqr) ] ).play(quant:3);
Pbindef(\sinoLpiano, *[ ctranspose: ~ctranspose ]).play(quant:3);
Pbindef(\sinoLpianoS, *[ ctranspose: ~ctranspose ]).play(quant:3);
3.wait;
~mpulseGran = Synth(\gran, [\out, ~fxJPverbBus1, \buffer, ~pBufMono1, \atk, 30, \amp, 0.1]);
69.wait;
"--- stopping...".postln;
Pbindef(\sinoL).stop;
Pbindef(\sinoLpiano).stop;
Pbindef(\sinoLpianoS).stop;
~mpulseGran.release(6);
3.wait;
"--- ctranspose: 2".postln;
~ctranspose = 2; // 0, 5, -2, 3, -4, 1, -6, -1, 4, -3 ?
Pbindef(\sinoL, *[ ctranspose: ~ctranspose, amp: 0.2 * Pseg([0,0,1],36,\sqr) ] ).play(quant:3);
Pbindef(\sinoLpiano, *[ ctranspose: ~ctranspose ]).play(quant:3);
Pbindef(\sinoLpianoS, *[ ctranspose: ~ctranspose ]).play(quant:3);
3.wait;
~mpulseGran = Synth(\gran, [\out, ~fxJPverbBus1, \buffer, ~pBufMono1, \atk, 30, \amp, 0.15]);
69.wait;
"--- stopping...".postln;
Pbindef(\sinoL).stop;
Pbindef(\sinoLpiano).stop;
Pbindef(\sinoLpianoS).stop;
~mpulseGran.release(6);
3.wait;
"--- ctranspose: -3.".postln;
~ctranspose = -3; // 0, 5, -2, 3, -4, 1, -6, -1, 4, -3 ?
Pbindef(\sinoL, *[ ctranspose: ~ctranspose, amp: 0.3 * Pseg([0,1,1], 72, \sqr) ] ).play(quant:3);
Pbindef(\sinoLpiano, *[ ctranspose: ~ctranspose ]).play(quant:3);
Pbindef(\sinoLpianoS, *[ ctranspose: ~ctranspose ]).play(quant:3);
3.wait;
~mpulseGran = Synth(\gran, [\out, ~fxJPverbBus1, \buffer, ~pBufMono1, \atk, 30, \amp, 0.2]);
69.wait;
"--- fade sinoL... ".postln;
Pbindef(\sinoL, *[amp: Pseg([0.4,0], 30, \sqr)]);
73.wait;
"--- stop piano and recording ...".postln;
~recBmono.free;
Pbindef(\sinoLpiano).stop;
Pbindef(\sinoLpianoS).stop;
36.wait;
"--- release granulator.".postln;
~mpulseGran.release(24);
24.wait;
">>> routine end".postln;
}
)
//////////////////////////////////////////////////////////////////////////////
/*
(
( (0..11) * 7 ).mod(12)-12.postln;
)
(
Pbindef(\sinoL).stop;
Pbindef(\sinoLpiano).stop;
Pbindef(\sinoLpianoS).stop;
6.wait;
Pbindef(\sinoL).stop;
Pbindef(\sinoLpiano).stop;
Pbindef(\sinoLpianoS).stop;
(
~ctranspose = 3; // 0, 5, -2, 3, -4, 1, -6, -1, 4, -3 ?
Pbindef(\sinoL, *[ ctranspose: ~ctranspose ]);
Pbindef(\sinoLpiano, *[ ctranspose: ~ctranspose ]);
Pbindef(\sinoLpianoS, *[ ctranspose: ~ctranspose ]);
)
~ctranspose = 0; // 0, 5, -2, 3, -4, 1, -6, -1, 4, -3 ?
Pbindef(\sinoL, *[ ctranspose: ~ctranspose ]);
Pbindef(\sinoLpiano, *[ ctranspose: ~ctranspose ]);
Pbindef(\sinoLpianoS, *[ ctranspose: ~ctranspose ]);
)
// record // loop?
// granulate
~mpulseGran = Synth(\gran, [\out, ~fxJPverbBus1, \buffer, ~pBufMono1, \atk, 30, \amp, 0.2]);
~mpulseGran.set(\amp, 0.3)
(
~ctranspose = 0; // 0, 5, -2, 3, -4, 1, -6, -1, 4, -3, 2, -5, 0?
Pbindef(\sinoL, *[ ctranspose: ~ctranspose ]);
Pbindef(\sinoLpiano, *[ ctranspose: ~ctranspose ]);
Pbindef(\sinoLpianoS, *[ ctranspose: ~ctranspose ]);
//Synth(\recBufMono, [\bufnum, ~pBufMono1], addAction: \addToTail);
)
Pbindef(\sinoL).stop
(
Pbindef(\sinoL).clear;
Pbindef(\sinoLpiano).clear;
Pbindef(\sinoLpianoS).clear;
)
Pbindef(\sinoL, *[amp: Pseg([0.4,0],30, \sqr)])
m.control(1, ctlNum: 64, val: 127)
~mpulseGran.release(10)
Pbindef(\sinoLpianoS).stop
Pbindef(\sinoLpianoS).clear
m.control(1, ctlNum: 64, val: 0)
/////////////////////////////////////////////////////////
~mpulseGran.free
~pBufMono1.plot
// STOP
*/