SelfPMCple

Author: Smashed Transistors
License: LGPL
Github: tiar/dev/SelfPMCple.axo

Inlets

frac32.bipolar pitch_slave

frac32.bipolar pitch2

frac32.bipolar fb1

frac32.bipolar fb2

frac32.bipolar fb21

frac32.bipolar fb12

Outlets

frac32buffer.bipolar y1

frac32buffer.bipolar y2

Parameters

frac32.s.map.pitch pitch1

frac32.s.map.pitch pitch2

Declaration
int32_t y1 = 0, y2 = 0, dp1, dp2;
uint32_t p1, p2;
Control Rate
/*MTOFEXTENDED(param_pitch_space_master + inlet_pitch_space_master,  dpM);
float f_dpM = 4294967296.0f / dpM;
MTOFEXTENDED(param_pitch_space_slave + inlet_pitch_space_slave, dp);
beta = inlet_beta + param_beta;
beta = 51*(beta>>6);
_dpM = (uint32_t)f_dpM;
*/

MTOFEXTENDED(param_pitch1 + inlet_pitch1, dp1);
MTOFEXTENDED(param_pitch2 + inlet_pitch2, dp2);
Audio Rate
p1 += dp1;
p2 += dp2;
for (int i = 0; i < 2; i++) {
  int32_t v1 =
      sine2t[(___SMMLA(y2, inlet_fb21, ___SMMLA(y1, inlet_fb1, p1 >> 8)) >>
              12) &
             4095] >>
      4;
  int32_t v2 =
      sine2t[(___SMMLA(y1, inlet_fb12, ___SMMLA(y2, inlet_fb2, p2 >> 8)) >>
              12) &
             4095] >>
      4;
  y1 = ___SMMLA(0x40000000, v1 - y1, y1);
  y2 = ___SMMLA(0x40000000, v2 - y2, y2);
}
outlet_y1 = y1;
outlet_y2 = y2;

Privacy

© 2024 Zrna Research