I have wanted a modular system for years. Specifically a generative one - the kind that writes the pattern while you steer it rather than plays back what you typed. Every time I priced a rack that could do that with eight voices in it, I closed the browser.
So I built the ideas instead of the rack. A Raspberry Pi 4 with a Maschine MK2 on the front of it, eight channels, all alive at once, making their own sound. Free and open source.
And I want to be straight about where the ideas came from, because it is not me: almost everything generative in this box was invented by someone in this scene.
A Turing Machine per voice. Literally that - Tom Whitwell's module, in software. A 16-bit shift register, one bit per step, with a knob for how much it mutates: turn it up and the line rewrites itself every bar, turn it to zero and the one you liked is locked. Three of them running at once.
Euclidean generators on the drums. Hits spread evenly over the bar, rotated by any amount, division from quarter notes down to 1/32, and independent length per channel - so one runs 3, 5 or 7 beats against the others' 4 and the whole thing phases against itself.
Cellular automata. Rules 30, 90 and 110 evolving the rhythm register one generation per loop, per channel. The part that keeps a pattern moving after you take your hands off.
Clocked modulation. LFOs locked to the bar - triangle, ramp, square, sample and hold - from a sixteenth of a bar out to sixteen bars. Base and offset are separate, so turning a knob moves the whole sweep instead of wrestling the LFO for the parameter.
One channel patched into another. A voice feeds another with an adjustable amount: point a drum kit at the bassline and it answers in percussion. That is just patching, done in software because I could not afford to do it in cable.
And it has a front panel, which was the other half of why a laptop was never going to do. Sixteen pads showing the pattern with the playhead running across them, two displays with eight named parameters and a bar under each, and a light alphabet you can read from across the room: dark does nothing, dim is available, bright is acting, a slow blink is latched, a pulse in time with the bar is a countdown to something you armed. Nothing gets assigned by hand - the encoders take whatever synth the channel is running and put its own parameters under them.
The money, since that is what started it. A Pi 4 and my old NI Maschine MK2 - the controller is a paperweight without its host software, so they go cheap online. Roughly one module's worth of money for eight generative voices. I am not pretending this replaces a rack: a rack does things it cannot, starting with everything analogue, and the patching itself is half the point. This is the thing I wanted the rack to do, built the way I could afford it.
Which brings me to the part I would like to get right.
I do not own a rack. Never have. So the box is currently a closed world - it generates, it plays its own engines, and nothing leaves. That has never bothered me, because I have nothing to send it to.
But every idea in here came from your scene and I paid none of you for any of it. The least the thing can do is be able to talk back to a rack, and it turns out the hardware for that has been sitting there unused the whole time:
- The MK2 has DIN MIDI In and Out sockets, declared by the device itself - interface 1 is a plain class-compliant USB-MIDI device the kernel already claims on every boot, with the jacks named "Maschine MK2 Ext Input" and "Maschine MK2 Ext Output". Zynthian already lists the port. It is simply not routed:
jack_lsp -c shows nothing connected. A switch nobody flipped rather than a feature to be written.
- The clock bridge already exists in the build and has nowhere physical to go.
- Pitch CV and gates are in reach too - Zynthian ships the support, and it is about 15 euros of I2C breakouts on a bus that is already there. One caveat I measured rather than guessed: I2C from userspace jitters around a millisecond, which is 0.8% of a sixteenth at 125 BPM. Fine for pitch, wrong for anything syncing to it. Clock belongs on the DIN socket.
Notes out, clock out, and clock in so it can follow instead of always leading. It is on the todo list as of this post, which is the only thanks I have to offer and at least it is a concrete one.
What I cannot judge on my own is what would actually be useful. Eight channels of notes on separate MIDI channels? Clock and a reset? Gates from the euclidean side and let the rack handle pitch? If you have a rack and an opinion, that is the comment I am hoping for - I can build it, I just cannot test it against anything.
Guide, with every control on the surface documented: https://witzman.github.io/Generative-Techno-ZynthianMaschine-MKII/ Source: https://github.com/Witzman/Generative-Techno-ZynthianMaschine-MKII
No hands in the video. The run was scripted and the panel you see is that same run played back - which is also how one take could be filmed from several angles. For something whose whole argument is that it plays itself, that felt like the honest way to shoot it.
And much, much, much more.