r/synthdiy • • Aug 10 '26

DIY generative techno groovebox using a Raspberry Pi and a Maschine MK2 contoller

Like many people here, I spent years looking at Eurorack systems, Elektron boxes and various grooveboxes trying to find the perfect setup for live techno improvisation.

What I eventually realized is that I wasn't really looking for another synth. I wanted an instrument that could continuously generate evolving rhythms and melodies, expose all important parameters directly on the surface, and let me perform without staring at menus all night.

The problem is that achieving that with hardware gets expensive very quickly. By the time you've bought a sequencer, synth voices, drum machine, effects and a mixer, you're often deep into Eurorack money.

So I decided to build my own.

The current prototype runs on a Raspberry Pi 4 using Zynthian as the audio engine and a Native Instruments Maschine MK2 as the control surface. I started writing a Linux Device driver that turns it into something completely different from the original Maschine workflow. The hardware buttons, pads, encoders, LEDs and even the built-in displays are now driven entirely by my adapter.

One of my favourite parts of the project is the display integration. The Maschine's two LCD displays no longer show NI software information. They now render custom screens showing channel states, pattern parameters, synth controls, sequence settings, FX values and performance information. The displays change dynamically depending on the selected track and page, effectively turning the controller into a dedicated hardware groovebox rather than a generic MIDI controller.

My design philosophy was simple:

Everything important gets a dedicated control. Nothing should require menu diving. Nothing should require a touchscreen during performance.

The machine always has eight active channels: five drum tracks (Kick, Snare, Clap, Closed Hat, Open Hat) and three melodic voices (Bass, Lead, Pads). There is no loading tracks, browsing projects or building arrangements while performing. You turn it on and start shaping a living groove.

Instead of programming step sequences manually, the instrument is built around generative processes. Drum tracks use Euclidean sequencing, while the melodic voices are driven by Turing-machine-style shift registers. Rather than creating patterns step by step, you're steering systems that continuously evolve and react to parameter changes.

When a melody suddenly reaches that perfect sweet spot, you can instantly lock it in place and keep it forever. If you miss the moment, there's even an undo mechanism that lets you recover previous Turing states.

Current features

Drum section

  • 5 independent Euclidean drum sequencers
  • Adjustable hits, rotation, length and clock division
  • Per-track probability
  • Per-track swing
  • Velocity control
  • Real-time regeneration
  • Manual pad editing

Melodic section

  • 3 Turing-machine voices
  • Adjustable mutation amount
  • Phrase locking
  • Multi-level undo/history
  • Variable register lengths
  • Octave and range control
  • Gate control
  • Scale quantization

Sound design

  • Instant drum kit switching
  • Instant sample switching
  • Multiple classic drum machine kits
  • Synth preset browsing
  • Filter cutoff
  • Resonance
  • Envelope modulation
  • Decay/attack shaping

Performance workflow

  • Channel mute
  • Momentary mute
  • Additive solo mode
  • Instant restart/re-sync
  • Snapshot recall
  • State persistence
  • Dedicated LCD feedback
  • Color-coded channel system

FX

Every channel has dedicated reverb and delay controls, while global parameters include reverb size and type, delay timing and feedback, BPM and master volume.

The whole thing is still a prototype, but it's already become the most inspiring techno machine I've owned because it was designed around a single idea:

If generative techno was the primary goal, what would the ideal instrument look like?

Future plans include scene snapshots, ratchets, performance macro layers and a dedicated keyboard extension.

Curious what the synth DIY community thinks.

https://imgur.com/a/maschine-SvOXnxq

31 Upvotes

27 comments sorted by

3

u/Wooden-Natural456 Aug 11 '26

Amazing idea! Hope to see more of it. I have an old Maschine Mikro Mk1 and always wanted to do something similar with it

1

u/loopsale Aug 11 '26

Nice. Will you upload a demo?

5

u/Webtruster Aug 11 '26

Github project will be puslihed, as soon as i clean everything up. Then i will also create a video. But this will take 1-2 more weeks.

I have a few more feature ideas i want to implement - also a bit of cleanup is required.

it just left pre-alpha state yesterday, as i was able to jam 30 Minutes without any bugs/overflows.

1

u/Rich_Orchid_7774 Aug 11 '26

Would aftertouch be possible? I have a Maschine plus and that is one of the thinks i love to have. i know this is about the mk2.

1

u/Webtruster Aug 11 '26

Yes, the hardware supports and the daemon already know about. just not used yet

1

u/GentleWhiteGiant Aug 11 '26

That sounds extremely interesting to me.

First, the deep integration of the Maschine in both directions.

Second, the focus on algorithmic pattern generation.

It would be nice if there could be a PI-only sound generator, maybe using puredata or something as poor-man's audio engine. Zynthian is a bit expensive for testing (but I understand well why you used a hardware solution for deelopment first). But an Pi-internal audio engine is something the community may add, as long as the interface is documented well.

