groove~ slow down

konstantinos Vasilakos's icon

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.

bkshepard's icon

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

konstantinos Vasilakos's icon

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

bkshepard's icon

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

konstantinos Vasilakos's icon
Max Patch
Copy patch and select New From Clipboard in Max.

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

bkshepard's icon

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.

konstantinos Vasilakos's icon

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

konstantinos Vasilakos's icon

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

bkshepard's icon

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

konstantinos Vasilakos's icon

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

pid's icon
Max Patch
Copy patch and select New From Clipboard in Max.
konstantinos Vasilakos's icon
Max Patch
Copy patch and select New From Clipboard in Max.

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!

pid's icon
Max Patch
Copy patch and select New From Clipboard in Max.

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

konstantinos Vasilakos's icon

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?

pid's icon
Max Patch
Copy patch and select New From Clipboard in Max.

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: https://cycling74.com/tools/kneppers-granular-stretcher/

brendan mccloskey's icon

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

konstantinos Vasilakos's icon

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.

pid's icon

@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!)

brendan mccloskey's icon

@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

pid's icon

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.

konstantinos Vasilakos's icon

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?

brendan mccloskey's icon

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

@konstantinosvasilakos

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

Thanks everyone, another interesting thread.

Brendan

konstantinos Vasilakos's icon

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