Well, this is the first time I can remember this happening. Tuesday, I covered a GBP20 Max object for independent tempo and pitch modification in Max 5:
elastic~: Pitch, Speed Control Module for Your Max 5 Patch

I wasn’t personally so blown away by it, but it looked interesting, and it uses algorithms used in a number of commercial projects. But Max guru Devin Kerr put his money where his mouth was — or is that, no money where his … um … ears are — and released a free version. Unlike elastic~, it uses all included Max objects. Aside from saving you some dough, that has the significant advantage of being able to easily share patches based on his patch with fellow Max users.

Devin writes:

So I took 15 minutes and made a simple patch and video demonstrating what I’m calling “Free_Elastic”. This Max patch uses high-quality, 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!

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

Even if you like elastic~, you can’t really argue with the nice work Devin did on his patch. Hope this leads to some other great patching work. Now, can we get a Pd (Pure Data) port for a truly free experience, anyone?

More Goodies

Andreas Wetterberg (of Covert Operators) points to Mattijs Kneppers’ wonderful work. Object-oriented patching? Check. An MPC-inspired drum sampler? You got it.

And most notably in this context:

Real-time, natural sounding granular time stretcher / pitch shifter, version 009, patches only. Download test sounds here.

Time stretching and pitch shifting without artifacts (Max 5 only).

This patch uses the pitch~ object by CNMAT, that you can download here:

Granular time stretching has the advantage over a spectrum-based (phase vocoder) approach that it has no inherent latency. This patch aims for the same sound quality (absence of artifacts) as the time stretching features of mainstream applications such as Ableton Live or Reaktor.

That said, actually, you might enjoy those artifacts. But if you’re a Max user (or Pd user willing to do a little bit of porting), this should more than satisfy your appetite for warping. And, Andreas, I’m with you … I prefer the granular stretching sound. (Because it’s really a grain sampler and not just a delay, you may also want to check out the terrific video tutorial Peter Dines did in Reaktor. And there’s a lot more of this stuff elsewhere, as well.)

  • Devin Kerr is my best friend

  • I have to point out that a) There are a NUMBER of different pitching/stretching options for Max, and that b) one of the best ones is done by veteran patcher, Mattijs Kneppers:

    ^^^ Download link is in there, too. It sounds so good, and you can go from a tight shift/repitch to a massive granular cloud really easily. And at least to my ears granular shifting sounds MUCH better than fft-based work. YMMV.


  • Wallace Winfrey

    It should be noted that Mattijs MPC-inspired drum sampler isn't just ANY MPC-inspired drum sampler, it's an OSC-controllable MPC-inspired drum sampler!

    Can't wait for the OO objects to be fully ported to Max 5 so the MPC Studio can be hacked on some more.

  • 4lefts

    "Andreas Wetterberg

    I have to point out that…"

    thanks for the link. that patch scares me a little – there's a lot of "granular best practice" learning to be done in there. thanks.

  • jock

    Wow, that's great.

    you can remove my angry comment about it costing money from the other post if you'd like.

  • Note that elastic does not use the same algorithm as this free alternative.
    It would be interesting to compare both methods (FFT and elastic~) with the same sound, and to listen carefully to details, including transients.

  • @Jean-Francois: Right, exactly — I'm a bit unclear about what the fuss is about here.

    elastic~ gives you effectively a license for a commercial algorithm.

    These other alternatives use readily-available modules so you can stay within Max — with both the FFT and granular approach, so two additional different sounds.

    There should theoretically be an advantage to each approach, and indeed, would be great to A/B/C test the three.

  • I plan to do these sorts of studies in the next couple of weeks.

    I did a preliminary run of elastic~ and free_elastic and the two sounded nearly identical on my laptop speakers (obviously not the best test equipment).

    I'll be posting my results to the monome forums, http://post.monome.org/comments.php?DiscussionID=

  • Chainsaw~

    The gizmo~ help file sounds like ass. Elastic~ is an order of magnitude better quality pitch shifting than this. I gladly forked over the cash and I hope the guys do well with it.

  • Timo

    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

  • @Peter, if you're looking for a Pd equivalent to Free_Elastic, I think the Phase Vocoder (I07) in the examples that come with Pd would serve as a good starting point. For a granular approach, it might be worth looking at Phil Stone's polygrainsynth. The only externals are svf~ and mrpeach's osc, both of which could be avoided if necessary. It's not as 'realistic' sounding as elastic~, but it could be a lot more fun!