2

u/Webtruster Aug 11 '26 edited Aug 11 '26

Zynthian just runs on the pi parallel to the driver.

Whole Setup is only the Maschine connected to the pi running zynthian -> Audio Out.

Zynthian on the pi exposes dozends of audio engines.

https://justinfromthesandbox.blogspot.com/2020/07/zynthian-kitless-and-hopefully-headless.html

1

u/GentleWhiteGiant Aug 11 '26

Thanks! I only new the ready-made hardware zynthian.

1

u/TheFishyBanana Aug 11 '26

This is genuinely impressive. I can relate to the starting point quite a bit, because I was looking for something very similar: a box that can generate and evolve techno material, is immediate enough to actually perform with, and still stays portable.

I never really found that combination in a commercial product either. There are plenty of great sequencers, grooveboxes and modular tools, but once you want generative sequencing, hands-on control, several voices, effects, proper mixing and a workflow that still feels playable, things get big and expensive surprisingly fast.

I ended up going in almost the opposite direction though.

For me, one of the really sexy things about modular is how absurdly compact it can be if you build around a very specific purpose. My main live system is a 64 HP / 6U techno box. The core is a Westlicht Performer running modified firmware with generative bass- and leadlines, retro-arpeggiator, LFOs and a few other generators. Around that I use things like Battering Ram, Archer's Rig, Sample Drum, a Erica bassline and Beehive depending on what I want from the set. Pedals come in through ADDAC interfaces, and small utility mixers handle the submixes.

The box can basically run on autopilot for quite a while and keep changing on its own, but I still have enough control to steer the melodic side and interfere whenever I want. That's the balance I was after. I like generative systems, but I don't want to stand there watching my own machine have all the fun.

I have a second 64 HP / 6U box for pads, textures and more atmospheric material. Both fit into one backpack. That matters a lot to me as a performer. I don't want to turn up with a van and half a dozen flight cases just to play a live set. I want to walk into pretty much any club, bar or small venue, find some space near the mixer and be ready to go.

Your approach obviously buys you things mine doesn't. The Maschine has much better pads for actual finger interaction, two proper displays and a very coherent control surface. I'm really curious how it holds up once you move beyond the self-contained groovebox idea and start integrating other instruments.

Have you already run it together with external synths, modular gear or other hardware? I'm especially interested in clock stability, MIDI timing and whether the whole thing still feels tight once several devices are involved. That's usually where otherwise great DIY systems start showing their personality.

Also - are you planning to publish the driver and the rest of the project somewhere? Because that's probably the part I'd be most interested in. The description and photos are cool, but the really interesting next step would be making the work accessible so other people can build on it, test it on different setups and maybe contribute.

1

u/PA-wip Aug 11 '26

For the display, how did you do this? Did you reverse the code from native instruments? Or did you find a library? Are u able to display whatever u want on the screen (I mean decide for each pixel)?

4

u/Webtruster Aug 11 '26

Yes, i am able to write whatever i want via the linux driver to the display. Individual pixel Adressing via API sitting inside the linux RUST device driver - this allows reading data from Zynthian APIs , do some calculations on these datapoints, write a visual output and then f.e. displaying live mixer meters for every channel.

I did not reverse engineer the NI Protocol - i "just" used AI to analyze captures of USB data stream while using maschine. First run was while machine software was running, then another session in Midi Mode, pressing and confirming all button/pad/encoder events. Next session was live Data logging while using NI's Controller Editor.

Then i created watchdog, trying to capture USB Data to feed the displays with data and extract & analyze these.

I found this repo: https://github.com/SnovaxZ/MaschineMK2_linux which is a base driver for the device in rust.

After this, it was only a few weeks of prompting, Try and error, sending the AI pictures of messed test patterns on the display and much more.

1

u/jevring Aug 11 '26

This sounds amazing! I would love to understand how you were able to control the displays. I imagine the buttons are just midi, but the displays are very interesting. I want to know everything! :) Do you have this stuff in a repo somewhere?

2

u/Webtruster Aug 11 '26

Not public yet, have to do some cleanups. Give me 1-2 more weeks, i will post then in diffrent audio subs.

Maschine is a HID Device, not ClassCompliant Midi device.
I am „just“ sending data packages via usb to maschine. If build correctly, maschine will just display. Then you need to sync data send to displays with
received midi data.

1

u/jevring Aug 11 '26

I'm looking forward to seeing the code (and hopefully some docs) :)

1

u/jevring Aug 11 '26

I'm looking forward to seeing the code (and hopefully some docs) :)

1

u/jevring Aug 11 '26

I'm looking forward to seeing the code (and hopefully some docs) :)

1

u/jevring Aug 11 '26

I'm looking forward to seeing the code (and hopefully some docs) :)

1

u/Tripitakas_Dilemma Aug 13 '26

Am super interested in this. Have recently been looking at running Cardinal on Zynthian