90 lines
2.1 KiB
Plaintext
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;
|
||
|
|
||
|
};
|
||
|
|
||
|
)
|