Цитата Сообщение от alone Посмотреть сообщение
const unsigned TICK_FF = 6; // oversampling ratio: 2^6 = 64
const unsigned TICK_F = (1<<TICK_FF);

...

scale = filter_diff[(endtick & (TICK_F-1)) + TICK_F] - filter_diff[(tick & (TICK_F-1)) + TICK_F];
s2_l += mix_l * scale;
s2_r += mix_r * scale;

scale = filter_diff[endtick & (TICK_F-1)] - filter_diff[tick & (TICK_F-1)];
s1_l += mix_l * scale;
s1_r += mix_r * scale;
А ничего что накопление происходит на частоте чипа (~222кГц) и только потом на звуковой частоте фильтруется усреднением по двум семплам?

Если честно, код в US - это ахтунг. И все последующие исправления, даже сдобренные комментариями, ничуть ситуацию не улучшают.