transRate

Quantized maximum change-rate distortion Based on a lowpass filter, this module clamps the rate at which the input may change before sending it to the filter. This rate is related to the current amplitude of the signal and the change can be quantized as if it is an amplifier with different transistor-stages, each having a different maximum change-rate. So: mod1: sets the size of the stages, fully clockwise would be 1 stage only->no change. Lowering the control will make the stages smaller and smaller, adding more and more stages and overtones.
Author: Remco van der Most
License: BSD
Github: sss/dist/transRate.axo

Inlets

frac32buffer in

Outlets

frac32buffer out

Parameters

frac32.s.map.pitch damp

frac32.u.map mod1

frac32.u.map rate

Declaration
int32_t O1;
int32_t prev;
int32_t cap1;
int32_t cap2;
Init
SINE2TINTERP(1 << 30, O1)
Control Rate
int32_t damp;
MTOF(param_damp, damp)
Audio Rate
int32_t in = inlet_in;
int32_t comp;
int32_t offs;
comp = in / (param_mod1 + 1) * (param_mod1 + 1);

int32_t rate = (comp - cap1) << 1;
rate = rate > param_rate ? param_rate : rate;
rate = rate < -param_rate ? -param_rate : rate;
cap1 = ___SMMLA(rate, damp, cap1);

outlet_out = in - cap1;
prev = inlet_in;

Privacy

© 2024 Zrna Research