I see that you have layered a Buffer-style API on top of your per-sample code (api-buffer-effects.js), and I could still be missing something, but it looks like that just automates the call to process each sample individually --
//api-buffer-effect
self.effects[n].pushSample(buffer[i + n], 0);
//api-generator
out[i + n] = this.getMix(n) * this.mix + buffer[i + n];
This is very different from being able to process batches of samples within your effect or osc code -- even if the JIT inlines the functions of this.mix, you will still incur unnecessary setup cost.Of course, without profiling this is just speculation.