Devin Kerr

Free_Elastic: Independent Pitch/Speed Control in Max

Recently an article on the Create Digital Music blog featured “elastic~”, an object which allows independent pitch/speed control of samples within Max 5. The object sells for $20GBP, despite the fact that similar functionality can be achieved with Max-only objects.

So I took 15 minutes and made a simple patch and video demonstrating what I’m calling “Free_Elastic”. This Max patch uses FFT pitch shifting and is based on the standard groove~ object.  It allows for much more control and customization (fft size, overlap, etc.) than “elastic~” does, and it’s FREE!

Music = Don’t Stop – Scott Tolinski

Download the patches here.

Update: I’ll try to get up a Max 4 version of the patch soon and perhaps an update that includes granular-based stretching and pitch-shifting if people are interested.


23 Comments so far

  1. krh October 30th, 2008 2:32 pm


  2. max xiantu October 30th, 2008 4:48 pm

    punk rock!~

  3. matt bronka October 30th, 2008 5:31 pm

    Great object/patch!
    i dont see why people would dish out for elastic~!
    you can only use it in max/msp and if you bought that, build your own!

  4. martin October 30th, 2008 8:44 pm

    thanks a lot for this.

    i was wondering if this patch necessarily has to be a version 5 patch. if not, it would be real cool for people who haven’t upgraded yet (like me) to put up a version 4 version as well or explain how to build their own – could turn out to be a nice tutorial.

    regards, martin

  5. Timo Rozendal October 31st, 2008 3:15 am

    cool patch, but nothing new. Elastic~ is still interesting because it works differently with a different algorithm and will produce better results for smaller deviations from the normal pitch/speed. Plus: this patch introduces a latency of about 70 ms due to it’s fft nature. Elastic~ and Mattijs Kneppers’ granular implementation do not have this drawback.

    plus: the makers of elastic~ probably won’t make any money of their object, because they paid a vast amount to be able to use this z-plane algorithm

  6. jayrope November 4th, 2008 10:11 am

    great work, a max 4 version woudl be very appreciated! and yes, e;astic use the z-plane algorythm, which is supposedly sounding superior, nevertheless thanx again for you rwork, right what i needed to test extreme pitching out on my wii looper.

  7. Mr. Grey November 5th, 2008 1:05 am

    Please include granular in an update. This is very nice of you to share. I’ll be making use of it very soon.

  8. matthijs January 17th, 2009 5:11 am

    max 4 version would be awesome!!!!

  9. dk January 22nd, 2009 12:18 am

    Unfortunately, I don’t think I’ll have the time to make a Max 4 version soon… work is eating a lot of my time. If someone else takes the time to make a Max 4 version, I would be happy to host it here. Or if someone would like a basic outline for making one–I could provide that.

  10. md February 2nd, 2009 9:59 am

    I’d be interested in making a Max 4 and/or PD port if you were kind enough to give me an outline for making one.

  11. v3 February 15th, 2009 7:37 pm

    you rulle man!!!! props :)

  12. bm February 20th, 2009 8:43 am

    For those who want a 4 version, and use a mac… I’m aware of, but haven’t used myself, a supercollider script that converts max5 maxpat patches to max4 pat files.

    I found this thread on the cycling74 forums on that very subject (with d/l links and such):

    I hope it helps you guys.

  13. […] Free_Elastic: Independent Pitch/Speed Control in Max [Devin Kerr’s blog] […]

  14. AudioLemon June 11th, 2009 8:29 am

    Sweet… very nice. Going to try it now.

  15. Josh November 15th, 2009 8:41 pm

    Awesome! Works great, saved me £20.

  16. […] Get it here Categorized under: Max Msp. Tagged with: Elastic, free_elastic, Max Msp, Pitch Shifting, Time Stretch. […]

  17. tomato February 23rd, 2011 12:24 pm

    Hi Devin,
    I’m interested in using your object.

    I am getting sound from a mov file ( @soc blah) and try to make pitch shift of the sound “blah”.
    I’d like to replace my old tap.shift~ (taptools) object with your Free elastic object.

    Is is possible to do it with your object?

  18. seatomato daily » Blog Archive » Pitch Shift February 23rd, 2011 1:40 pm
  19. dk March 4th, 2011 4:56 pm


    it’s not entirely possible to use my object straight away since it’s meant to be used with buffer~.

    just hack out the pitch shifting part (the pfft~) and hook it up to your spigot~.

    good luck, dood!

  20. Ladeh September 25th, 2012 3:51 pm


  21. noah December 1st, 2012 11:56 pm

    is there any way to remove the time limit? i tried to upload a 10 minute sample and it will only play the first few min.

  22. dk December 3rd, 2012 1:06 pm

    There’s no imposed time limit–perhaps limited by your system’s available RAM? My laptop has no trouble loading in very long samples. How much RAM do you have?

  23. Claudio January 17th, 2015 6:12 pm

    COOL !!!!

Leave a reply