It should be possible to change the ramp length on-the-fly (while the object is granulating). For reasons of speed, ramps were originally (and still are) generated for the user-specified length when changed and with the object 'off'. This is speedy because the index into the ramp is simply incremented (++).
This could be improved by generating a single long ramp to be used for all lengths, of the window type requested by the user, then stepping through this using float increments determined by the user-requested actual ramp length. We could linearly interpolate or (faster) merely truncate. The latter would probably not be audible (famous last words?).
It should be possible to change the ramp length on-the-fly (while the object is granulating). For reasons of speed, ramps were originally (and still are) generated for the user-specified length when changed and with the object 'off'. This is speedy because the index into the ramp is simply incremented (++).
This could be improved by generating a single long ramp to be used for all lengths, of the window type requested by the user, then stepping through this using float increments determined by the user-requested actual ramp length. We could linearly interpolate or (faster) merely truncate. The latter would probably not be audible (famous last words?).