Groove quantization is taking the notes in a segment
and moving their start times slightly so as to match up
with a grid of (presumably not quite regular) start
times in a groove track.
There are broadly two ways we could do this:
Function X. Select the segments you want to quantize
and the source of the groove track (another segment?),
and then apply Function X which distorts the starting
times of the notes in the selected segments slightly so
as to match those in the groove track. (Obvious
stuff.) This has the big advantage that you can use it
to groove-quantize only some segments from a
composition (apply a lagging groove quality to the drum
part only, for example) and leave the rest locked down
or as recorded.
Function Y. Select a segment to be the groove track,
and then apply Function Y which effectively quantizes
that segment as normal but adds tempo changes in such a
way as to ensure that the segment sounds exactly as it
did before, when played. These tempo changes act to
change the timings of the other segments that are
playing simultaneously, giving them that
groove-quantized feeling. This has the big advantage
that it ends up with all the segments looking tidily
quantized for editing in notation editor or wherever,
and gives a meaningful tempo map; it has the
disadvantage (compared to Function X) that it must
apply to every segment in the composition (at a given
time) so you'd have to deal with your drum track before
you record anything else or else risk being unable to
add the groove to the drum track afterwards.
We could probably do with both: Function X because it's
flexible and relatively easy to understand, Function Y
because being able to generate the tempo map is pretty
powerful and it's an attractive tool for tidying a
recording for notation without making it sound awful.
But other suggestions welcome -- I have no idea how
this stuff is done in other applications.