The above linked video illustrates some issues with buffer clearing that can lead to very unexpected outcomes. I've tried to add a few words to the comments. But basically, there can be a lot going on when you could reasonably expect there wasn't, buffers and voices retain a presence and can re-appear depending on a few factors. In this example three different samples can be heard within the granulator and voices from earlier in the session can be reintroduced - suggesting that voices aren't being cleared in a manner you might expect - i.e. when presets change, possibly unexpected when samples are changed and really unwelcome when a voice count is raised to reveal older occurrences still happening. This is a very controlled demonstration of a phenomenon which can be even more unpredictable. Please note that when the preset changes to one with a low voice count the dials on the sequencer and sequencer still show the details for an eight voice patch, even though only one is selected - plus even with one voice we are able to load up three samples confusingly and also revisit earlier material when the voice count is raised. Hope this helps get to the bottom of it. I'm happy to be advised about those aspects which are intentional or misunderstood.
Thanks for the detailed info—I'll investigate this after the coming update.
I am aware that some aspects of this actually relate to grains as opposed to complete voices. There will be use cases where unusual outcomes are unavoidable I'm sure, but some of the aspects (especially concerning preset changing or voice count) seem more like little housekeeping things which could be tidied up.. I'm aware that this relates to a 'special' case where rate is 0
I do have a few user thoughts on this aspect of Aalto and Kaivo; it's a bit challenging sometimes to dial in the lower values close to zero .. e.g. in Kaivo, I have on occasion been able to set the value to 0.500, but it's a very tricky process to get the slowest rate without setting it to zero
Sometimes I long for a way to disarm the rate more obviously (i.e. set to 0 effectively) without tweaking the dial .. another aspect of the rate=0 dial position (as opposed to an over-riding button) is that it precludes modulation input .. this preclusion often throws me because there are no visual clues that you've effectively turned it all off .. I'm not sure if I can offer an explanation that would account for the modulation input being neutered (except if the modulation was factoring zero, but in that case it'd be okay IMHO to work from the lowest valid value as though the dial were just above zero .. so that modulation was still permissible) .. the behaviour may also be intentional
Edit: modulating the rate whilst at zero is not such a clear cut issue as such, still interesting to reflect on this relative to user expectation that the modulations could be applied
In general, any grain will keep playing until it either ends, or is stolen. As you've noted, when the retrigger rate is 0, the length of a grain is infinite, so it never ends on its own, and things get a bit weird.
When switching to a new preset, certainly I wouldn't want the old grains to end abruptly. I see the ability to "crossfade" presets as very useful. Unfortunately we are left with only the current (new) sample to display. Possibly there could be some kind of indicator that the older samples are no longer in sync with the displayed sample. making the lines dotted for example.
I can see how old samples might "reappear" if the number of voices is messed with. This would be a bug and shouldn't be hard to fix.
There is plenty of room for UI refinement. I'm going to add some kind of numeric entry solution one of these days.
Using the granulator with a rate of 0 is a feature that sort of snuck in against my better judgement. Yes, the modulation multiplies the rate, and in general the rate dial is logarithmic, like the oscillator pitch dials. So multiplying anything with 0 you get 0 again. A separate toggle for 0 might be better.