VCV Rack Virtual Modular Synth for Linux

This week all the attention has gone to the new VCV Rack. This is a virtual Modular synthesizer, which is free and open source, and (best of all) runs on Linux. I really had to check this one out!

This video was made without much musical intention, and I tried to use only the modules that come bundled with the program,  before installing any additional modules (more on that later). There was not much of a big musical intention behind this video other than to see how this synth sounds, how stable it is and how easy it is to create something from scratch.

Installing and Running

VCV is free and open source. You can download it from their website https://vcvrack.com/. They have pre-compiled binaries for Windows, Mac and Linux, as well as a link to their GitHub repository from which you can download the source code for “in house” compilation.

After reading their website, I came to the conclusion that VCV is actually only the “framework” that supports the virtual implementation of a number of modules. The software itself is “VCV Rack”. Could this mean that a future VST/LV2 version of this synth will be available? I don’t know, bu it could be fun for future DAW integration.




As you might expect, I started by downloading the Linux 64-bit binary version, which is just a zip file you unpack and then go to the command line, cd to that folder and

$ ./Rack.sh

It is important that you use the shell script instead of launching the software directly, as some environment variables need to be set for the software to know were the pre-compiled libraries that came with it live.

This pre-compiled version works fine, but of course I wanted to see if I could get better performance from a binary linked to the libraries that are already in my system. So I downloaded the source code and tried to compile it. The instructions are simple enough: just type make. Unfortunately, this did not work on my system, and neither the comments on the Makefile nor the documentation on GitHub are detailed enough to help me solve the problem.

Modules and Sound

When you open VCV Rack all you see is an empty frame resembling and empty eurorack case. Like in most Virtual Modular, the first thing you want to get is an audio output. The bundled Audio Out module has 8 inputs and 8 outputs, and allows you to select any of the audio inputs and outputs of you system. In my case, the drop-down menu successfully identified my sound cards, the HDMI audio output, as well as a Jack server, when it was running.




The basic modules include some stuff to get you started, and most of my hardware modular oriented friends would be in heaven if they had hardware versions of all the default modules when they first started their modular systems. The included VCO sounds good, has an “Analogue” mode for a thicker sound, as well as FM and PWM inputs. It does not go all the way into the low frequencies, which is a bummer, as no LFO is included in the default modules.

The VCF is nice, but not too thrilling. It is possible an emulation of a 4-pole filter, with a sharp (needle-like) resonance peak (it does not appear to break like the MS-20 or the Microbrute filters). It also features a drive “circuit”,  but like most 4-pole filters, the bass frequencies almost disappear when pushing the resonance up.

For the other default modules, I found the 8 step sequencer to be interesting, but synchronizing multiple sequencers turned out to be almost impossible, unless I was looking for some clock-dividing setup, using the Gate output of the faster sequencer to advance the slower one. Another issue is that we cannot change the Gate Time of the sequencer (neither per step or has a global setting). On the other hand, each instance of the sequencer gives you 3 CV control lines… one of which I’d love to see transformed into a Gate Time sometime in the future.

There is also a nice ADSR envelope generator (with CV control for each stage), a dual VCA module, a CV mixer and a Delay. This latter module is perhaps my favourite of the default bunch. The delay time can be set to extremely low values, which, with proper use of the feed back and color controls can be used to get some very interesting Karplus-type sounds. Moreover, the all controls on the Delay module (delay time, feedback, color and mix) can be controlled using CV, although you might want to attenuate the CV coming from the sequencer into the delay time, if you pretend to create some Karplus-type instrument… The CV Mixer is your friend in this scenario. ;)

Now, I haven’t explored the other modules as much as the default ones. To get them, you can either download their source code from GitHub (which may end up with the same issues to compile the code as I had for the main program). Alternatively, you can register in the VCV website, and select which modules you want. Then use the login and password fields on the top bar of VCV Rack to login into their server, and VCV rack will automatically download the modules you want. As far as I can see, the idea is that commercial modules may be developed in time, and you can use the website to purchase and manage your licenses and then just log in from VCV Rack to get your module library delivered to you, not unlike what Steam does with games.

Compatibility and Stability

The sample rate of the Audio Module can be set independently of the sampling rate for the VCV engine (which in turn is set in the bar at the top of the window)… What is more, both sampling rates can be set independently from the one set on your sound card, or Jack server. This flexibility comes at a price, though: if you mismatch any of those settings, a lot of crackle will come out of your speakers, and sometimes, only restarting the program will make that go away. Annoyingly, when the software starts, it always defaults to 44.1kHz sampling rate.




Another issue with the Audio Module is that it consumes a lot of CPU… even at moderate settings (48k sampling rate and a 1024 frame buffer), this module could easily take up to 100% of one CPU. This is remarkable as I’m running quite a powerful workstation-class system. This may also be a compatibility issue with Jack, as the module does use less CPU when outputting directly to a card controlled by ALSA.

From time to time, VCV Rack will auto-save your work in the form of Json files. Despite these being relatively small files, something must be happening to the system while saving (I’m guessing some ordering of the modules in order to register the connections), because the system tends to get hiccup upon saving as the system becomes larger and more complex.

Much to my disappointment, after I created the patch shown in the video, the system VCV Rack started to hang. Indeed, I could not get it to run this patch anymore, even after a clean restart of the synth. I’m guessing 3 sequencers, 3 VCOs, a filter and some delays are all you can do… for now at least. There isn’t any preferences menu you can use to tweak any settings, nor a debug mode that would allow you to understand what happens when things go bad.

Verdict

I did had some issues with this program: the compile instructions are insufficient to make the source code portable, the Audio Module appears to be a CPU-hog, and there are some unsolved stability issues when the patch becomes complex. I’d also like to see some updates on some modules (specially some form of controlling the gate time on the sequencers). But I’m thrilled at this software. Yes, there are some issues, but if their business model is to start selling (licensing) proprietary modules, these issues have to be well addressed, and the comercial side of this project my prompt the development of a well maintained open source software… at least it is my hope.

2 thoughts on “VCV Rack Virtual Modular Synth for Linux

Leave a Reply

Your email address will not be published. Required fields are marked *