Made a new patch randomizer for max

The parameters for each pad are spread over 4 midi channels and controlled with midi CC’s. By default, the channels are set to chan 1-4. Pads 1-4 are channel 1, 5-8 channel 2 etc. This is a section that sends random information to 4 pads at a time. So the CC #'s for pad 3 are not the same as pad 6, and it is also on a different midi channel.


Thanks again for sharing these informations. I totally understood the regular MD CC part, even if it’s unusual. I made a sheet, hoping it is sexier than original

Sequencing a Machinedrum from a Digitakt(demonstration)


@InductiveOne, do you use this parameter?
I guess without it, there is not init, which I’d prefer…
%000000dd | 0 = init synthesis, 1 = init synthesis + effects, 2 = init synthesis + effects + routing (optional parameter)

I’m pretty sure it defaults to the 00 value. When you switch machines it seems to always init the params for that pad (I will have to double check that later).

As “optional parameter” is mentioned, and as there is a possibility to keep settings and change machine with Function hold I still hope… :slightly_frowning_face: :

Hey it works like a charm ! Don’t tell @defenestration ! :joy:

It seems to default to the 02 value (init all)
Init nothing would be great, plocks can help.

Thanks again for help ! I planned to do this a few months ago :
Controlling MachineDrum With MIDI

Concerning CC control I can’t set 92 CCs on my OT so I think I’ll map only 26 per channel and control same parameters for all tracks sharing same channel.

1 Like

Damn this is nice! Sounds like a circuit bend MD! It’s almost the box I have been dreaming of …(controllable circuitbend madness)

Is this vid made with an old MD or an UW? I can hear samples, the samples build in MD or UW samples?

1 Like

An old MK1 UW. Those were a few random drum samples I loaded up.

Bomb! Thank U!

1 Like

Hey, I’m new with both the MD and Max, and having trouble getting this running - Can anyone help? Sysex Receive won’t get past the ‘waiting…’ message in any of the three location modes (Orig /Spec/ Ver). I’ve got the Base channel set to 1-4.

Any other settings to check for? MIDI interface is recognised by Max(8)

You should not have the MD set to wait for the sysex, should work in classic or extended mode. Make sure in max you set whatever midi output to ‘a’ since I’m pretty sure that is where all the midi is sent in the patch.

(options -> midi setup -> set your midi output to Abbrev a)

Then it should work while you are in any normal state on the MD. I used it mainly with the sequencer going or by playing each pad by hand. LFO randomization is more appearance if you have a sequence going with a few pads playing at once.

I have had intermittent issues where the MD decides it doesn’t want to listen to midi. Not a huge deal, just turn it off and on and you are good to go, but I don’t know if I would suggest using this randomizer on stage.

If you still can’t get it to work, are you using one of the midi/usb cables? I always had problems with sysex sending correctly with any of those. I suggest you spend a few bucks and get something like a fastlane if that is the case.

Good luck! Let me know if you can’t figure things out from here and I’ll try to help.


Thanks so much for the quick reply!

‘Abbrev a’ has got the ball rolling. Everything works other than Rand Param (the most important one :robot:), neither for all 16 machines or individually.

I am indeed using a cable interface. By now I’m not sure that would be the problem, if the other changes are registering…?

A couple of reboots later and it’s all working great! Thanks a million for the work and the support :smiley:. Coupled with Cntrl All automation, it’s getting really wild! You touched on pattern randomisation… What would it take to get that going, technically?

Awesome, glad you got it working. I’m not great with max and this randomizer was one of my first useful patches. The pattern data is more complicated than everything else. I might say some of the following incorrectly because I only vaguely know what I’m talking about.

The patch I made is sending each parameter change as a separate sysex message. The pattern data would have to be transmitted as part of a whole patch. Which means instead of sending a single sysex message to change a parameter, it is a large encoded sysex message containing a whole patch worth of information at once. I just don’t know how to handle that sort of thing in max. I really thought about trying to write the whole patch in another language but I’m not a programmer.

