|
|
|
|
@ -14,7 +14,10 @@ b = Buffer.read(s, "/home/lcoogan/snd/releases/desolation-mountain/01. Crawling
|
|
|
|
|
|
|
|
|
|
b = Buffer.read(s, "/home/lcoogan/Misc/ametsub.wav");
|
|
|
|
|
|
|
|
|
|
b = Buffer.read(s, "/home/lcoogan/snd/releases/desolation-mountain/03. Daven That Dark Matter 'Till Harsh Light Slows Sight.wav");
|
|
|
|
|
|
|
|
|
|
b = Buffer.read(s, "/home/lcoogan/snd/releases/desolation-mountain/daven.stems/3_overhead.wav");
|
|
|
|
|
b = Buffer.read(s, "/home/lcoogan/snd/releases/desolation-mountain/daven.stems/2_TripleOscillator.wav"); // use this one on the last one
|
|
|
|
|
|
|
|
|
|
(
|
|
|
|
|
SynthDef(\convolvCrossfade, {
|
|
|
|
|
@ -36,10 +39,42 @@ SynthDef(\convolvCrossfade, {
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x = Synth(\convolvCrossfade, [\mix, 0.0]); // 50/50 blend
|
|
|
|
|
x = Synth(\convolvCrossfade, [\mix, 1.0]);
|
|
|
|
|
|
|
|
|
|
x.set(\mix, 0);
|
|
|
|
|
x.set(\mix, 0.5); // Mostly IR B
|
|
|
|
|
x.set(\mix, -1.0); // Only IR A
|
|
|
|
|
x.set(\mix, 1.0); // Only IR B
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Modulate between the two
|
|
|
|
|
|
|
|
|
|
(
|
|
|
|
|
SynthDef(\convolvCrossfadeLFO, {
|
|
|
|
|
var sig, convA, convB, mix;
|
|
|
|
|
|
|
|
|
|
sig = PlayBuf.ar(1, b, 1, loop: 0, doneAction: 2);
|
|
|
|
|
|
|
|
|
|
// Run both convolutions
|
|
|
|
|
convA = Convolution2.ar(sig, ~irA.bufnum, 512);
|
|
|
|
|
convB = Convolution2.ar(sig, ~irB.bufnum, 512);
|
|
|
|
|
|
|
|
|
|
// LFO modulation for crossfade: -1 to +1
|
|
|
|
|
mix = SinOsc.kr(\lfoFreq.kr(0.2), 0); // add \lfoFreq arg
|
|
|
|
|
|
|
|
|
|
// Crossfade logic as before
|
|
|
|
|
// convA = convA * ((1 - mix) * 0.5);
|
|
|
|
|
// convB = convB * ((1 + mix) * 0.5);
|
|
|
|
|
|
|
|
|
|
Out.ar(0, (convA + convB).dup * 0.1);
|
|
|
|
|
}).add;
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x = Synth(\convolvCrossfadeLFO, [\lfoFreq, 0.1]); // very slow modulation
|
|
|
|
|
x.set(\lfoFreq, 0.1);
|
|
|
|
|
x.set(\lfoFreq, 9); // faster modulation
|
|
|
|
|
|
|
|
|
|
s.record;
|
|
|
|
|
|