Groove~ not looping backwards when sent a value outside of it's min/max window?

Rodrigo's icon

I have a patch that is using groove~ to play back a sample. I'm controlling the loop min/max points with inlets 2/3 in groove.

I've used some expr objects to reverse the playback if the minimum is greater than the maximum and this all works great.

Now I'm jumping to fixed points in groove, independent of the loop min/max.

Here things get a bit funny.

If the minimum is lower than the maximum and the sample is playing back forwards, if I jump to a point in time before the minimum is set to, it jumps back to that point in time, then loops the section chosen by min/max window. This is all good up to this point.

If the sample is playing back backwards (either by sending sig~ a -1 or by setting the minimum loop point higher than the maximum loop point like in my patch) and then selecting something outside of that playback window, it plays from where you tell it, then it stops when it gets to zero....

If playback is set to forward it again, it starts playing back (only when the loop comes back around to zero).

This seems like a bug, as it works fine going forward, but not reverse.

It also looks like you can't send it a playback point beyond the maximum loop point (like you can before the minimum loop point).

Here is the relevant part of the patch with instructions on how to start it.

Max Patch
Copy patch and select New From Clipboard in Max.