Reverse-engineering physical audio hardware into software

Hi all. Longtime lurker, first-time poster.

I’m a software-first kind of musician, in that I don’t own a ton of hardware, for several reasons (space, money, curious/destructive little kids, etc.) and like doing as much as I can on a laptop.

I’m curious if anyone has experience translating “open” physical units into software, using audio programming languages like Pure Data or Supercollider, or even more traditional languages like C++. I’ve been programming personally and professionally for nearly 20 years, but have very little experience with hardware, circuit boards, etc. and am fairly new to audio programming as well. The SOMA Lyra-8 in particular comes to mind, because it has a DIY version that seems to expose a ton of implementation details that someone could learn from.

I know some of it has to be possible, due to the popularity of VCV Rack, and its software implementations of several Mutable Instruments modules.

Ethically, I obviously wouldn’t try implementing anything seriously without consent from SOMA or any other manufacturer I’m trying to emulate, and definitely wouldn’t release anything publicly without their full support. I mostly just want to know what’s possible, for my own personal growth and use.

Any books, sites, or other learning resources that would help me to understand more of the translation of physical audio hardware into software would be very much appreciated!

One related thing to explore in this, if you have access to effects units etc, is using impulse response recordings (usually used for capturing room reverb) but blasting it through the hardware. Lots can be done with that method too.

1 Like

As with most ideas for apps, it appears that this has already been done:


Also I don’t think the DIY Lyra documentation offers much in the way of implementation details. It’s basically just a PCB set and BOM, no schematic or explanation. You could trace the board and figure it out, but you could do that with the retail version as well.

edit: Also the Lyra concept is pretty straightforward. The oscillators modulate each other depending on the routing and amount, plus the neighbors are always modulating each other a little bit. IMO, it’d be more fruitful to just take that concept and expand it, rather than make a virtual clone. As much as I love my Lyra-8, there are a lot of things that could be improved/added in a software version.

2 Likes

I was thinking of this with the Morphagene (the concept of which I’m vaguely obsessed with) but Samsara looks quite similar and ultimately I’m more likely to use a handful of iOS or M4L devices that already exist and can get me within touching distance than I am to actually learn how to make things and do it myself.

When building DIY kits I discovered that I have limited time and I can either use that to make music or things to make music with but sadly not both.

2 Likes

This was basically my concern. I don’t know enough about circuit boards and how they map to a unit’s features to know how difficult it would be to deduce rough implementation details. If it’s easier to just play with a unit for a while to deduce what it’s doing, that may be what I end up doing.

That Mononoke demo looks awesome. The only thing I wouldn’t get out of just buying that is that I don’t get a chance to improve my audio programming skills, which is a secondary goal with all this. :slight_smile: But perhaps a weekend with Pure Data or Supercollider and some demo videos of the hardware I want to emulate is the better way to do this.

1 Like

This may be obvious but I’d suggest starting off by trying to emulate hardware for which you can find simple block diagrams (ie, much higher level than a circuit diagram, and easier to map to Supercollider ugens or similar).

  • Here’s a very simple Minimoog block diagram (there are lots more in the Synth Secrets articles).
  • And here’s a more complex one for a CS-80.

Matching a block diagram will get you most of the way there, before needing to dig into exactly what makes specific components unique or trying to interpret PCBs. Have fun! :smiley:

5 Likes

Mutable instruments modules are digital, and open source. Porting them to software is a simple matter of programming (no circuit modeling is necessary).

1 Like

Things I didn’t know! That makes a lot more sense.

oooo i’ve been similarly wanting to dig into modeling casio / toy keyboard and samplers but without too much knowledge to look at circuit boards

if ayone knows where to find block diagrams (or schematics) for these please pass !

1 Like

Worth also considering that understanding the structure / concept, but not the block diagram (100%) is a good foundation to make something conceptually similar, but sonically slightly different.

Eg:

Just thinking along those lines in Max or similar would be a fun exercise…