Time-Shift

May 21, 2007 at 9:00am

Time-Shift

Guys is there any time-shift object out there?

#32010
May 21, 2007 at 9:26am

Try [sleep]. It’s always hours later if i use that…

(what do you exactly mean btw? timestretch? Take a look at [gizmo~] , or look for some granular stuff.)

#104626
May 21, 2007 at 9:28am

I for one don’t know what you mean by time-shift. Do you mean delay? Do tapin~ and tapout~ do what you you want?

Peter

#104627
May 21, 2007 at 10:02am

I am looking for an object that changes the time of the sample without changing the pitch realtime.

The simplest example is that, Imagine having a loop that is 120 BPM
and we would like to change the tempo without affecting the pitch.

There is a plugin by the way is called pitch in time by Serato that does that. Max should be able to have something similar to that.

Let me know.

#104628
May 21, 2007 at 10:05am

Thats usually called timestretch, so take a look at the gizmo object.

#104629
May 21, 2007 at 1:03pm

I use a combination of play~ and gizmo~. I have a an example patch on the
department server but it is down at the moment. I’ll post it later today.

On 5/21/07 6:02 AM, “Dimitris Lambrianos” wrote:

>
> I am looking for an object that changes the time of the sample without
> changing the pitch realtime.
>
> The simplest example is that, Imagine having a loop that is 120 BPM
> and we would like to change the tempo without affecting the pitch.
>
> There is a plugin by the way is called pitch in time by Serato that does that.
> Max should be able to have something similar to that.
>
> Let me know.
> –
> http://www.dimitrislambrianos.com/

Cheers
Gary Lee Nelson
Oberlin College
http://www.timara.oberlin.edu/GaryLeeNelson

#104630
May 21, 2007 at 1:38pm

something like this:

max v2;
#N vpatcher 165 196 718 568;
#P origin 0 -224;
#P toggle 169 85 15 0;
#P window setfont “Sans Serif” 9.;
#P window linecount 1;
#P message 169 102 43 196617 loop $1;
#P newex 302 88 46 196617 route 0.;
#P newex 302 134 37 196617 abs 0.;
#P newex 302 113 62 196617 expr 1/$f1;
#P flonum 175 249 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P flonum 45 51 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P message 45 76 50 196617 speed $1;
#P message 98 276 27 196617 stop;
#P message 26 276 65 196617 startwindow;
#P newex 146 274 39 196617 *~ 0.2;
#P newex 146 312 29 196617 dac~;
#P flonum 320 164 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P comment 357 165 102 196617 pitch scaling factor;
#P toggle 146 85 15 0;
#P message 112 85 29 196617 open;
#N sfplay~ 1 120960 0 ;
#P newobj 146 126 44 196617 sfplay~;
#P newex 146 217 141 196617 pfft~ gizmo_loadme 8192 16;
#P connect 11 0 10 0;
#P fasten 16 0 1 0 174 121 151 121;
#P connect 3 0 1 0;
#P connect 10 0 1 0;
#P connect 2 0 1 0;
#P connect 1 0 0 0;
#P connect 0 0 7 0;
#P connect 7 0 6 0;
#P fasten 8 0 6 0 31 304 151 304;
#P fasten 9 0 6 0 103 304 151 304;
#P connect 17 0 16 0;
#P connect 12 0 7 1;
#P fasten 5 0 0 1 325 190 282 190;
#P fasten 11 0 15 0 50 69 307 69;
#P fasten 15 1 13 0 343 108 307 108;
#P connect 13 0 14 0;
#P fasten 14 0 5 0 307 158 325 158;
#P pop;

On May/21/2007/, at 15/03, Gary Lee Nelson wrote:

> I use a combination of play~ and gizmo~. I have a an example patch
> on the
> department server but it is down at the moment. I’ll post it later
> today.


Bernhard Loibner
sound & media artist

http://loibner.cc

#104631
May 21, 2007 at 4:05pm

On 5/21/07 9:38 AM, “Bernhard Loibner” wrote:

> something like this:

Yes. Almost exactly what I did. I used play~ so I could select small
portions of a buffer. My goal was to control both the duration and
transposition of whatever I chose.

The steps are:

Choose a segment from a buffer (in/out points)
Use a line~ to scan through the segment in play~ at the desired duration
Convert the duration into a transposition ratio and use the complement as
input to gizmo~. This brings the segment back to the original pitch.
If you want to transpose it from there you can factor the interval into the
transposition ratio for gizmo~ (A second gizmo~ is not required)

