Forums > MaxMSP

Groove~ sync?

Feb 20 2009 | 10:03 pm

How do I get two groove~ objects to sync? I’m a little puzzled by the use of the sync ramp from the right outlet. One thing I tried was dividing the ratios of both buffers. I got this idea from the demonstration for the elastic~ object extensions. I used two info objects and divided their times in miliseconds to adjust the playback of the one that is slaving to the other loop. I guess my question is more directed towards the sync output. I’m intersted in any examples that might involve syncing two groove objects this way.

Feb 20 2009 | 10:42 pm

you could detect the end of the first groove using change~ and edge~ and use this to reset/start the second groove (startloop)

Feb 22 2009 | 6:09 am

here’s a demopatch of groove~ syncing another groove~ and also syncing a play~(if you want to keep sync in the signal-domain) in case it helps.

Aug 13 2015 | 7:38 pm

Hello Raja,

I noticed you mentioned a patch example of groove~ syncing another groove~ but there is no attachment….

Is this included in your Raja’sLil’SamplingTutorial? (
I couldnt find it, probably because your tutorial is really extensive…. could you highlight which encapsulation should I look out?
(I am trying to sync two groove objects and change the phase relationship over time…)


Aug 13 2015 | 10:11 pm

Is this included in your Raja’sLil’SamplingTutorial?

no, i doubt it, many of the things i attached to forum posts were made up on the spot to answer threads as they happened. it seems many attachments on these forums past a certain number of years have disappeared.

lemme see what i have in an old archival folder left on my comp to this day…. erm…. hmmmm…
k, this is the closest thing related which i could find, but i doubt it is the same exact patch i made for this thread long ago:

-- Pasted Max Patch, click to expand. --

still, what you can do is study the patch above, see how ‘phasor~’ is used to sync everything via ‘sah~’ and then instead of using ‘phasor~’ just use the sync-outlet of one of the ‘groove~’ objects in the same way you’d use a master ‘phasor~’ to sync everything(edit: in the patch above, i forgot to add a numbered instruction between step 2 and step 3 which would be to set the BPM box at the top-left).
truly sorry i don’t have the exact patch from this thread, though… and i don’t have much time these days to recreate what i think it might be beyond telling you the above. but perhaps you can try some things out, post your results here if you’re still having trouble, and i’m sure others will jump in to revive the helpfulness of this thread further.

When i shot any kind of bird, when i killed, i saw that its life went out with its blood. This taught me for what purpose i am here. I came into this world to die. My body is only to hold a spirit life. Should my blood be sprinkled, i want no wounds from behind. Death should come fronting me.
-Toohoolhoolzote (a mid-19th century Native-American chief of the Nez Percé tribe)

Aug 14 2015 | 2:51 am

Yeah thanks for taking the time mate!
I’ll work it out throug the weekend and post my results.
All the best.

Aug 19 2015 | 7:54 am

Hello again Max community !

Following the advice in this and various other threads I was able to sync three groove objects using groove~s sync output.

My main interest is to avoid discontinuities in a groove-based sampler while making the playback position (start/end loop points) ‘jump’ backwards, maybe, by switching every bar or whatever between objects… @Rodrigo highlighted this idea properly years ago (

In the attached example there is still the issue already highlighted elsewhere, about getting a phasor~ master clock to match the exact phase of the groove~. I do know (as said by @Peter McCulloch) that "If you want things absolutely locked in, is better to use wave~, rate~ and phasor~ for playback"… however, Id like to use groove~ instead….

Any light on why these two wont sync properly? @Raja, u still there?

Also, does anybody know how could I change continuously the phase relationship that is set by half cycle in-between A & B in the attached example? (as in Reich phase music, for example?) btw, my maths are not so great, and thats probably why I cant figure out this by myself?

Any input on this would be very much appreciatted :D

all the best

  1. groove-sync.maxpat
Aug 19 2015 | 12:28 pm

still here, but not much time…
will take a look maybe later…
but in the meantime, @PeterMcCulloch schooled me in another thread about how to use groove~ sync-outlet more accurately for both reverse/forward playback, can’t find the exact thread now.
and to be honest, i never made it part of my continued expertise to use groove~ since I too, preferred to move on to play~/wave~/index~/2dwave~ coupled with phasor~/rate~ right away(bout 13 years ago)… and nowadays, i prefer some type of equivalent in gen~.
so if no one else answers, i’d search through PeterMcCulloch’s posts to start.

bump for others to step in here, thanks in advance :)

Aug 19 2015 | 2:23 pm

hi Raja!
thanks x your input :D

Is this thread the one you mention ?

It shows how to bang at the end of the loop in both reverse/forward playback using groove~s sync outlet with delta~ —> abs~ –> >~ 0.5

— Pasted Max Patch, click to expand. —

As I understand, sah~ holds the amplitude signal and changes it only when there is a phase wraparound. In this way amplitude remains constant until there is "a transition from the last sample to the first (if forward), or the first sample to the last (if backward)".

My question regarding this example by @PeterMcCulloch is how would it be possible to obtain bangs at other instances of the phase, maintaning the same accuracy? so for example, you could create out of phase copies of the looping wavetable sampler, and vary the phase difference in between them…?

Any commments very much appreciatted.

All the best!

Aug 25 2015 | 5:45 am

For whoever might be interested in this as well, I found that it is easy to ‘wrap’ groove~ sync outlet using the modulo operator [%~ 1]…. Therefore it is possible to create two looping samplers a half-cycle out of phase from each other via [+~ 0.5] –> [%~ 1] and thence to the window generator.

It is also possible to use Gen~s [wrap] operator which I think functions almost in the same way but is less CPU expensive (not really sure about this)…


Viewing 10 posts - 1 through 10 (of 10 total)

Forums > MaxMSP