groove~ scrub through audio

comedydave's icon

Hi guys,

I have an input (jog wheel) that gives me 0-255 in data output. I want it to hook up with the groove~ object to be able to scrub forward and back throughout the track being played, i.e every time you move the wheel, it jumps half a second (or something like that!).

Any ideas?

Thanks!

Dave

Mattijs's icon

Shouldn't this be very obvious to do? Play a new position for a short while after every input of the jog wheel? Or are there more requirements to your system? Of course I can think of tons of advanced timestretching/scratching/looping functionalities you could implement. Or were you hoping for a complete patch? ;)

Greets,
Mattijs

dlehrich@gmail.com's icon

>I have an input (jog wheel) that gives me 0-255 in data output. I >want it to hook up with the groove~ object to be able to scrub >forward and back throughout the track being played, i.e every time >you move the wheel, it jumps half a second (or something like that!).

I am doing something very similar to what you're describing in a project I'm working on right now. I am using the play~ object, which takes an input from line~ to move backwards or forwards through the sample. Everytime I move the jog wheel I add or subtract from my current position, send that new value to the line~ to "draw" a line to that position, and then store the resulting position as my new current position. This setup results in a pretty smooth sounding output, and you can adjust both the ramp time on the line and the amount of time to jump through the sample to taste.

Hope that helps.

/dan

comedydave's icon

Quote: Mattijs wrote on Thu, 07 December 2006 16:12
----------------------------------------------------
> Shouldn't this be very obvious to do? Play a new position for a short while after every input of the jog wheel? Or are there more requirements to your system? Of course I can think of tons of advanced timestretching/scratching/looping functionalities you could implement. Or were you hoping for a complete patch? ;)
>
> Greets,
> Mattijs
----------------------------------------------------

Thanks Mattijs,

I've just been trying to get it working by getting the signal value (position) and converting it to milliseconds, storing the value, then adding 1 second on and banging the value into the groove~ loop min inlet. I was hoping it would automatically jump to that position but this isn't the case!

Any ideas on how i can sort this?

Of course a complete patch is always a benfit! ;)

Thanks again,

Dave

seejayjames's icon

I think after banging in the loop min point you need to send groove~ a startloop message.

-CJ

f.e's icon

It *should* jump. It was one of my first patch ever (kind of Oval cd
skipping tool). Could you post your patch ?

f.e

f.e chanfrault | aka | personal computer music
> >>>>>> http://www.personal-computer-music.com
> >>>>>> |sublime music for a desperate people|

Dave Hardy wrote:
> Quote: Mattijs wrote on Thu, 07 December 2006 16:12
> ----------------------------------------------------
>
>> Shouldn't this be very obvious to do? Play a new position for a short while after every input of the jog wheel? Or are there more requirements to your system? Of course I can think of tons of advanced timestretching/scratching/looping functionalities you could implement. Or were you hoping for a complete patch? ;)
>>
>> Greets,
>> Mattijs
>>
> ----------------------------------------------------
>
> Thanks Mattijs,
>
> I've just been trying to get it working by getting the signal value (position) and converting it to milliseconds, storing the value, then adding 1 second on and banging the value into the groove~ loop min inlet. I was hoping it would automatically jump to that position but this isn't the case!
>
> Any ideas on how i can sort this?
>
> Of course a complete patch is always a benfit! ;)
>
> Thanks again,
>
> Dave
>
>

comedydave's icon

Hi Guys, thanks for the replies, i've managed to get it to (kinda) work but to be honest i've ran out of things to change to see if that will make it work!

I've uploaded the .pat file to my server and if possible could you take a quick look and see where i'm going wrong.

By the way, the milliseconds calulation is rough as i don't need it to be exact!

Thanks!

Dave

f.e's icon

please, don't link to online patches. It doesn't work. Use copy & paste
instead. (select all in your patch, copy then paste it in your mail).

f.e

f.e chanfrault | aka | personal computer music
> >>>>>> http://www.personal-computer-music.com
> >>>>>> |sublime music for a desperate people|

Dave Hardy wrote:
> Hi Guys, thanks for the replies, i've managed to get it to (kinda) work but to be honest i've ran out of things to change to see if that will make it work!
>
> I've uploaded the .pat file to my server and if possible could you take a quick look and see where i'm going wrong.
>
> http://www.dhardy.co.uk/scrub.pat
>
> By the way, the milliseconds calulation is rough as i don't need it to be exact!
>
> Thanks!
>
> Dave
>
>

comedydave's icon

Ok, here u go:

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

Thanks,
Dave

comedydave's icon

Here's a screengrab of how far i've got

lfanele's icon

mine is bigger...
don't know if your jogwheel sends inc, dec values, would be helpful.

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

comedydave's icon

Thats the one!

Think i took the long way round!

Thank you all for your help,

Dave

comedydave's icon

Just 1 quick question: Is there any way to be able to scrub through the track without it playing (i.e keeping it paused), but being able to hear the scrubbing (so you can cue it up to a specific beat)?

Thanks,

Dave

Mattijs's icon

Quote: comedydave wrote on Fri, 08 December 2006 19:02
----------------------------------------------------
> Just 1 quick question: Is there any way to be able to scrub through the track without it playing (i.e keeping it paused), but being able to hear the scrubbing (so you can cue it up to a specific beat)?
>
> Thanks,
>
> Dave
----------------------------------------------------

I think scrubbing is the same as playing for 50 ms every time you change the position.

Mattijs

chthonic's icon

"Of course I can think of tons of advanced timestretching/scratching/looping functionalities"

Could you direct me to where one could learn how to build patches using these functionalities, or any patches that one could learn from?

Mattijs's icon

Quote: chthonic wrote on Tue, 17 July 2007 10:05
----------------------------------------------------
> "Of course I can think of tons of advanced timestretching/scratching/looping functionalities"
>
> Could you direct me to where one could learn how to build patches using these functionalities, or any patches that one could learn from?
>
>
----------------------------------------------------

I don't have a list of links ready, but you can always search for pitch shifting/time stretching, fft-based or granular-based.

I made a couple of these patches myself but I'm not sure I can provide you with any ready-made examples that would make sense to you.

Mattijs