Ok. I'm clear on what you're doing. The question now is should numGrains and grainLength be control or audio rate parameters? If grainLength is allowed to be audio rate, then it doesn't make sense to cache the window function and could lead to dropouts in any case. numGrains could be made audio rate without any technical limitations. What are your thoughts?