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_generative_using_l...

32 lines
846 B
Plaintext

(
SynthDef(\voiceEvolving, {
arg out=0, bufnum, amp=0.5, windowSize=1024;
var in, chain, sig;
var smearAmt, shiftAmt, wipeTrig;
in = PlayBuf.ar(1, bufnum, BufRateScale.kr(bufnum), loop: 1);
// FFT processing
chain = FFT(LocalBuf(windowSize), in);
// Slowly changing modulation sources
smearAmt = LFNoise1.kr(0.1).range(5, 50); // how smeared the spectrum is
shiftAmt = LFNoise1.kr(0.07).range(-30, 30); // shifting bins in pitch space
wipeTrig = Dust.kr(0.3); // occasional spectral dropouts
// PV mutations
chain = PV_MagSmear(chain, smearAmt);
chain = PV_BinShift(chain, shiftAmt);
chain = PV_RandWipe(chain, wipeTrig);
sig = IFFT(chain) * amp;
// Optional: gentle filtering
sig = LPF.ar(sig, 1000);
Out.ar(out, sig.dup);
}).add;
)
Synth(\voiceEvolving, [\bufnum, b, \amp, 0.4]);