play~ is chosen over groove~ for granular synthesis because its triggering allows efficient per-grain enveloping
Max/MSP offers two objects for reading a buffer~: groove~ (continuous, variable-speed looping) and play~ (discrete triggered playback). For granular synthesis play~ is preferred because the way you trigger it integrates naturally with per-grain amplitude enveloping — you can shape each grain’s attack and release cleanly — and because it is more efficient for the many short discrete reads granular synthesis needs. This is not an absolute rule: groove~ can also be made to work, but it requires extra effort to reset phase and envelope each grain, whereas play~ matches the granular model of discrete triggered events. Per-grain enveloping matters because reading a raw fragment with hard edges produces clicks at the grain boundaries; a smooth attack/release window removes them.
Examples
In a Max granulator, a trigger (e.g. a metro) fires play~ once per grain and an amplitude envelope shapes each grain’s attack/release; using groove~ instead would need a separate mechanism to re-trigger and window each grain.
Assessment
State one reason play~ suits granular synthesis better than groove~, and explain in one sentence what per-grain enveloping prevents perceptually.