MachineDrandom — a browser-based live kit randomizer + sequencer for the Machinedrum

MachineDrandom — a browser-based live kit randomizer + sequencer for the Machinedrum

A single-page web app (Web MIDI) that rolls random kits onto the Machinedrum live, and plays patterns on it as a sound module. No install, nothing leaves the browser.

Link: https://machinedrandom.keremergener.com/


The itch

Kit design on the MD is deep, but starting from an INIT kit is the least inspiring part of it. I wanted something that throws machines and parameters at the 16 tracks to spark ideas — while letting me keep anything I like and roll the rest — and I wanted it to talk to the MD live, using the machine’s own messages, so I can audition in place and SAVE KIT only when something sticks. I also wanted to drive the MD as a pure sound module without touching its pattern memory.

So I built MachineDrandom. It does two things: randomizes kits, and sequences patterns onto the MD.

What it does

Kit randomizer. For each of the 16 tracks it assigns a machine and sets the parameters, then sends it over MIDI as an assign-machine SysEx per engine + a CC per parameter. It changes the currently loaded kit in place — no kit dump, no librarian. Nothing is stored automatically: audition, re-roll, and SAVE KIT on the MD to keep a roll.

Pattern sequencer. MachineDrandom is the sequencer; the MD is the sound module. It streams trigs as MIDI notes + MIDI clock, so tempo-synced delay and LFOs lock to the BPM — without starting the MD’s own sequencer, so nothing is written to pattern memory. It’s a live performance you can edit while it plays.

Kit capabilities

  • Engine pool you choose from: GND, NFX (X.12 noise), TRX, EFM, E-12, P-I — plus ROM/RAM sample machines (off by default).
  • Per-parameter policy across all 24 params: RND randomize · DEF send the default · FIX pin a value. Set it globally, with RND all / DEF all shortcuts, then override per track.
  • Track matrix — 16 voices labelled with the MD factory names (BD, SD, HT … M4). Turn tracks on/off, lock a machine, lock any single parameter, or inherit the global policy.
  • Tame mode keeps levels and sends in musical ranges so rolls stay usable.
  • Live preview, message log, and a raw SysEx/CC view if you want to see what’s going out.

Pattern capabilities

  • Up to 128 steps, with BPM, resolution (1/8–1/32), swing, velocity, density, accent, ghost notes and humanize.
  • Per-track roles (kick / snare / hat / …) auto-inferred from the loaded kit’s machines, driving the generators.
  • Algorithms:
    • Generative — Euclidean, Random density, Linear (one voice per step, role-weighted).
    • Grooves (role-based) — Rock, Funk, Hip-Hop, House, Breakbeat, Jazz, D&B, Afro-Cuban. Each has 8 variants, and with Vary on, every Generate re-voices the hats, adds kick syncopation, ghosts and the odd end-of-phrase fill, so you rarely get the same pattern twice.
    • Turkish aksak — 9/8 Karşılama (2+2+2+3) and 7/8 (2+2+3).
    • Autechre — 128 patterns and 64 kits decoded straight from a Machinedrum SysEx dump. Browse the patterns, load a kit to preview, send it like any other.
  • Edit cells, re-roll, and change tempo / swing / velocity while it’s playing.

How it works

Web MIDI API. Engines are set with assign-machine SysEx (0x5B); parameters with CC. The MD spreads its 16 tracks across 4 MIDI channels from the base channel, and the app follows that. The CC map and assign format are ported from jmamma’s MCL.

Running it

  • A Web MIDI browser — Chrome, Edge, or Brave.
  • On the MD: enable CC + SysEx receive, and set the base channel to match the app.
  • Built around OS X.12 (MKII / UW). Sample machines (ROM/RAM) are off by default; sample-based content needs the matching samples loaded on the MD to sound.
  • One self-contained HTML file. No install, no account, no data leaves your browser.

Honest notes

  • It changes the loaded kit in place — it doesn’t write a kit slot for you. SAVE KIT to keep a roll.
  • The pattern player never touches your pattern memory; it’s notes + clock, live.
  • Web MIDI only, so no Safari / iOS.

Feedback welcome — engine and parameter ranges, groove templates, and machine-specific tweaks especially. Happy to take requests.

14 Likes

it does run on Firefox too but it needs an add-on to be installed. mentioning this just in case :slight_smile:

2 Likes

This is so awesome, thanks for making it!

1 Like

this is awesome. love seeing other developers build zero-install web tools for hardware. i’ve been wrangling with web midi and raw sysex packages for knob.monster recently and it can be a real headache getting the buffers right.

using mcl’s map for the machinedrum cc routing is a great touch. nice work.

1 Like

Excellent. I love randomisers, thank you.

Q - can this be saved as a web archive so it can be used offline?

1 Like

Yes it can.

1 Like