In the end I realized all the ideas I had for generative patterns were easier to explore by just sequencing the MD directly with midi instead. I do hope to get back to the patter randomizer, although I always planned it more being a bit more like mutable instruments grids. Might get back to it one day when I have a bunch of time and I’m feeling a bit masochistic.


Thanks for the thoughts. I know close to zero about the workings of Max and Sysex, but I’m curious why there doesn’t seem to be a pattern randomiser out there for the MD.

I wonder, would pattern info HAVE to be sent as a whole patch? Your param info must be sending a lot of separate messages (16 tracks x about 18 parameter changes), which arrive basically instantaneously. Patterns wouldn’t involve many more changes (16 tracks x 16 steps… x2 for Trig on/off state + Vel. Am I missing any??)

Are pattern sysex changes definitely accessible on the MD? I know that @mekohler has hit major roadblocks with this in a couple of his (excellent) apps (currently doable on RYTM, but not Octa/Digitone).

Basic SysEx requests are given in the MD’s manual.

Elektron has allowed the document that details the MD pattern data structure to be posted here:

1 Like

Peter Hanes linked to the pdf I was given a while back. In the back of the regular manual is all the normal sysex information. I am not sure of this, but you might be stuck sending an entire patch if you want to send pattern data directly to the MD. This might mean that you would be forced to send the data for the rest of the patch with the pattern information. So you would either have to do that first, and then construct the rest of the patch around the pattern, or you would have to dump the current patch from the MD, alter the pattern data, then send it back to the MD with the new pattern.

I have a feeling the way to do it would be to write software that was more of an offline patch editor, so your randomizer would change settings on the computer side and then transmit the entire patch to the MD. I have to be honest, I don’t feel like trying to re-write the whole thing to alter things offline and dump the patch to the MD. It would take many hours and I don’t think it would be as much fun to use. I like being able to play a pattern and randomize parts of individual sounds and tweak them at the same time.

Another thing I was thinking about is what you would actually end up with by randomizing the pattern. I wouldn’t just want to randomize/generate the trigger data. It would be a waste not to randomize all the parameter locks. Honestly that was what I was hoping to do. I would imagine you get to all kinds of strange glitchy places you wouldn’t have made it to by hand. Just being able to randomize the LFO’s has led me to some complicated patches where sounds interact with each others in ways I’d never thought of.

But back to patterns in particular, I don’t think you would get very many interesting things from randomized patterns. Making some more interesting pattern generation would be more interesting. I feel like all the aspects of the sequencer I enjoy are because of how fast and easy it is to use with your hands on the MD. What I came to realize is that what I wanted to do was to take all kinds of sequencers I had already found and adapt them into something that would make patterns for the MD. My lightbulb moment was realizing I had a much easier time just using the sequencer I planned on adapting to just send midi information directly to the MD.

Then you can do interesting things like using more than one clock rate to sequence different sounds. You can have a pattern of parameter locks looping on the MD with a pattern while you are sending the MD midi note information (and sysex from things like this randomizer patch) which adds another layer of modulation.

TLDR: I dunno man, seems like way too much effort for what it would allow you to do. I might someday get a wild hair and re-do this patch in a fancier fashion. I wouldn’t wait for that to happen though if I were you. If you want to take on the challenge you have the patch I made to start with and with the linked pdf you should have all the information you need. I did find a few small typos in the main sysex information. My suggestion is to get comfortable in midiox and double check everything. Also hot tip, you can set midiox to display sysex in decimal. I screwed more things up doing hex/decimal conversions than anything else.


PS: Everyone is free to use any part of the patch for anything they would like. I don’t need any credit. If you make something cool link me.

1 Like

You’ve had enough sysex headaches for one lifetime my friend! I’m trying to very (very) tentatively suss out whether this is a challenge I’d want to take on myself with virtually zero background knowledge, and whether it’s even possible. Thanks for the tips and all the hard work :+1:

Let’s see how much time I can find. I’m also curious if Bram Bos’ new Mosaic app might be an alternative platform…


A few pattern randomizers for the MD have existed over the years, not sure where they are now…there is this repo which used to work with the MD