I reverse engineered ๐Ÿฅท an analog synth ๐ŸŽ› into an open source VST ๐Ÿ’พ

TL;DR: I made a VST, you can get it here. Note: I'm not making any money from this, it is only intended for educational purposes.

The Encounter

The evening concert was coming to an end in the countryside of a town called Unquillo, not far from Cรณrdoba, Argentina. The last band, Contrafacto, was an underground, independent, electronic music group that had a very large table completely covered with analog instruments and cables. When they started it was difficult to differentiate between sounds, who was making what, and which instrument was making which sound. Complete dislocation between gesture and sound. But then, I heard it: The Apollo. It sounds like this, and looks like the pic below:

The Apollo 1 by Guido Salaya

Did not know what it was first, but I was blown away. I waited until the end of the concert, went up and congratulated the group, and asked about the synthesizer. It was hard to hide my bewilderment; my eyes kept looking at it as if it were some treasure from a paradise lost, a forbidden fruit. I had to have it. It had to be mine.

The Revelation

A few days went by and I just forgot about Apollo. I continued with my work on pdpy, I forget what I did, and I watched a few movies. So, I'm in the middle of the movie ๐ŸŽฅ, Gosling is turning and flipping around trying not to pass out while stabilizing a ship, which will be the Eagle upon it's moon landing, and it hit me: I will buy the synth. Spinning out of control, I duck-duck-go'ed Apollo synth only to find that it was discontinued. I became frustrated for a second, just enough to glance at the screen while Gosling was making the weirdest face ๐Ÿ˜ตโ€๐Ÿ’ซ: I will make it with Pure Data. I felt alive.

The Research

The Apollo 1 is made by Guido Salaya, an Argentinean independent electronic engineer who designs really incredible analog synthesizers. From his website, it reads:

GS Apollo I is an analog monophonic synthesizer featuring subtractive synthesis.

Here's a video of Ernesto Romeo giving it a spin. Luckily, subtractive synthesis is something I'd done in the past. However, I was decided to make it into a VST using Pure Data, so I had to make it suitable for Camomile. From then on, this became a learning project where I tackled with VST parameters and the internal logic Pierre Guillot, Camomile's awesome coder, had intended. His docs were really helpful with that ๐Ÿ‘Œ๐Ÿผ.

In addition to learning how to Camomile, I had to get some information about how the Apollo 1 was built. That is, I needed some diagrams of the electric circuitry involved in it. For this, I looked into the online manual of the Apollo: GS APOLLO I MANUAL DEL USUARIO Descargar en PDF Now, I was ready to start patching.

The Patch

Apollo1 is an open source Pure Data patch that can run inside a DAW using the Camomile audio plugin by Pierre Guillot. It is a copy of the Apollo 1 Analog Synthesizer by Guido Salaya (GS Music). It is intended for educational purposes.

The Apollo VST

The DSP design was quite straightforward, keeping it as simple as possible. The ADSR logic comes from Pd's doc, no extra magic there. The rest is just joining the dots. The main filter was adapted from one made by Cyrille Henri in 2016, and it was based on algorythm by Vesa Valimaki and Antti Huovilaine.

Do check CHNRY's work: http://www.chnry.net/ch/, he's quite amazing.

The VST

Making the VST was quite easy because I was using Camomile, which is the VST that loads the Pd patch I made. The audio core of Camomile comes from the embedded version of Pd called libpd. Look into that library if you're interested in knowing how it works. So, making the VST meant changing the patch to which the compiled Camomile VST is pointing. Thus, all I had to do is grab the Camomile releases and replace the patch (and some other stuff, too, read the docs for that).

That's that; no magic. Actually, it was quite magical ๐Ÿง™โ€โ™‚๏ธ๐ŸŽน๐ŸŽ›