groove~ slow down

May 16, 2011 at 7:09pm

groove~ slow down

Hello to all, I would like to ask how I could control the speed of the loop play back to a groove object, I am scrubbing in a buffer through the waveform object but without controlling the speed of the grains.

May 16, 2011 at 7:14pm

Take a look at the help file for [groove~] it shows all kinds of options for controlling playback.

May 16, 2011 at 7:22pm

well, it was the first thing I did before posting, but I understand I can only control the speed in half of it or play it backwards, what i mean is more a variable speed playback.Thanks

May 16, 2011 at 7:28pm

use different values like 0.9, 0.8, 0.75, etc.

May 16, 2011 at 7:44pm

I am just changing the pitch in that way.Maybe is better to enclose here the patch.

– Pasted Max Patch, click to expand. –
May 16, 2011 at 8:02pm

Ah, I see. You may need some sort of combination of [groove~] with [gizmo~] to change the speed of playback and then shift the frequencies back to the original level.

May 16, 2011 at 8:33pm

I will try, I thought it was much more easier, thank you though for your help!

May 16, 2011 at 8:49pm

I found that I have to invert the number of the speed playback to the gizmo~ pitch value but I don’t remember what was the object for inverting float numbers

May 16, 2011 at 9:03pm

When you say invert, do you mean convert f to 1/f, or do you mean convert f to -f? The first can be done with [!/1.], and the second with [!- 0.].

May 16, 2011 at 9:15pm

Well it works but even though doesn’t solve the problem, I think a mathematical expression is needed here..I don’t know the what the relation now should be between gizmo~ and playback

May 16, 2011 at 11:27pm
– Pasted Max Patch, click to expand. –
May 17, 2011 at 8:11am

Hello and thank you for your assistance, although I still changing the pitch after a certain value in the play factor, please have a look maybe I didn’t make the proper connection as you intended to…thanks!

– Pasted Max Patch, click to expand. –
May 17, 2011 at 9:05am

ok, sorry i was not clear, and sorry i got confused by your patch, so i just did this simple demo over morning coffee:

– Pasted Max Patch, click to expand. –
May 17, 2011 at 7:54pm

Hi No Worries, although still I don’t find how to increase or decrease the grain playback, you think has to do with the [groove~] would be there any other involvement with other objects to create this control over time?

May 18, 2011 at 11:10am

hmm. i’ve been misunderstanding you maybe. you mean you want to be able to retain the speed of traversal regardless of loop length (“grain”?) ? if so, it is just another little calculation. the below has got a bit needlessly messy now as things added in a rush; with it you can change loop length, change speed, change pitch, all independently and together, depending on settings. you’ll have to patch up how you want it. if you get sick of gizmo~ (most of us do) and sick of the latency, you maybe want to have a look at the granular approach of the brilliant mattjis:

– Pasted Max Patch, click to expand. –
May 18, 2011 at 12:49pm

Independent loopSize, pitch, scrubSpeed and direction here, without [gizmo~]:

Search here and elsewhere for “free elastic”, although admittedly I didn’t look at your patch, so it might not be exactly what you are looking for.

I really should build this as a standalone,


May 18, 2011 at 3:33pm

Hello guys thank you both for your assistance and especially Pid for spending time to my enquiry, about the elastic object attracts me as an idea but I have to confess that using externals is risky for originality,in my opinion, but I will have a look even though I am not on paying for externals..thanks guys.

May 18, 2011 at 9:05pm

@konstantinosvasilakos, both the granular approach i linked to above AND ‘free-elastic’ are abstractions and not externals, so there is no problem with taking them apart to learn, which is what their authors intended.

@brendan & @konstantinosvasilakos: ‘free-elastic’ is an abstraction that uses the ‘gizmo~’ object !!! practically copied from the help file! but no bad thing because of that. in fact looking at free-elastic again now (to check i was not going crazy) my solution above is almost the same.

good luck.
(maybe one day msp will have high quality pitch-time-compression-expansion-etc algos!)

May 18, 2011 at 10:54pm


my bad, was not aware that gizmo featured in free elastic (I should try before recommending in future), I’ve seen demos of both elastic and free elastic and they both get a little artefact-y at extreme settings


my granulator engine linked above uses just [play~] and [phasor~], and works really nicely!


May 19, 2011 at 8:26am

yes brendan in my haste i forgot to say – great granular patch! i was just pointing out a couple things before. in fact in my example above i even commented it saying i use play~ or wave~ with phasor~ and rate~ myself. i was just trying to show the groove~ approach. groove~ sounds better of course, so for very small shifts the groove~ way is best. your way is about granularisation though, which is a certain aesthetic. the mattjis kneppers is great because is is granular (no delay) and about pitch/time shifting only. there are all these different ways to do it but sadly one has to embrace artifacts or go buy a licence from izotope.

May 19, 2011 at 8:37am

Well the gizmo~ is really something that tends to my ears to be heard, I am not aware though about another way of pitch shifting available in any other object that evolves pitch processing?

May 19, 2011 at 9:42am


you might be interested in this great thread (which I found very helpful in differentiating between play and groove functionality – you may well already know this):


here’s a great demo of using tapin/out to achieve pitch-shifting:

Thanks everyone, another interesting thread.


May 20, 2011 at 8:32am

@Brendan, Nice implementation of pitch shifting for sure is far better than cliche sound of gizmo~


You must be logged in to reply to this topic.