Device Details

Device Overview

Name/Version: Timestretch Looper 1.0.2
Author: jengel  
Description: Hello everyone,

I'm proud to share a device I've been working on for quite a while now with you all. Timestretch Looper is an audio looper quite similar to the one you find built into Live. That's not a mistake, I like Live's Looper, but found it missing some functionality.

Timestretch Looper does "sound on sound" recording, but also incorporates:

- Independent speed, pitch, and formant control, like Live's clips using the Dirac LE~ external by Timo Rozendall.

- "Multiply" functionality for destructively changing the lengths of clips.

- OSC input and output for controlling and monitoring any parameter of the device.

I have seen a lot of people trying to make loopers from scratch with MaxMSP and perhaps spending a lot of time having to reinvent the wheel, so I've done my best to make the code clean, well documented, and easy to modify. I hope this is a helpful starting point and perhaps a good example of clean Max programming practices.

I'm very interested in having you modify the code if you'd like, and perhaps contribute to working out a few of the persistent bugs that are noted in the Readme doc embedded within the device. I give complete permission to use this device, modify it, and even reupload modified versions. I've also created a github page for those that are interested

Some Performance Notes:
-If the looper is in "Master" mode, and the transport is stopped, the "No Quantize" white text needs to be present to record your first loop, Otherwise it will wait to sync to transport that never starts. The device should set this condition on it's own, but every once in a while you might need to manually reset by pressing "Clear" once.

-Due the DiracLE~ external, overdubbing on timestretch material is not technically possible. I get around this by having the looper enter "Multiply" mode when timestretching is activated, which means that the second time you press the big button it sets a new length of the loop. This can actually lead to some very cool effects of mangling the orignal sound if you do it several times.

-Due to M4L's limitations on buttons, if you midimap to the big button, you can only have a single behavior. Within the "OSC" tab, however, there is a toggle to map a MIDI CC footswitch to that allows for Long Press "CLEAR" and Double Press "STOP", similar to Live's Looper.


(This device is Mac Only, since it uses the DiracLE~ external, sorry!)

(1.0.1 Updated DiracLE~ to work with 64-bit Live)

(1.0.2 Please download the complete folder (press the "zip" button, from the github link(, and put the folder in your Max Path. )

Device Details

Downloads: 2871
Tags sampler, sequencer, effect, glitch, other
Live Version Used: 8.2.2
Max Version Used: 5.1.9
Date Added: Jan 19 2013 16:50:55
Date Last Updated: Jan 20 2013 18:28:20
Average Rating -n/a-
Rate this device: (must be logged in to rate devices login)
Device Type: audio_device
URL (optional):
License (more info): Attribution

Device Files

Device File: Timestretch Looper.amxd


wow! great, thanks for sharing!

Not working properly in Live 9 (beta 62). CPU Load Meter reaches about 500(!!) after just a few seconds of playback.

Have you tested it with Live 9?

Ok, just tried it with Live 8.3.4, and same behaviour there: CPU Load reaches about 500 pretty quickly upon playback, then jumps around between cirka 350 and 6-700 ...

Great idea, great device, but I got the same CPU problem (over 600, immediately...) on Live 8.3.4.

Hey Everyone,

Thanks for testing it. It looks like I originally made it in Live 8.2.2, so I'm guessing that the problem is with the 32 bit vs. 64 bit program.

Luckily, Timo also made a 64 bit version of DiracLE~ which I think I might not have been using, so I've switched them out and reuploaded the device. Please let me know if anyone can get it to work fine.

On my Mac Book Pro, it goes from 2 to 3% when loading the device and 7% when actually playing a loop (Dirac is pretty computationally expensive), so something in that range is what you should be expecting. The reason it's less while not playing is that I enclosed Dirac in a Poly~ so it could free up resources when not in use. I also included an extra bit of code to double make sure that that poly~ is only allocating one voice, otherwise that could take a lot of resources!

Hope that works, let me know, and happy looping!

When I first tried this device, I could see it record, but no playback.

I failed to realize I am on L9beta 64bit.
I will try to find 64bit DiracLE and report back.

I highly doubt it's a 32 vs 64 bit problem - I am running the 32 bit versions of both Live 8.3.4 and the Live 9 beta.

Just redownloaded and re-installed, problems with CPU Load are still there, unfortunately.

Okay, so I've double checked the dependencies and I think it might just not be getting everything in the freezing of the file.

Please head over to the github link

and just press the "zip" button. That should download a zip file the unfrozen device and all the abstractions, poly patches, images, and externals needed.

Just put that folder somewhere in your MaxPath, and you should be good to go.

Someone please give it a try and let me know if that works for you. Also, if anyone has the frozen device here working, please let me know.


DiracLE~ is included in the github folder, but for also, for anyone interested, here's a link to Timo's external

Nice! Would be great to make a gen~?version to get rid of 3rd party external dependencies..


If someone gets this working okay, please let me know, and say which version of Live, Max, and OS you're using so I can try to trouble shoot.

Thanks so much,

Hi Jesse!

Very, very nice M4L device! Could we get in contact? Got some questions, hints and problems. Couldn't find your mail address, so maybe you send me one? Find it on my website.

Hey there. Do you have an email I can contact you on to talk about the looper as I want to use it for a well known artist but want to know if you can make some adjustments?

yeah, let's get in contact:

Hey Jesse this is an amazing device, the comments pages on this site are pretty quiet, but I bet a lot of people like me have been using this for a long time, and are very thankful for it. It is indeed a great launchpad for further improvements, and I was wondering if you had an email you could share to this end? I want to make this a granular looper, that allows for sound-scape style effects to go down. Also, monophonic pitch tracking and transposing pitch to a depressed MIDI note. But please, find a way to get in touch! And thanks for putting such TLC into this beautiful instrument.

Doesn't seem to be working for me in 64bit Live 9.
32bit OK.

>Doesn't seem to be working for me in 64bit Live 9.
32bit OK.
Same here. I'd appreciate any advice to improve the problem.

will you be re-working this to use max7 native time stretching?

I have a few too many things on my plate at the moment with a new job. Although, the code is all available at if anyone wants to make a pull request / do it themselves. It is on my long term to do list though.

Thanks! Completely understand that. I might have a go if I have time.

Login to comment on this device.

[ browse device library ]