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.

Reply via email to