cpanner

stereo panner module to use with the chainFX effects chainer module. Controls can easily be editted for external control
Author: Remco van der Most
License: BSD
Github: sss/fx/chainer/cpanner.axo

Inlets

None

Outlets

None

Parameters

frac32.s.map rate

frac32.s.map offset

frac32.u.map depth

bool32.tgl bypass

bool32.tgl solo

Declaration
uint32_t v31 = (uint32_t)1 << 31;
uint32_t v30 = (uint32_t)1 << 30;
int32_t outL;
int32_t outR;
uint32_t phs;
int32_t rate;
int32_t depth;
int32_t TM;
int32_t F1;
int32_t F2;
int32_t FD;
bool bypass, solo;
int32_t FX(int32_t inL, int32_t inR, int32_t CV1, int32_t CV2) {
  phs += rate + (___SMMUL(rate, CV1) << 6);
  int32_t pan;
  SINE2TINTERP(phs + (CV2 << 5), pan)
  pan = pan >> 4;
  outL = inL;
  outR = inR;
  int32_t tr = ___SMMUL(outR, __USAT(-pan, 27)) << 5;
  int32_t tl = ___SMMUL(outL, __USAT(pan, 27)) << 5;
  outL += tr - tl;
  outR += -tr + tl;
  if (bypass > 0) {
    outL = inL;
    outR = inR;
  }
};
Control Rate
depth = param_depth;
MTOFEXTENDED(param_rate, rate)
rate = rate >> 8;
bypass = param_bypass;
solo = param_solo;

Privacy

© 2024 Zrna Research