I build some VCV Rack synth modules in C++!

September 27, 2018

If you haven't heard of the amazing VCV Rack, check it out! It's a free, open-source, multi-platform virtual modular synthesizer. There are hundreds of plugins/modules available, some free and some commercial. You can patch them together with virtual cables – just like a real hardware modular. There are emulations of Eurorack gear, obscure modules, drum machines, other hardware, and wild stuff that doesn't exist anywhere else. You can load as many plugins as your computer can handle. You can make feedback patches and modulate things at audio rates, both of which usually crash other similar programs if you're not careful.

In short, it's a dream come true.

This is what I was trying to create with my Pure Data modular synthesizer, but it's way better!

Not only is this a fantastic tool for creating music, it's also an excellent – and free! – way to learn modular synthesis. If you've been wanting to experiment with huge modular racks, you can download this software and be patching in five minutes without spending a penny. In short, this amazing project is making modular synthesis accessible to anybody with a computer.

As someone who likes to dabble in code and learn new things, naturally I had to try my hand at creating some of my own modules for this project. I have coding experience, but aside from Arduino, nothing like C or C++. Rack is written in C++, so I had some learning to do!

[caption id="attachment_31951" align="alignnone" width="670"] "Where we're going, we don't need knobs!"[/caption]

I took some existing modules, used them as a template, and created a pair of new modules based on real-life modules I have in my DIY modular. One is a high frequency oscillator, simply an oscillator that can go very fast. I like these for using sequencers and shift registers as oscillators. The other is a R2R ladder, which is straight out of the Lunetta playbook; basically a very simple digital to analog converter, and a feature of many "stepped random" generators like the Buchla "Source of Uncertainty, Noisering, and others.

These two modules are very simple, but they work. Going through the process of making them I learned a lot about C++, git, and compiling software.

Of course these virtual modules have virtual panels made of virtual oak, just like my DIY synth. Once I figure out how, I plan to take pictures of my real modules and use those as the panel. But I have more to learn first.

For more information about this pair of simple plugins, check out the Readme file on Github here. You can also look at the code or download and compile yourself if you'd like. Feel free to send me issues or pull requests!

I'm ecstatic to share that my plugins have been added to the official VCV Rack plugins repository and are available for download for all Rack users! If you want to try them out, simply head over to the Rack plugins page, add them to your account, and hit "update plugins" in Rack.

Thanks to Andrew Belt, the developer of Rack, and all the folks who have worked together to bring his project to life. It truly is a great time for music technology, and I'm excited to see where this project goes.

This page was created in WordPress as HTML, exported as XML, converted to markdown, and heavily tweaked using command line tools like sed... So it might be weird and is probably missing stuff like pictures.

Tags

avatar

Hi! I'm Chris Beckstrom

Thanks for reading my website! I make music, build synthesizers, brew beer and kombucha, like to pretend to be a sysadmin, sometimes write some code, and obsessively maintain a personal wiki with ~1.4k pages. This is my home on the internet, a place for me to share my adventures.

I hope that some of what I share can be useful to others. My goal here is to help and empower others to do cool stuff. Do you have questions about kombucha (or kombucha leather)? DIY synthesizers? Getting started in the Fediverse? Want to be friends? Hit me up!

Right now the best way to reach me is via email at chris@chrisbeckstrom.com. Many more ways to find me here