Alternate voice allocation algorithm


#1

So it seems that the Parva only has a simple FIFO ( first in first out ) voice allocation algorithm. This means that each new note is allocated a new voice card.

Another very useful allocation is to re-use the same voice card when the same notes are re-triggered. This makes it easier to make a polysynth behave like a real instrument. For example, when I play a C3 note on a piano twice in a row, the 2nd C3 note interrupts the first one, and effectively re-uses that voice ( there’s only one C3 string on a piano )

This makes chords played with longer sustain clearer, because you don’t end up having multiple voices playing the same notes. Here’s a more complete explanation from another poly’s manual:

  1. Poly – in polyphonic mode, up to eight voices can sound simultaneously: depending on how many voices are assigned in the Patch, this means that you can play up to eight notes simultaneously. If you play the same note repeatedly, each note will be assigned a different voice, and you will hear the individual envelopes of every note.

  2. Poly2 – in this alternative polyphonic mode, successively playing the same note(s) uses the same voices, the voices being re-triggered by new notes. This can change the behaviour of voice stealing.

For example, in Poly mode, when playing chord shapes with similar notes (e.g., Amin7 to Cmaj) the notes C, E and G will be played twice as well as the A and the B, i.e., a total of eight voices. If playing a melody in the other hand, one voice from the first chord will be stolen, which may be the lowest A. If Mode is set to Poly 2, the C, E and G will
only be played once, which will leave three voices free for playing a melody.


#2

That’s a very good idea. For Poly2 there should be two options:

  1. Retrigger: the envelopes will be “cutted” and retriggered, when the same note on the same card should sound
  2. nonRetrigger: the envelope starts at the level where there are. If there is a long release, it could be that the envelope isn’t at zero level if the new (same) note is played, with nonretrigger the envelope attack will rise from this point on.
    I like this modes on my Oberheim Matrix 12, it has several voice-algorithm modes, and especially the reassign/nonretrigger mode is great for slow and smooth pads.

#3

Absolutely agreed for this request. It’s very important for polyphonic sounds to have envelopes not retriggering from 0 on the same voice card.