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

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', name: 'fft_freeze',
func: { func: {
var sig = 0;
var in = In.ar(\in.kr(0), 1); 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( var chain = FFT(
LocalBuf(2048), LocalBuf(2048),
in in
); );
var frozen = PV_Freeze(chain, isOn); // set: фронт «гейт взведён И амплитуда выше порога» (0 -> 1)
var jittered = PV_PhaseShift(frozen, \phaseJitter.kr(0) * TRand.kr(0, 2pi) * isOn); var set = HPZ1.kr(gate * above) > 0;
var sig = IFFT(jittered); // 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; sig;
}, },
@ -24,5 +34,6 @@ saturationSteps: 4,
specs: ( specs: (
freezeGate: [0, 1, \step, 1, 0], freezeGate: [0, 1, \step, 1, 0],
phaseJitter: [0, 1, \lin, 0.01, 0.1], phaseJitter: [0, 1, \lin, 0.01, 0.1],
ampThresh: [0, 1, \lin, 0.001, 0.02],
), ),
) )

Loading…
Cancel
Save