What's a good way to make poly expanders?

The straight-forward way to make an expander is to have a float buffer for each signal and copy on every sample. But that would be REALLY slow if you had, say, 4 16 channel outputs on an expander - 64 double copies.


If you use 4 patch cables with 16 channels, you’re copying 64 floats anyway, so it would be the same CPU.

1 Like

Does the VCV audio engine copy them 4 at a time with float vectors, or use any other optimizations?

This is the current implementation. https://github.com/VCVRack/Rack/blob/v1/src/engine/Engine.cpp#L286

cool - tx for the pointers!