Включение фриза при изменении амплитуды

main
lambda 1 month ago
parent d0c8667161
commit c7d0702130
No known key found for this signature in database
GPG Key ID: CF45A8EE158BBCB6

@ -1,16 +1,26 @@
(
name: 'fft_freeze',
func: {
var sig = 0;
var in = In.ar(\in.kr(0), 1);
var isOn = \freezeGate.kr(0);
var gate = \freezeGate.kr(0);
var amp = Amplitude.kr(in, 0.01, 0.05);
var above = amp > \ampThresh.kr(0.02);
var chain = FFT(
LocalBuf(2048),
in
);
var frozen = PV_Freeze(chain, isOn);
var jittered = PV_PhaseShift(frozen, \phaseJitter.kr(0) * TRand.kr(0, 2pi) * isOn);
var sig = IFFT(jittered);
// set: фронт «гейт взведён И амплитуда выше порога» (0 -> 1)
var set = HPZ1.kr(gate * above) > 0;
// reset: снятие гейта (1 -> 0)
var reset = HPZ1.kr(gate) < 0;
var isOn = SetResetFF.kr(set, reset);
chain = PV_Freeze(chain, isOn);
chain = PV_RandComb(chain, \wipe.kr(0.7), \reshuffle.kr(0.5));
chain = PV_BinShift(chain, \binShift.kr(0), \stretch.kr(1));
sig = IFFT(chain) * isOn;
sig;
},
@ -24,5 +34,6 @@ saturationSteps: 4,
specs: (
freezeGate: [0, 1, \step, 1, 0],
phaseJitter: [0, 1, \lin, 0.01, 0.1],
ampThresh: [0, 1, \lin, 0.001, 0.02],
),
)

Loading…
Cancel
Save