IO Variants: 2
Variant: 1
frac32.bipolar pitch
bool32.rising reset phase
frac32.positive 0 deg sine wave
frac32.positive 120 deg sine wave
frac32.positive 240 deg sine wave
frac32.s.map.lfopitch pitch
uint32_t phase;
uint32_t old_reset;
phase = 0;
old_reset = 0;
if (inlet_reset && !old_reset) {
phase = 0;
} else {
int32_t freq;
MTOFEXTENDED(param_pitch + inlet_pitch, freq);
phase += freq >> 2;
}
old_reset = inlet_reset;
int32_t sine;
SINE2TINTERP(phase, sine)
outlet_0 = (sine >> 5) + (1 << 26);
SINE2TINTERP(phase - 0x55555555, sine)
outlet_120 = (sine >> 5) + (1 << 26);
SINE2TINTERP(phase - 0xAAAAAAAA, sine)
outlet_240 = (sine >> 5) + (1 << 26);
Variant: 2
frac32.bipolar pitch
bool32.rising reset phase
frac32.bipolar 0 deg sine wave
frac32.bipolar 120 deg sine wave
frac32.bipolar 240 deg sine wave
frac32.s.map.lfopitch pitch
uint32_t phase;
uint32_t old_reset;
phase = 0;
old_reset = 0;
if (inlet_reset && !old_reset) {
phase = 0;
} else {
int32_t freq;
MTOFEXTENDED(param_pitch + inlet_pitch, freq);
phase += freq >> 2;
}
old_reset = inlet_reset;
int32_t sine;
SINE2TINTERP(phase, sine)
outlet_0 = (sine >> 4);
SINE2TINTERP(phase - 0x55555555, sine)
outlet_120 = (sine >> 4);
SINE2TINTERP(phase - 0xAAAAAAAA, sine)
outlet_240 = (sine >> 4);