Device Details

Device Overview

Name/Version: deeploops 1.2
Author: aiton  
Description: deeploops is a drum pattern generator using AI. It creates a MIDI clip of 2 bars length. Drag deeploops.amxd on a drum track, and press on the button to create a clip. The clip contains MIDI notes for a typical ableton drum rack. You can influence how much "chaos" is in the notes. 1 is a good value to start with. With smaller values, the generated drum patterns might not vary much. With higher values, there is more randomness in the notes.

You can influence the generated notes, by creating a primer clip on the drum track. deeploops will take the notes in the primer clip and try to continue the sequence in a musically meaningfull way. Check out the included demo set for 2 examples of the primer. The primer clip should have the name "primer" to be recognized as such.

deeploops comes with a pre-trained deep neural network. The trained model is based on Google Magentas drums_rnn:

after unzip, 2 lines are to be added to C:\ProgramData\Ableton\Live 10 Suite\Resources\Max
esources\packages\max-mxj\java-classes\, or wherever M4L is installed. First save a backup copy of the original file, and then open it with a text editor and add the following two lines:

max.dynamic.jar.dir [deeploops-root]/java/lib
max.jvm.option -Djava.library.path=[deeploops-root]/bin

where [deeploops-root] is the folder containing deeploops.amxd. Use slashes '/' instead of backslashes e.g. c:/mywork/deeploops. Restart Ableton.

1) Please verify that the Java Development Kit is installed and that you can work with the mxj max object. If not yet done, you have to install the max-mxj package first. See
2) You have to find the file, which should be at /Applications/Ableton Live 10, or wherever M4L is installed. If no such file exists, load the deeploops device in Ableton first, for the location to be created, and then close Ableton again.
3) Save a backup copy of the original config file, and then open it with a text editor and add the following two lines:

max.dynamic.jar.dir [deeploops-root]/java/lib
max.jvm.option -Djava.library.path=[deeploops-root]/bin

where [deeploops-root] is the folder containing deeploops.amxd.
4) Restart Ableton.

- Generated clips are quantized, and notes have all same length.
- Only one trained genre: EDM. If you have many MIDI drum loops of any other genre, please get in touch, and we might train it for another style of music.

v1.2: Added MacOS libraries, and generated notes are a bit longer now.
v1.1: fixed issue with detecting path to pickle file
v1.0: initial revision

- After moving the folder of the device to a new location, restart of Ableton is necessary.
- The influence of the primer on the generated clip works best if the primer contains pitches deeploops "knows" from the training. Other notes are ignored. To find out what notes are trained, just look at generated clips.

For now, use the device page on


Device Details

Tags drum, utility
Live Version Used: 10.0.1
Max Version Used: 8
Date Added: Mar 23 2018 22:12:12
Date Last Updated: May 25 2018 07:26:41
Device Type: midi_device
Download URL (report link)
License (more info): AttributionNoDerivatives


A little demo how it sounds:

Seems the zip file is corrupt?

fixed that, thanks

It would be nice to have something like mutable instruments grids or some of the noise engineering stuff.
Apparently they analyzed patterns from songs in classic genre and tribal ones. Like african rythm and patterns done live by tribes.
Could the AI actually learn from some audio files you give them or does it have to be midi ?
It would be really dope

Never tried the original Grids, but I tested @mots M4L port. I think deeploops is quite different, it is more "creative", though arguably whether creativity in a machine can exist. It generates quite surprising ideas for drum patterns. The intention is that a musician can take them as inspiration for breaks.

Right now training needs MIDI files. I'm currently looking into AI methods to generate drum patterns from audio, but can't say yet that this will work reliable enough.

Hi - i get an error on the device that says it can't load the pickle file. Is this related to my java paths or something? Max settings seem correct, since I get different errors if I don't correctly fill out the directory paths specified in the readme.txt

I put the deeploops folder on another drive, other than root of C and everything seems to be ok now. Was having super weird issues after putting the folder into my User/.../Music too (log errors about finding some Maxglu commands)

