sawizer

creates steps or spikes in your signal depending on parameter settings "range" sets the stepsize, just like a quantizer. "direction" sets the volume of the part within each step, result is added to the step. positive values enlarge the part, amplifying the lower half of the negatively and the upper half positively. negative values first attenuate the part, creating a stepped/quantized signal. negative values then start to invert the part, creating inverted spikes. "mix" mixes between original and changed signal
Author: Remco van der Most
License: BSD
Github: sss/dist/sawizer.axo

Inlets

frac32buffer in

frac32 range

frac32 direction

frac32 mix

Outlets

frac32buffer out

Parameters

frac32.s.map range

frac32.s.map direction

frac32.u.map mix

Control Rate
int32_t mix = (param_mix + inlet_mix);
mix = mix > 0 ? mix : -mix;
mix = mix > (1 << 27) ? (2 << 27) - mix : mix;
int32_t miix = mix << 3;
mix = ((1 << 27) - mix) << 3;
Audio Rate
int32_t param = param_range + inlet_range;
int32_t direction = param_direction + inlet_direction;
param = param == 0 ? param + 1 : param;
int32_t range = inlet_in / param;
int32_t left = inlet_in - range * param;
outlet_out = ___SMMUL((range * param +
                       ___SMMUL(left << 3, ((1 << 27) + (direction << 1)) << 2))
                          << 3,
                      miix) +
             ___SMMUL(mix, inlet_in << 2);

Privacy

© 2024 Zrna Research