I think the issue is 'reclaiming resources'...
i.e. 16 voices uses 16x more memory, cpu that 1 voice
forgetting this for a moment...
if you set to the max number of voices, then you can 'dynamically' control the number of voices (N) to some extent with using voice index... the only issue is you could not control the 'note stealing algorithm'. you would be forced to just ignore notes over N.
the issue is if you have max set to 8 voices, then your are using 8x resources even if you are playing in monophonically.
(not quite true, but close)
but this is a solution that would work now.
this really is not avoidable... since axoloti determines the resources used at compile time.
this is partly so we don't have to do 'dynamic' allocation (which opens up various problems), it would not be impossible to change this... but quite involved if we wanted to allow other parts of axoloti to make use of this allocation too.
... so not a short term goal, and one that is not all pro's, it does have negatives which would have to be carefully considered.
my personal solution, would be to have different instruments in different patches, that are loading dynamically from SDcard... this keeps them efficient whilst, still being reasonably dynamic.
another (perhaps unrelated) feature... is it would perhaps be nice if we could dynamically load more than one patch at a time, consider this to be an 'instrument' (each new instrument like a daws track?) , and also FX which would be then added to an instrument (like an FX on a track)
e.g. then you could say....
load instrument 1, load reverb effect (or chorus)
this would require 2 things though...
a) some guard on resources, obviously you could still only load another FX if you have enough memory etc.
b) some concept of chaining audio ... how do you know that the audio from the instrument is channel to the FX?
(DAWs do have this concept, of FX being different from other instruments so its very possible... )
the issue with this kind of behaviour is Axoloti is built like it is, to cope well with the limited resources... the more dynamic you make it, the less efficient it will be AND also invite audio glitches due to CPU spikes.
so perhaps its better to keep it simple!
anyway just some random rambling