Made a new patch randomizer for max

I’ve been working on a randomizer in max for the machinedrum. Seems to be in working order at this point. None of the patches/software I tried had the features I was looking for so I rigged this up.

The idea here is to quickly get some new sounds to work with. My workflow with this is to play a loop on the machinedrum, randomize the machines, then randomize the params. Usually hit the strip SRR button. If there isn’t much volume I’ll hit the strip volume button. When something is interesting I’ll spend some time randomizing the lfo to see if anything exciting happens. Then I go pad by pad and start tweaking the sounds. If there are a few pads with boring/unhelpful sounds I’ll randomize them directly and tweak the result.

This patch will allow you to randomize machines to all pads, or randomize a smaller pool as a template. You are able to randomize the 24 params for each machine, the lfo’s, and the fx. Other utilities allow you to remove volume, pan, srr, and fx values. There are 2 overlay templates that can be used to change only a few pads at a time. One example is overlay2template replacing the last 4 pads with ram machines. You are able to operate on all 16 pads at once, or directly on specific pads. There is a more extensive help in the patch. Most of the subpatches are commented and (hopefuly) easy to understand. I left lots of buttons in the subpatchers so that you can trigger specific things by hand if you need to.
If you have any questions my email address is in the patch.

I started this as an m4l patch but because of the way live handles midi channels it was sloppy and unreliable. This patch will not work in live, you must run it in standalone max. The presentation mode cleans up the UI a bit. It should run fine without a license so you should be able to use this with the max 8 demo.

Note: If you have the autechre dump on your md you will want to go to global and pick another slot so it sets all the midi stuff back to default. This patch wont work with other hardware, but it should work for all versions of the machinedrum.

Thanks Acid1 https://soundcloud.com/acid1 for ideas and testing.

Links:

Patch Storage:
https://patchstorage.com/inductive-machinedrum-randomizer/

Pastebin:
https://pastebin.com/aer7ABcH

Demo vid:

kill.inductive@gmail.com
Music: https://soundcloud.com/inductiveone

18 Likes

I’d love to have this for the Digitakt!

I would imagine something similar could be made, but I don’t have a digitakt.

1 Like

Don’t have MD anymore (and never had Max) but this is way cool. Some rad sounds coming out of this video…

You don’t need to own a Max license to use a patch. The demo is fully functional for 30 days, after that it keeps functioning but you can’t save patch edits. That’s just fine for running a finished patch like this.

2 Likes

This is excellent!

1 Like

Great stuff!
Unfortunately I want to avoid using computers to make music, hence Max.
I’d like you use sysex controlled by Octatrack notes, mapped with a midi controller to sysex with variables, in order to control machines / kits…
The goal being mainly to use OT’s random arp to modulate 3 or 4 machines for kick, snare, hihat, etc…the notes corresponding to machine values…

How would you write machine load in hexadecimal ?

This is the sysex string to set a machine for a specific pad, I think that is what you are asking. That chart is in integers, so convert those values to hex to get the machine ID. Also, if you are setting them to rom/ram machines there is an addition 01 before the final F7 in the command.

F0 00 20 3C 02 00 5B [pad 00-0F] [machine ID] F7

1 Like

Thanks a lot for time saving!
Any documentation / tips to convert binary to hexadecimal ?

Tons of converter pages on the interwebz doing that for you :wink:

Any link of a converter that would convert 0000aaaa, 0bbbbbbb, 0000000c ?

What you should really do is download a midi monitor. 0000aaaa isn’t what you are converting. Start with this link, then monitor what sysex the md sends when you change something. If you use windows check out Bome SendSX (it’s free). The windows calculator will let you convert between integer (base 10) and hexadecimal (base 16).

http://www.indiana.edu/~emusic/etext/MIDI/chapter3_MIDI9.shtml

2 Likes

I already have one I use regularly to test my midi processors, but i didn’t know MD was sending sysex while changing things !
Thanks again ! :slight_smile:

Is it possible to change lfo DEST via sysex ?

And for Mac, there’s Midi Monitor: https://www.snoize.com/MIDIMonitor/

It’s a super simple, free tool to watch any midi flying (or not flying) through your system. Perfect for diagnosing those occasional midi madness moments. You can view the data in hex or dec, too.

So I checked with Miditest, I saw regular midi messages and sysex while twiking lfo parameters (good news for TRACK/DEST control), but nothing for kit or machines changes…:thinking:

Not trying to be rude, but you should just look at the patch I uploaded. It will run fine without a max license.
This took many hours to test and get working correctly. You can get all the information for sysex and midi cc’s by looking at the different subpatches, everything should be fairly well commented. The machine drum uses 4 midi channels to send/receive sysex and midi cc’s so it can get a bit confusing.

Machine changes are simple, kit changes less simple. I was planning on randomizing patterns but that data is saved with 7 bit encoding with some type of handshake. I wanted this patch to just send midi without having to listen to any response.

My computer screen is 1/3 brocken so it is PITA to use. Thanks anyway.

This is how machine selection works. This is the sysex to change machines:

F0 00 20 3C 02 00 5B [pad number 00-0F] [Machine ID] F7

On the left is the MachineDice subpatch, you can see that it is selecting from 47 machine id’s in decimal format. Those number are the specific machines I wanted in the random pool. I skipped GND and INP machines, rom machines are a different section. If you want to use ram or rom machines, after the Machine ID is an additional 01 before the F7. The page you posted from the manual notes that too.

3 Likes

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.

3 Likes