//___________________________cantor dust examples:
(
var modict, pat, level, ftrig;
level = 8;
ftrig = 3 ** level / 8;
modict = IdentityDictionary[
0 -> [0, 0, 0],
1 -> [1, 0, 1]
];
pat = Pseq([Prewrite( Pseq([1]), modict, level)], 1);
pat.asStream.all.size;
d = { arg t_trig, freq=5000;
var trig = Duty.ar(1 / ftrig, 0, Dseq(pat.asStream.all));
Ringz.ar(trig, freq, 0.01, 0.1)
}.play;
)
//___________________________cantor dust
// this takes a while to render
(
var modict, pat, level, times;
level = 11;
modict = IdentityDictionary[
0 -> [0, 0, 0],
1 -> [1, 0, 1]
];
pat = Pseq([Prewrite( Pseq([1]), modict, level)], 1);
times = pat.asStream.all.separate { |a,b| b == 1 and: { a == 0 } }.collect(_.size);
d = { arg t_trig, freq=8000;
var trig = TDuty.ar(Dseq(times) *SampleDur.ir, 0, 1.0, doneAction:2);
Ringz.ar(trig, freq, 0.01, 0.1)
}.play;
)
//___________________________the cantor set as trigger (SC3)
(
var modict, pat, level, ftrig;
level = 11;
ftrig = 3** level / 1000;
modict = IdentityDictionary[
0 ->[0, 0, 0],
1 - [1, 0, 1]
];
pat = Pseq([Prewrite( Pseq([1]), modict, level)], inf);
d = { arg t_trig, freq=440;
Ringz.ar(Impulsar.ar(t_trig), freq, 0.01, 0.1)
}.play;
Routine({
var f, t, fsum=0;
f = pat.asStream*600 + 1000;
t = pat.asStream;
loop {
fsum = (fsum + f.next).wrap(300, 3000);
d.set(\freq, fsum, \t_trig, t.next);
ftrig.reciprocal.wait;
}
}).play;
)
//___________________________the cantor set as trigger (SC2, so this is old code..)
(
var modict, pat, level, sy, ftrig;
level = 11;
ftrig = 3** level / 1000;
modict = IdentityDictionary[
0 ->[0, 0, 0],
1 - [1, 0, 1]
];
pat = Pseq([Prewrite( Pseq([1]), modict, level)], inf);
sy = {
var freq, stream, fstream, out;
stream = pat.asStream;
fstream = pat.asStream;
freq = Plug.kr(10);
Sequencer.kr({ arg i;
freq.source = (freq.source + fstream.next).wrap(10, 100);
0.0
}, Impulse.kr(ftrig));
out = ImpulseSequencer.ar(stream, Impulse.ar(ftrig));
Ringz.ar(out, freq*100, 0.01, 0.1);
};
//4.do({ arg i; sy.plot(i+1** 2 / 2) });
sy.play;
)
//___________________________cantor jam (SC2)
(
var modict, pat, sy, ftrig, level;
var magnification;
level = 11;
modict = IdentityDictionary[
0 ->[0, 0, 0],
1 - [1, 0, 1]
];
pat = Pseq([Prewrite( Pseq([1]), modict, level)], inf);
{
magnification = MouseX.kr(1000, 10000);
sy = {
var freq, stream, fstream, out, fmul, ftrig, mod;
fmul = 15 + 10.0.rand2;
mod = 100 + 30.rand2;
stream = pat.asStream;
fstream = pat.asStream;
freq = Plug.kr(0, 0);
ftrig = 3**level/magnification;
Sequencer.kr({ arg i;
freq.source = (freq.source + fstream.next) % mod;
0.0
}, Impulse.kr(ftrig));
out = ImpulseSequencer.ar(stream, Impulse.ar(ftrig));
Pan2.ar(
SinOsc.ar(freq*fmul + 40, LFNoise2.kr(2000, pi/4), 0.01)
+ Ringz.ar(out, freq*fmul*6/5 + 40, 0.1, 0.1)
, 1.0.rand2);
};
//4.do({ arg i; sy.plot(i+1 2 / 2) });
OverlapTexture.ar(sy, 14, 14, 3, 2)
}.play;
)
/*authors so far: jrh 2001 */ |
regarding Prewrite [see: L-Systems in SC] |