I'm not really sure if this should be in the 1.0.10 thread or separate, but it is not really directly related to 1.0.10, although commit 90adea74fbbc4dbf676832f2c28b408c607c89aa (GUI: polyphonic voice allocation - keep cycling when repeating one note) made me think of it.
What has struck me about polyphonic patches in Axoloti is that there is no control over the voice allocation. Many synths have a couple of assignment modes, often with slightly obscure names like Poly 1 and Poly 2. In practice there are a number of things that could be configured, and in such a flexibile system as the Axoloti I think it should be possible.
Things such as:
- Should playing voices be robbed for new notes when the polyphony llimit is reached?
- Should the same voice be played when playing the same note, or should a new voice be allocated?
- If more notes than voices have been played, and notes are released, should the notes that were once silenced be played again (in essence, a polyphonic version of the monophonic behavior that when two notes are played, and the second one released, the first one is heard again).
- etc
Also, the sustain pedal behavior could be taken into account. A handy pedal mode is 'sostenuto', whereby the sustain pedal only holds notes that were playing at the time the pedal was pressed, newly played notes aren't sustained. This allows you to play a couple of notes as a drone and then play on top of that. (It mimics the middle pedal on certain grand pianos which have this feature).
I feel it's not possible to make the voice allocation choices once and for all, it depends on the patch what is suitable. For instance, if playing a repeated note, if the patch is a drum or piano sound, it more accurately mimics the corresponding acoustic instrument if the same voices is triggered - and that also avoids stealing voices that are already playing. On a pad sound, it can tend to cut off the release of the previous note, so having a cyclic assignment might be better. So, these choices should be up to the user.
It would also be nice to have a panel in the UI where the individual voices lit up as indicators so you could see which voices are in fact allocated.
What I'm thinking is an object with no actual connections, with a number of parameters in the form of switches which control the allocation modes. If no such object is present in the patch, a default allocation scheme is used. Such an 'allocation' object could also have a row of indicators for the actual voices playing.
I don't know if anything like that is planned. I don't mind looking into it in due course if there's any interest. I feel voice allocation is a fairly important thing to have control over.