Share parameters between voices in a synth
We are having problems with memory usage, e.g. on smaller-memory MCUs like the RP2040 with 260 kB RAM.
The biggest memory item is the struct synthinfo of about 800 bytes which is allocated for each osc, 180 by default. That's about 150 kB right there.
But when AMY is being used as a polyphonic synth, you end up with multiple, identically-configured 'voices' to produce polyphony. Those voices have identical parameters (in terms of control coefficients, envelope parameters, etc), but each voice is stored as a separate copy.
If these parameters were stored separately from the state that must be held individually for each voice (like the current note and velocity), we could massively reduce the RAM usage for polyphonic synths.
It's a big change, though.