read interp

delay read, linear interpolated
Author: Johannes Taelman
License: BSD
Github: delay/read interp.axo

Inlets

frac32buffer delay time (fraction of total delayline size)

Outlets

frac32buffer wave

Parameters

frac32.u.map time

Attributes

objref delayname

Audio Rate
uint32_t tmp_d = __USAT(param_time + inlet_time, 27);
uint32_t tmp_di = attr_delayname.writepos -
                  (tmp_d >> (27 - attr_delayname.LENGTHPOW)) - BUFSIZE +
                  buffer_index - 1;
uint32_t tmp_w1 = (tmp_d << (attr_delayname.LENGTHPOW + 3)) & 0x3FFFFFFF;
uint32_t tmp_w2 = (1 << 30) - tmp_w1;
int32_t tmp_a1 = attr_delayname.array[tmp_di & attr_delayname.LENGTHMASK] << 16;
int32_t tmp_a2 = attr_delayname.array[(tmp_di + 1) & attr_delayname.LENGTHMASK]
                 << 16;
int32_t tmp_r = ___SMMUL(tmp_a1, tmp_w1);
tmp_r = ___SMMLA(tmp_a2, tmp_w2, tmp_r);
outlet_out = tmp_r;

Privacy

© 2024 Zrna Research