## 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.

#57165
May 16, 2011 at 7:14pm

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

#204751
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

#204752
May 16, 2011 at 7:28pm

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

#204753
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. –
#204754
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.

#204755
May 16, 2011 at 8:33pm

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

#204756
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

#204757
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.].

#204758
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

#204759
May 16, 2011 at 11:27pm
– Pasted Max Patch, click to expand. –
#204760
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. –
#204761
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. –
#204762
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?

#204763
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: http://cycling74.com/toolbox/kneppers-granular-stretcher/

– Pasted Max Patch, click to expand. –
#204764
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,

Best
Brendan

#204765
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.

#204766
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!)

#204767
May 18, 2011 at 10:54pm

@pid

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

but………

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

Best
Brendan

#204768
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.

#204769
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 Max..is any other object that evolves pitch processing?

#204770
May 19, 2011 at 9:42am

@pid

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):

http://cycling74.com/forums/topic.php?id=26110

@konstantinosvasilakos

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