there seems to be an issue in determining the path where the device is located... thanks for reporting that, i will look into it.
Great to hear that you got it to run nevertheless!

Fixed detection of data folder with v1.1

really interested in further development of this project btw. I would like to experiement with training itself to see what can be achieved so then i can generate albums and make lots of money.

I'm happy to help port to OS X and help provide hip hop midi files to train. Contact me (my user name [at] gmail)

Thanks eclipxe, the device should now also run on Mac.

Live 10 (Win 10), it doesn't work here, gives error:

java.lang.NoClassDefFoundError: Could not initialize class org.tensorflow.TensorFlow
at Maxglu.version(
at Maxglu.bang(

Do you use the 32bit version of ableton?

No, it is Live 10.0.2b8 (beta), no 32-bit anymore. Win 10 is 64-bit too.

The error means it either it cannot load the tensorflow DLL, or the tensorflow jar file. Could you please double check the installation instructions, as described above? Like typos in the config file or so

Maybe you have multiple files on your system and Ableton uses a different one?

Nice work Aiton!

Working and impressive. (Mac OS).

For anyone on Mac struggling with install - you need Java Development Kit not just Java.

Aiton, What does "No Primer Clip Found, Start with Kick" mean?

Ignore question above^ :) Loaded the demo file and see how it works now. Good stuff.

thanks for the hint about the JDK, I updated the installation description accordingly.

I'm getting the same error message as someone mentioned previously

java.lang.NoClassDefFoundError: Could not initialize class org.tensorflow.TensorFlow
at Maxglu.version(
at Maxglu.bang(

I am on a Mac however, what can I do here?

Can you please verify that the 2 options in are setup correctly? See section INSTALL (Mac) in the description above.

Are the two downloads the java development kits? Sorry to be a pain haha, i'm a bit of a max noob

no pain, no gain :) yes, you have to install the Java Development Kit first. On the Mac you can get Java 1.8 from
Then the mxj package, which is found in the Max package manager.
I know it is a bit of a hassle, sorry for that.

Hey i've done everything in the set up but still having no luck, I feel like i'm adding the extra "max.dynamic.jar.dir [deeploops-root]/java/lib
max.jvm.option -Djava.library.path=[deeploops-root]/bin" text incorrectly.

Do you just add it at the bottom of the config file?

It should not matter where you add the two lines.
Would you like to send me your file, so I can have a look? It's constanze ?t
hollyhook point de

i had three troubleshooting hours on windows 10 and ableton live 10, but i described a solution.

-> avoid special chars and blank space chars in paths!
-> ableton live 9: requires cycling 74, it's on board with ableton live 10
-> "":
ableton live 9: use location of Cycling '74 folder
ableton live 10: use location of ableton folder
-> i had no luck by loading deeploops as a preset device (alp), so i load deeploops.amxd always directly from deeploops-root folder

instruction details:

the maxglu java class error results of a missing java option.
just add the new third option to "" file:

max.jvm.option -Djava.library.path=[deeploops-root]/bin
max.dynamic.jar.dir [deeploops-root]/java/lib
max.dynamic.class.dir [deeploops-root]/java/bin

and the problem with presets:
when saving the m4l device (.amxd) as a new preset (.adv), ableton imports/copy the deeploop.amxd deep into your Ableton "User Library" folder, which results in errors because of blank spaces in path, and the new preset/.adv references to this new amxd.
solution: clean/remove the new preset file and also the imported amxd file from:

User Library\Presets\MIDI Effects\Max MIDI Effect\Imported\deeploops.amxd

now create a copy of the whole [deeploops-root] folder to your "Max MIDI Effect\Imported" directory, e.g.:

User Library\Presets\MIDI Effects\Max MIDI Effect\Imported\deeploops\deeploops.amxd

and at least: import this amxd-file into ableton, save it as new preset and

tadaah :)

( the new deeploops.amxd-copy uses your initial blank-space-free path directory [deeploops-root], so just don't move it.)

Login to comment on this device.

[ browse device library ]