|
|
@ -0,0 +1,129 @@ |
|
|
|
/* |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
*/ |
|
|
|
|
|
|
|
// algoforte #3 /////////////////////////////////////////////////////////////////////// |
|
|
|
// |
|
|
|
// |
|
|
|
// |
|
|
|
// |
|
|
|
// |
|
|
|
|
|
|
|
|
|
|
|
// processing input from piano |
|
|
|
( |
|
|
|
Ndef(\inDSPout, { |
|
|
|
var snd, flt, rev, dly; |
|
|
|
snd = SoundIn.ar([0,1]); |
|
|
|
snd = snd * LFPulse.kr(LFNoise1.kr(1/5).range(3,20), 0, |
|
|
|
0.5).range(LFNoise1.kr(1/10).range(0.6,1),1).lag(0.00001); |
|
|
|
flt = BPF.ar(snd, LFNoise1.kr([1/4,1/5]).exprange(500,5000), 0.3, 2); // ?? |
|
|
|
dly = CombL.ar(flt + snd, 1, SinOsc.ar([1/60, 1/70]).range(1, 1.2), 10, 0.3 * LFNoise1.kr(1/10).range(0.4,1) , snd); |
|
|
|
rev = JPverb.ar(flt + snd, 6, 0, 20) * LFNoise1.kr(1/10).range(0.4,1); |
|
|
|
snd = snd + dly + rev * 0.8; |
|
|
|
Limiter.ar(snd, 0.8); |
|
|
|
}) |
|
|
|
) |
|
|
|
Ndef(\inDSPout).fadeTime = 4 |
|
|
|
Ndef(\inDSPout).play(fadeTime:5) |
|
|
|
|
|
|
|
Ndef(\inDSPout).end(30) |
|
|
|
Ndef(\inDSPout).stop |
|
|
|
|
|
|
|
|
|
|
|
( |
|
|
|
Pbindef(\p220105b, \type, \midi, \midicmd, \noteOn, \midiout, m, \chan, 1, |
|
|
|
\dur, Pseq([ |
|
|
|
Pn(1/2, 50), |
|
|
|
Pseq([1, 1/2, Pn(1/4,4), 2], 20), // 7*20 |
|
|
|
Pseq([ |
|
|
|
1, |
|
|
|
1/2, |
|
|
|
Pn(1/4, 2), |
|
|
|
Prand([2, 1/2, Pn(1/3,3)]), |
|
|
|
Pwrand([1/2, Pn(1/8,4)], [0.9, 0.1]), |
|
|
|
Pwrand([1/2, 6,], [0.9, 0.1]), |
|
|
|
], 10 * 5 ), |
|
|
|
Pn(1/2, 60) |
|
|
|
]) |
|
|
|
* Pwhite(0.99,1.2), |
|
|
|
|
|
|
|
\amp, Pseq([0.6, Pwhite(0.2,0.5,3), 0.5, Pwhite(0.2,0.5,2)], inf) * Pwhite(1, 1.1), |
|
|
|
\degree, Place([0, 0, 2, 0, [2, 3, 5]],inf), // cycle of 5 |
|
|
|
\scale, Scale.minor, |
|
|
|
|
|
|
|
\mtranspose, Pseq([ |
|
|
|
0, |
|
|
|
5, |
|
|
|
7, |
|
|
|
[2,5], |
|
|
|
[3,6], |
|
|
|
[0,2] |
|
|
|
[0,5,7], |
|
|
|
[0,5,9], |
|
|
|
[3,5,7,10], |
|
|
|
[2,5,9,11], |
|
|
|
[0,4,7,11] + 7, |
|
|
|
[5,4,7,11], |
|
|
|
[0,4,-7] |
|
|
|
|
|
|
|
],inf) + Pseq([ Pn(0, 50 + (7*20)), Pseq([Pn(0,50), Pn(3,20), Pn(-2,20)], 3)], inf), // (50+140+(3x90)) |
|
|
|
|
|
|
|
\ctranspose, |
|
|
|
Pseq([ |
|
|
|
Pn(0, 50+140), |
|
|
|
Pseq([Pn(0,60), Pn(5, 60), Pn(0,60), Pn(7,60)]), // (4*60+50+140) |
|
|
|
Pn(0,inf) // |
|
|
|
]) |
|
|
|
+ Pseq([ Pn(0,300), Pwrand([0, 5, 7], [0.9, 0.05, 0.05], 100), Pn(0, inf)]), |
|
|
|
|
|
|
|
\octave, Pwrand([5,[5,6],[4,6]], [0.8,0.1,0.1], inf), |
|
|
|
\legato, Pwhite(0.5,4) |
|
|
|
).play |
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
// --> |
|
|
|
b = Buffer.alloc(s, s.sampleRate*10, 1) |
|
|
|
|
|
|
|
// start recording into buffer via 'in' |
|
|
|
Ndef(\recbuf, {var sn=\in.ar(0!2); RecordBuf.ar(sn[0], b)}) |
|
|
|
|
|
|
|
// plug output from inDSPout to in of \recbuf |
|
|
|
Ndef(\recbuf) <<>.in Ndef(\inDSPout) |
|
|
|
|
|
|
|
// is there something in a buffer? |
|
|
|
b.plot |
|
|
|
|
|
|
|
// stop recording to a buffer |
|
|
|
Ndef(\recbuf).clear |
|
|
|
|
|
|
|
|
|
|
|
// GRANULATE THE CONTENTS OF THE BUFFER |
|
|
|
( |
|
|
|
Ndef(\gran, { |
|
|
|
var snd = GrainBuf.ar(2, |
|
|
|
trigger: Impulse.ar(LFNoise1.kr(1/10!3).exprange(1, 80) * LFNoise0.ar(100).range(0.7,1.1)), |
|
|
|
dur: LFNoise1.ar(1).range(0.08,0.1), |
|
|
|
sndbuf: b, |
|
|
|
rate:[1,1/2,2], pos:LFNoise1.kr(1/20!3).range(0,1), |
|
|
|
pan: LFNoise0.ar(100).range(-1,1) |
|
|
|
); |
|
|
|
snd = LPF.ar(snd, LFNoise1.kr(1/10!3).exprange(500,10000)); |
|
|
|
snd = Mix(snd); |
|
|
|
snd = JPverb.ar(snd, LFNoise1.kr(1/10!2).range(1,10)) + snd; |
|
|
|
Limiter.ar(Mix(snd), 0.8) * Env.circle([0.01,0.3,0.01],90,\cub).kr * 0.5; |
|
|
|
}) |
|
|
|
) |
|
|
|
Ndef(\gran).fadeTime = 5 |
|
|
|
Ndef(\recbuf).play |
|
|
|
|
|
|
|
Ndef(\gran).end(30) // fadeout |
|
|
|
Ndef(\recbuf).stop // stop immediately (send note offs) |