// ---------------------------------------------------------------------------- // 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 */