So I've been scratching my head for a few days now about this issue.
I have an fm granular synthesiser, using 40+ voices to account for overlapping grains, and have recently wanted to integrate this into a 'playable' synth controlled by MID input. As such, I have nested this poly~ into a parent poly~ to enable up to 8 voice polyphony. See attached patch + included dependencies. I have had no problems with CPU, and general message and voice allocation seems to be in working order.
However, I have an issue related to voice management that seems related to the communication between the parent and child polys. When I change parameters in the parent (whether using a preset object or manually), some parameters aren't reflected in the output immediately, but only after the parent poly's voice allocation has gone through all 8 voices. Where the is most noticeable is in the grain duration parameter.
For example, I am playing with a long grain duration (controlling the ramp through a hanning window). When I change to a setting with a short duration, the first grain of each voice (parent voice) retains the previous length, whilst the rest follow with the new setting. This is true for the rest of the parent voices until the first voice is re-triggered, where the change has taken effect.
I was convinced this was an order of events issue I was over looking, as it seemed like a classic polyphonic voice management issue to me at first. However, after trying a number of approaches, and lots of debugging and troubleshooting, I can't make heads or tails of the issue.
Thanks in advance!