Mono/Poly switch for live patch?


#1

Hi - I am wondering what is the best practice to create a switch that will allow an instrument to be set to polyphonic or mono - maybe even to switch number of polyphonic voices.

Without getting into heavy programming, it seems to me that the easiest is to simply load different instruments into the axoloti active live memory and not to get too involved in building it all into a single instrument. The minus of course is that its an entirely other instrument so patches will be different.

Another nonelegant solution is running multiple copies of the instrument live - minus of course is processing power need.

Are these the only options for now?

for the record - i am just wondering - i am not complaining or pushing for this to be on roadmap. It will help me build my project!


#2

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 smile


#3

thanks for the reply. Yeah mostly same thoughts here - I am very happy with current architecture and stability so don't want to push for features that are against the design. Soo..anyway, I can easily work our how to do mono and poly versions in my design now.