Am 03.07.26 um 16:36 schrieb Fons Adriaensen:
Plus after Bypass on then off in one the two modes (I forget ATM
which one) will result in 24 ms latency until the mode is changed.
Ah, I see now. It's the live mode.
void processChannel(Channel& ch, const Head& head, const Tail& tail,
size_t n, const float* in, float* out) {
for (size_t i = 0; i < n; ++i) {
ch.inFifo[ch.inFill++] = in[i];
if (ch.inFill == PART_SIZE) {
runBlock(ch, head, tail);
ch.prevPrevBlock = ch.prevBlock;
for (size_t j = 0; j < PART_SIZE; ++j)
ch.prevBlock[j] = ch.inFifo[j];
ch.inFill = 0;
}
out[i] = bypass ? in[i] : popOutput(ch);
}
}
should be
void processChannel(Channel& ch, const Head& head, const Tail& tail,
size_t n, const float* in, float* out) {
for (size_t i = 0; i < n; ++i) {
ch.inFifo[ch.inFill++] = in[i];
if (ch.inFill == PART_SIZE) {
runBlock(ch, head, tail);
ch.prevPrevBlock = ch.prevBlock;
for (size_t j = 0; j < PART_SIZE; ++j)
ch.prevBlock[j] = ch.inFifo[j];
ch.inFill = 0;
}
float wet = popOutput(ch);
out[i] = bypass ? in[i] : wet;
}
}
to keep it going.
Other than that I'll download your tools and check what I get.