You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
scd/spectral progr.scd

126 lines
2.2 KiB
Plaintext

// TODO
(
5.do { |i|
SynthDef(("layer0_struct" ++ i).asSymbol, {
arg buf, out, fftSize = 1024, amp = 0.3;
var in, chain, sig, wipe, trig, interp, stretch, shift, threshold, factor, freeze, lfo;
var wipeFreq = 0.2;
var wipeDepth = 1;
// Sample playback
in = PlayBuf.ar(1, buf, BufRateScale.kr(buf), loop: 1);
// FFT
chain = FFT(LocalBuf(fftSize), in);
// Unique spectral processing per struct
switch(i,
0, {
wipe = SinOsc.kr(wipeFreq).range(wipeDepth, 0.85);
trig = Impulse.kr(SinOsc.kr(0.1).range(1, 10));
chain = PV_RandComb(chain, wipe, trig);
chain = PV_BrickWall(chain, wipe);
},
1, {
wipe = SinOsc.kr(wipeFreq).range(wipeDepth, 0.85);
trig = 0.0;
stretch = 1.0;
shift = 0.0;
interp = 0;
chain = PV_RandComb(chain, wipe, trig);
chain = PV_BinShift(chain, stretch, interp);
},
2, {
freeze = 0.0;
wipe = 0.0;
chain = PV_MagFreeze(chain, freeze);
chain = PV_BrickWall(chain, wipe);
},
3, {
threshold = 0.0;
factor = 0.1;
chain = PV_MagAbove(chain, threshold);
chain = PV_MagSmooth(chain, factor);
},
4, {
trig = 0.0;
chain = PV_PhaseShift90(chain);
chain = PV_Diffuser(chain, trig);
}
);
sig = IFFT(chain);
Out.ar(out, sig.dup * amp);
}).play;
};
)
(
5.do { |i|
SynthDef(("layer0_textu" ++ i).asSymbol, {
arg buf, out, fftSize = 1024, amp = 0.3;
var in, chain, sig, wipe, trig;
// Sample playback
in = PlayBuf.ar(1, buf, BufRateScale.kr(buf), loop: 1);
// FFT
chain = FFT(LocalBuf(fftSize), in);
// Unique spectral processing per struct
switch(i,
0, {
chain = PV_RandComb(chain);
chain = PV_BinScramble(chain);
chain = PV_BinWipe(chain, chain);
},
1, {
chain = PV_RandComb(chain);
chain = PV_BinShift(chain);
chain = PV_Diffuser(chain);
},
2, {
chain = PV_MagSquared(chain);
chain = PV_RectComb(chain);
},
3, {
chain = PV_MagFreeze(chain);
chain = PV_BinWipe(chain, chain);
},
4, {
chain = PV_BrickWall(chain);
chain = PV_MagSmooth(chain);
}
);
sig = IFFT(chain);
Out.ar(out, sig.dup * amp);
}).play;
};
)
/*# Effects
Verb CC12 convolution reverb
Comb CC13 comb filter
Fold CC14 wave folding
Sply CC15 splay*/