A general purpose computer running Arch Linux is a modular synthesizer. It sounded simple enough. This is how we got there.

At the begining of 2017 I was thinking about modular synths a lot. This coincided with two interesting free software projects which came to my attention, VCVRack and Automatonism. At the same time gnar's very own Gretchen was building Eurorack format hardware modular synths. It seemed like a perfect combination for something really cool to happen.

What held me back when I started was the specialty of CV or Control Voltage. Everyone was talking about modular...modular...modular, CV...CV...CV. There was a lot of misinformation and there was a lot of sales pitches for products that "just work" if you buy them and there was also some detailed technical information. It was...confusing.

The simplest way to get a modular setup working seemed to be the following

  1. Create an account on Muff Wiggler dot com
  2. Create a bank account of at least US $5000
  3. Post on Muff Wiggler that you are looking for a starter pack
  4. Spend the next year figuring out how all the gear you bought fits together

But what if there was a better way? A way where modular synths with CV jacks could interact with powerful general purpose computers. I had heard about this thing called DC coupling on an audio interface from a fellow synth hacker I met at the Noisebridge hackerspace in SF. He couldn't explain what it meant in electrical terms but he insisted there is an old firewire 400 audio interface at Noisebridge that is capable of DC coupled output. It is a Mark Of The Unicorn 828mkII.

I uncovered that DC coupling means that there is no capacitor on the last step before the connector. This allows the connector jack (a 1/4" TRS connector in this case) to pass DC voltage, which is higher (9vpp in the case of the MOTU) than a typical line level AC voltage (3.472vpp at +4dbu). This DC voltage flowing over the cable can be connected to any CV input of a modular synth and control that parameter. It's literally as simple as plugging a cable from the computer to the synth.

I tested this using Puredata and a multimeter. It checked out. The [sig~ ] object in PD outputs a signal represented as a 32 bit float between 1 and -1. Changing this value on the computer produced corresponding voltage readout on the multimeter! [sig~ 1] produced 4.5V and [sig~ -1] produced -4.5V.

So that's cool and all but it only proves that a genral purpose computer running Linux with commodity hardware can act like a modular synthesizer. What about apps? That's where VCVRack and Automatonism become a thing. Both of these applications are built to digitally model analog modular synths. They also have a special "audio input and output" module for getting the sound to/from the computer. All it takes to map the values from a module is to connect a virtual cable from the module to the audio output, then a cable from the sound card of the correctly numbered output to a modular synthesizer.

I'll be covering both VCVRack and Automatonism more in future posts.