frac32buffer position
frac32buffer output
combo sample
combo size
static const uint32_t LENGTHPOW = (attr_size);
static const uint32_t LENGTH = (1 << attr_size);
static const uint32_t LENGTHMASK = ((1 << attr_size) - 1);
static const uint32_t BITS = 16;
static const uint32_t GAIN = 12;
extern int16_t _binary_attr_sample_raw_start;
uint32_t asat = __USAT(inlet_pos, 27);
int index = asat >> (27 - LENGTHPOW);
int32_t y1 = (((int16_t *)(&_binary_attr_sample_raw_start))[index]) << GAIN;
int32_t y2 = (((int16_t *)(&_binary_attr_sample_raw_start))[index + 1]) << GAIN;
int frac = (asat - (index << (27 - LENGTHPOW))) << (LENGTHPOW + 3);
int32_t rr;
rr = ___SMMUL(y1, (1 << 30) - frac);
rr = ___SMMLA(y2, frac, rr);
outlet_o = rr << 2;