algoforte03a/BLACK_HOLE_BLACK_STAR.scd

90 lines
2.1 KiB
Plaintext

// ----------------------------------------------------------------------------
// BLACK HOLE BLACK STAR
(
~tf.stop; ~tf = fork{ loop{ TempoClock.default.tempo = 0.1.rand + 1 * 0.95; 1.wait;}};
fork {
~fxDelayWarp1.set(\wet, 0.2);
~fxJPverb1.set(\wet, 0.9);
Pbindef(\dustyLadder, *[
instrument: \dustyPinkClip,
legato:1,
dur:4,
amp: Pseg([0.01, 0.05, 0.01],[30],\lin, inf),
density:50,
out: Pseq([~fxDelayWarpBus1, ~fxJPverbBus1],inf)
]).play(quant:2);
30.wait;
// piano
Pbindef(\blackHole, *[ type: \midi, midicmd: \noteOn, midiout: m, chan: 1,
amp: Ptuple([ Pwhite(0.6,0.9), Pwhite(0.6,0.9) ], inf)
* Pseg([0.9, 0.6, 0.9], [0.1,59.9], \lin, inf),
legato: Pwhite(0.8, 1) * Pseg([0.8, 1, 0.8], 30, \lin, inf),
dur: Prand([1.5, 1, 0.5, 2, Pn(1/4,1), Pn(1/8,2)],inf) * 4,
scale: Scale.minor,
degree: Prand([[0,8],[0,9], 4, [6,3], [0,4,6]], inf),
octave: Prand([4,5,[5,4]],inf) + Pdup(20, Pseq([0,1],inf)) - 1,
mtranspose: Pdup(40, Pseq([0,5],inf))
]).play(quant:1);
// recorder
Pbindef(\justRecPbind, *[ amp:0, dur: 4,
rec: Pfunc({ arg ev;
s.bind { SynthDef(\recBuf, { |bufnum = 0|
RecordBuf.ar( SoundIn.ar([0,1]), bufnum,
preLevel: 0,
doneAction: Done.freeSelf, loop:0 )
}).play(s, [\bufnum, ~pBuf1], addAction: \addToTail); } })
]).play(quant:1);
30.wait;
// Pbindef(\dustyLadder).stop
// buffer player/oscilator - play
Ndef(\bufosc, {
var snd, pos;
pos = LFNoise1.kr(1/2!2).range(0, 4*48000);
snd = BufRd.ar(2, ~pBuf1,
Phasor.ar(0, -1 * BufRateScale.kr(~pBuf1) * LFNoise1.kr(1/10!2).range(0.99,1.01),
0+pos, 48000/8+pos),
1, 4 );
snd = LPF.ar(snd, LFNoise1.kr(1/10!2).exprange(500,10000));
snd = HPF.ar(snd, 100);
snd = Greyhole.ar(snd, feedback: LFNoise1.kr(1/10).range(0.4,0.9)) * 2 + snd * 0.3;
snd = Limiter.ar(snd, 0.9);
snd * LFNoise1.kr(1/10).range(0.5,0.95);
});
1.wait;
Ndef(\bufosc).fadeTime = 10;
1.wait;
Ndef(\bufosc).play;
240.wait;
// stop recording into a buffer
Pbindef(\justRecPbind).stop;
// stop the piano pattern
Pbindef(\blackHole).stop;
60.wait;
// fade out the buffer player
Ndef(\bufosc).end(30);
40.wait;
Pbindef(\dustyLadder).stop;
};
)