random stuff
parent
3c05c619d7
commit
b6d05ace47
@ -0,0 +1,12 @@
|
||||
(
|
||||
{
|
||||
|
||||
var freq = 440;
|
||||
var pulse = LFPulse.ar(freq, 0, 0.5);
|
||||
var env = EnvGen.kr(Env.perc(0.01, 0.5), doneAction: 2);
|
||||
(pulse * env * 0.2).dup
|
||||
}.play;
|
||||
)
|
||||
|
||||
|
||||
|
||||
@ -0,0 +1,27 @@
|
||||
(
|
||||
s.waitForBoot {
|
||||
~buf1 = Buffer.read(s, "/home/lcoogan/snd/samples/freesound/vocals/ymaaela/333264__ymaaela__female-vocal-cut-ups-collage.mono.wav");
|
||||
~buf2 = Buffer.read(s, "/home/lcoogan/snd/samples/freesound/vocals/ymaaela/attribution/330909__ymaaela__discordant-clip.mono.wav");
|
||||
|
||||
SynthDef(\crossfadeBuf, { |out=0, buf1, buf2, crossfade=0, rate=1|
|
||||
var sig1 = PlayBuf.ar(1, buf1, rate * BufRateScale.kr(buf1), loop: 1);
|
||||
var sig2 = PlayBuf.ar(1, buf2, rate * BufRateScale.kr(buf2), loop: 1);
|
||||
var mix = XFade2.ar(sig1, sig2, (crossfade * 2) - 1);
|
||||
Out.ar(out, mix ! 2);
|
||||
}).add;
|
||||
|
||||
s.sync;
|
||||
|
||||
~synth = Synth(\crossfadeBuf, [\buf1, ~buf1.bufnum, \buf2, ~buf2.bufnum]);
|
||||
|
||||
// Create a routine to update crossfade randomly every ~1 second with smooth transitions
|
||||
Routine({
|
||||
loop {
|
||||
var target = rrand(0.0, 1.0); // random target crossfade between 0 and 1
|
||||
// Smoothly glide to the new target over 1 second
|
||||
~synth.set(\crossfade, target, \lag, 1);
|
||||
1.wait; // wait 1 second before choosing a new target
|
||||
}
|
||||
}).play;
|
||||
};
|
||||
)
|
||||
@ -0,0 +1,46 @@
|
||||
(
|
||||
s.waitForBoot {
|
||||
~buf1 = Buffer.read(s, "/home/lcoogan/snd/samples/freesound/vocals/ymaaela/333264__ymaaela__female-vocal-cut-ups-collage.mono.wav");
|
||||
~buf2 = Buffer.read(s, "/home/lcoogan/snd/samples/scarlett/clickin.mono.wav");
|
||||
~buf3 = Buffer.read(s, "/home/lcoogan/snd/samples/scarlett/scarlett singing.mono.wav");
|
||||
|
||||
SynthDef(\crossfade3Buf, { |out=0, buf1, buf2, buf3, gain1=1, gain2=0, gain3=0, rate=1.2|
|
||||
var sig1 = PlayBuf.ar(1, buf1, rate * BufRateScale.kr(buf1), loop: 1);
|
||||
var sig2 = PlayBuf.ar(1, buf2, rate * BufRateScale.kr(buf2), loop: 1);
|
||||
var sig3 = PlayBuf.ar(1, buf3, rate * BufRateScale.kr(buf3), loop: 1);
|
||||
|
||||
var mix = sig1 * gain1 + sig2 * gain2 + sig3 * gain3;
|
||||
|
||||
mix = GVerb.ar(mix, damping:1);
|
||||
Out.ar(out, mix ! 2);
|
||||
}).add;
|
||||
|
||||
s.sync;
|
||||
|
||||
~synth = Synth(\crossfade3Buf, [
|
||||
\buf1, ~buf1.bufnum,
|
||||
\buf2, ~buf2.bufnum,
|
||||
\buf3, ~buf3.bufnum,
|
||||
\gain1, 0,
|
||||
\gain2, 0,
|
||||
\gain3, 1
|
||||
]);
|
||||
|
||||
Routine({
|
||||
var prevGains = [1.0, 0.0, 0.0];
|
||||
loop {
|
||||
var newGains = Array.fill(3, { rrand(0.0, 1.0) });
|
||||
var sum = newGains.sum;
|
||||
newGains = newGains.collect { |g| g / sum }; // normalize gains to sum to 1
|
||||
|
||||
// Smoothly interpolate each gain from prev to new over 1 second using \lag
|
||||
~synth.set(\gain1, newGains[0], \lag, 0);
|
||||
~synth.set(\gain2, newGains[1], \lag, 0);
|
||||
~synth.set(\gain3, newGains[2], \lag, 0);
|
||||
|
||||
prevGains = newGains;
|
||||
0.1.wait;
|
||||
}
|
||||
}).play;
|
||||
};
|
||||
)
|
||||
Loading…
Reference in New Issue