Skip to content

Petri: a rhythmic cellular ecosystem for eurorack


Eurorack is an open format for modular synthesizers—hardware-based audio devices that enable you to craft compositions (called “patches”) by routing voltage signals between different modules. Some modules produce sound, others only produce voltages that you can use to build rhythms, melodies, etc. It’s a highly-flexible way of creating music: one that rewards experimentation, and an analytical approach to composition.

Having played with (and made small code contributions to) the open-source modular synthesizer project VCV Rack, I decided sometime in 2019 that I should learn more about the “real thing”. I first started by building popular DIY modules like the Turing Machine and the Penrose and eventually graduated to designing my own module, which I call the petri. I’ve always found computational processes that model natural systems interesting, so I set out to build something with that in mind. Petri (named for Julius Richard Petri, inventor of the Petri dish) embodies that principle, using selectable cellular automata rule sets and starting populations to generate rhythmic sequences of control voltage pulses. It’s like a little ecosystem of cell life in modular form.

Since the brains of the module run on an AVR microcontroller, I started with a breadboard and an Arduino to work out a proof-of-concept. Once I felt the basic idea was sound, I moved on to more rigorous circuit design, hand-soldering prototype boards and using a laser cutter to cut wood faceplates to ensure the module could fit the eurorack form factor. I ultimately designed a PCB layout and had it manufactured at OSH Park before assembling a final prototype.

petri schematic

petri breadboard petri soldered breadboard
petri pcb trace petri pcb

It’s widely-acknowledged in the eurorack community that designing your own modules is hard but worth it, and in hindsight I found this to be true. It involved many hours of circuit design, debugging, graphic design, and embedded software development, but in the end I had a quality prototype and a ton of cross-cutting knowledge that I could readily apply in other personal and professional projects. My key takeway as a software engineer dabbling in hardware: hardware debugging is HARD. I hope to do more work in this format sometime soon.