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.
126 lines
2.2 KiB
Plaintext
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*/
|