|
|
|
@ -2,25 +2,24 @@
|
|
|
|
name: 'fft_freeze',
|
|
|
|
name: 'fft_freeze',
|
|
|
|
func: {
|
|
|
|
func: {
|
|
|
|
| buf |
|
|
|
|
| buf |
|
|
|
|
|
|
|
|
var in = In.ar(buf, 1);
|
|
|
|
|
|
|
|
var isOn = \freezeGate.kr(0);
|
|
|
|
var chain = FFT(
|
|
|
|
var chain = FFT(
|
|
|
|
LocalBuf(2048),
|
|
|
|
LocalBuf(2048),
|
|
|
|
buf,
|
|
|
|
in
|
|
|
|
);
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
var frozen = PV_Freeze(chain, \freezeGate.tr(0));
|
|
|
|
var frozen = PV_Freeze(chain, isOn);
|
|
|
|
var jittered = PV_PhaseShift(frozen, \phaseJitter.kr(0) * TRand.kr(0, 2pi));
|
|
|
|
var jittered = PV_PhaseShift(frozen, \phaseJitter.kr(0) * TRand.kr(0, 2pi) * isOn);
|
|
|
|
var sig = IFFT(jittered, \wintype.kr(1));
|
|
|
|
var sig = IFFT(jittered);
|
|
|
|
|
|
|
|
|
|
|
|
sig
|
|
|
|
sig;
|
|
|
|
},
|
|
|
|
},
|
|
|
|
inChannels: 1,
|
|
|
|
inChannels: 1,
|
|
|
|
outChannels: 1,
|
|
|
|
outChannels: 1,
|
|
|
|
requiresBuffer: true,
|
|
|
|
requiresBuffer: true,
|
|
|
|
specs: (
|
|
|
|
specs: (
|
|
|
|
|
|
|
|
freezeGate: [0, 1, \step, 1, 0],
|
|
|
|
phaseJitter: [0, 1, \lin, 0.01, 0.1],
|
|
|
|
phaseJitter: [0, 1, \lin, 0.01, 0.1],
|
|
|
|
hop: [0.0625, 1, \exp, 0.01, 0.25],
|
|
|
|
|
|
|
|
duckOnLoud: [0, 1, \lin, 0.01, 0.5],
|
|
|
|
|
|
|
|
duckThreshold: [0, 1, \lin, 0.01, 0.95]
|
|
|
|
|
|
|
|
),
|
|
|
|
),
|
|
|
|
)
|
|
|
|
)
|
|
|
|
|