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 test ag ain.scd

55 lines
1.3 KiB
Plaintext

(
// Load single buffer (user switches manually)
b = Buffer.read(s,
"/home/lcoogan/snd/live/2025-04-26.Basic_City_Brewery/granular/Cantorial/old/Ribono_Shel_Olom.wav");
)
(
// SynthDef without the combo switch functionality
SynthDef(\pv16knob, {
|out=0,
bufnum=0,
l1CC=0, l2CC=0, // CC values (no combo switching)
l1Amp=1, l2Amp=1,
pvAmp=1, pvMix=1,
fil1Type=0, res1=0.3, fil2Type=0, res2=0.3,
verb=0, comb=0, fold=0, sply=0,
mast=1
|
var sig, chain, base, fftSize = 2048;
base = PlayBuf.ar(1, bufnum, loop: 1);
sig = base;
chain = FFT(LocalBuf(fftSize), sig);
// IFFT and effects applied directly to the signal
sig = IFFT(chain) * l1Amp + IFFT(chain) * l2Amp;
sig = SelectX.ar(pvMix, [base, sig]) * pvAmp;
// Filters
sig = Select.ar(fil1Type, [
RLPF.ar(sig, 1200, res1),
LPF.ar(sig, 1200),
HPF.ar(sig, 1200),
BPF.ar(sig, 1200),
Formlet.ar(sig, 1000, 0.05, 0.005)
]);
sig = BLowShelf.ar(sig, 500, 1, res2) + BHiPass.ar(sig, 1500, res2);
// Effects
sig = FreeVerb.ar(sig, mix: verb);
sig = CombC.ar(sig, 0.3, 0.2, comb * 0.5);
sig = Fold.ar(sig, 1 + fold);
sig = Splay.ar(sig) * sply;
Out.ar(out, sig * mast);
}).play;
)
(
// Instantiate the synth
~pvSynth = Synth(\pv16knob, [\bufnum, b.bufnum]);
)