Here’s the patch for use in poly~

#P window setfont “Sans Serif” 9.;
#P window linecount 1;
#N out~ 1;
#P newobj 63 717 39 196617 out~ 1;
#P newex 351 613 21 196617 t 0;
#P newex 63 691 35 196617 *~ 1.;
#P newex 677 218 22 196617 b 1;
#P newex 601 472 48 196617 loadbang;
#P window setfont “Fixedwidth Serif” 10.;
#P message 587 500 62 1441802 mute 1 , 0;
#P message 676 504 63 1441802 mute 0 , 1;
#P newex 587 531 65 1441802 thispoly~;
#P window setfont “Sans Serif” 9.;
#P newex 62 220 559 196617 unpack 0. 0 0 0. 0. sample;
#N in 1;
#P newobj 62 151 25 196617 in 1;
#P newex 607 313 62 196617 prepend set;
#P newex 266 610 29 196617 * 1.;
#P newex 63 622 35 196617 *~ 0.;
#P newex 388 388 56 196617 transratio;
#P newex 63 284 47 196617 * 1000.;
#P newex 287 286 48 196617 pack 0 0;
#P newex 63 650 135 196617 pfft~ gizmo_loadme 1024 2;
#P newex 266 524 31 196617 / 1.;
#P message 63 379 56 196617 $2 , $3 $1;
#P newex 63 350 57 196617 pack 0 0 0;
#P newex 287 389 30 196617 !-;
#P newex 63 523 82 196617 play~ $0sample;
#P newex 63 400 32 196617 line~;
#P comment 117 165 534 196617 dur in seconds , in point in ms , out pint
in ms , additional transposition in semitones , amplitude , sample buffer
name;
#P window setfont “Sans Serif” 12.;
#P comment 117 142 147 196620 note parameters;
#P connect 22 0 24 0;
#P connect 5 0 6 0;
#P fasten 2 1 23 0 90 511 356 511;
#P fasten 2 1 19 0 90 474 592 474;
#P fasten 9 0 5 1 292 320 91 320;
#P fasten 9 0 4 0 292 373 292 373;
#P connect 10 0 5 0;
#P fasten 10 0 7 0 68 333 271 333;
#P connect 2 0 3 0;
#P connect 15 0 16 0;
#P fasten 15 0 21 0 67 198 682 198;
#P connect 16 5 14 0;
#P connect 16 0 10 0;
#P fasten 16 4 22 1 503 685 93 685;
#P fasten 16 1 9 0 176 276 292 276;
#P fasten 16 2 9 1 285 270 330 270;
#P connect 16 3 11 0;
#P connect 21 0 18 0;
#P fasten 19 0 17 0 592 518 592 518;
#P fasten 18 0 17 0 681 524 592 524;
#P connect 20 0 19 0;
#P connect 4 0 7 1;
#P fasten 11 0 13 1 393 549 290 549;
#P connect 7 0 13 0;
#P fasten 13 0 8 1 271 636 193 636;
#P fasten 23 0 22 1 356 680 93 680;
#P connect 8 0 22 0;
#P connect 12 0 8 0;
#P connect 3 0 12 0;
#P fasten 14 0 3 0 612 429 68 429;
#P connect 6 0 2 0;
#P window clipboard copycount 25;

On 5/21/07 9:38 AM, “Bernhard Loibner” wrote:

> something like this:

Cheers
Gary Lee Nelson
Oberlin College
http://www.timara.oberlin.edu/GaryLeeNelson

#104632
May 22, 2007 at 11:32am

Gary, I have to say thanks to you.

#104633
May 22, 2007 at 12:54pm

Quote: Gary Lee Nelson wrote on Mon, 21 May 2007 18:05
—————————————————-

> Yes. Almost exactly what I did. I used play~ so I could select small
> portions of a buffer. My goal was to control both the duration and
> transposition of whatever I chose.

The only problem of fft time stretching is that it always incurs some latency, depending on the window size. With a bigger window size the effect sounds better with extreme stretch/pitch ratio’s, but the latency is bigger.

Mattijs

#104634
May 22, 2007 at 3:16pm

My pleasure. Is Tuck Howe still at Queens College?

On 5/22/07 7:32 AM, “Dimitris Lambrianos” wrote:

>
> Gary, I have to say thanks to you.
> –
> http://www.dimitrislambrianos.com/

Cheers
Gary Lee Nelson
Oberlin College
http://www.timara.oberlin.edu/GaryLeeNelson

#104635

You must be logged in to reply to this topic.