VCV Rack on Linux, Detailed Guide FAQ

Guide and solution of common problems in Linux.

Warning:

this guide is a work in progress and could be change over time, it is made with the intention of helping, without taking responsibility for damages and losses that occurred during the execution of any of these processes, it is advisable to consult a qualified technician and make external backups of all the information contained in your computer

Note that VCV Rack has been released recently, and it is impossible for developers to test it in all possible environments and situations, therefore it is natural for bugs and all kinds of problems to appear at this stage.

This is a guide that works for most Debian-based Linux distributions (like Ubuntu ), assuming a standard configuration, depending on your distribution some parts of the process may change.

Some operating systems (Ubuntu studio among others) are preconfigured in the way in this guide and can then jump directly to Jack configuration

for an official reference visit the VCV Rack manual

VCV RACK

The VCV Rack is a open-source Eurorack modular synthesizer simulator, it requires a lot of processing, pushing the processor to limits similar to a modern AAA video game.

This is why sometimes you can experience sound interruptions, high processor temperatures, high power consumption, etc.

System requirements

Modern Linux distribution (like Ubuntu 16.04+)

CPU: Intel / AMD 64-bit processor with SSE4.2 support (2011 or higher)

Graphics: dedicated Nvidia / AMD graphics card from year 2013 or higher with recent drivers

Integrated graphics like Intel HD are not recommended and can cause a significant increase in CPU usage.

Memora Ram: 1GB

Hard Drive: 1 GB of space

Requirements for DAW (Rack 2 Pro only)

additional to the previous requirements

VST 2.x 64-bit support

Supported DAWs: Bitwig 4, Reaper 6, Mixbus 6

Rack 2 plugin versions require a DAW with VST support

Setting up the operating system

Depending on the capacity of your computer, it can support jobs that require a lot of processing, but with the exception of some distributions (such as Ubuntu studio for example) the kernel is not capable of performing tasks in real time.

Installing a low latency kernel

Open a terminal and type

sudo apt install linux-lowlatency

Install Jack

Although ALSA may work fine, Jack is recommended

Jack is a sound server or daemon that provides low latency connection between jackified applications, for audio and MIDI data.

sudo apt install jackd2 qjackctl

Configuring access to real time

For the latest version of VCV Rack it is not necessary to enable ā€œreal timeā€ access from the program, however it is necessary for the user to have access to real time so that VCV Rack can run correctly.

Replace ā€œusernameā€ in the code below with the username on your computer (see troubleshooting in the next section of the document )

sudo adduser username audio

Give the audio group access to real time by editing the file

/etc/security/limits.d/audio.conf

sudo gedit /etc/security/limits.d/audio.conf

Change the content of the file to these values:

@audio - rtprio 99

@audio - memlock unlimited

@audio - nice -19

Jack standard configuration

Open qjackctl by typing

qjackctl

(you can open it using Linux menu shortcut)

image

Press the setup button on the qjackctl interface, then display the ā€œDriversā€ menu and select ALSA

Open the ā€œInterfaceā€ menu select your audio device

Now we will select the ideal values ā€‹ā€‹for the ā€œSample Rateā€, ā€œFrames / Periodā€ and ā€œPeriod / Bufferā€ finding the correct ratio will affect the performance, response and audio quality of your system.

ā€¦

This relationship is given by the following formula:

Here you can find a guide with the ideal relationship for audio interfaces

https://wiki.linuxaudio.org/wiki/list_of_jack_frame_period_settings_ideal_for_usb_interface

Finally check the Real time box, press OK and reboot the system.

CPU frequency scaling

Allows the operating system to raise or lower the CPU frequency to save power. CPU frequencies can be adjusted automatically depending on system load, in response to ACPI events, or manually by user space programs.

To order the processor to run at high performance, open a terminal and type:

echo performance | sudo tee / sys / devices / system / cpu / cpu * / cpufreq / scaling_governor

Operating system graphics

Some high-capacity computers do well to load the animations and effects from the desktop to 100%, in others it is necessary to take these characteristics to a minimum, to prevent the use of resources unnecessarily

Similarly, the use of lightweight desktop environments will help improve performance, like Xubuntu (XFCE) and Lubuntu ( LXDE)

Installing VCV Rack on Linux

Download the latest version of the software for Linux on the web, unzip the zip file in any location on your computer.

For the purposes of this guide we assume that you have downloaded the ā€œRack 2 Freeā€ version and unzipped it in ā€œ/ homeā€

Download VCV Rack

Running the VCV Rack with Jack

Close all unnecessary applications and run Qjackctl

Qjackctl

run VCV rack

cd Rack2Free /

./Rack

You can also run the VCV Rack by accessing the folder and double clicking on the Rack file.

Connecting the Rack

go to the audio module (if there is none, one is right clicking on an empty space in the Rack) and click on the ā€œNo Deviceā€ box and select Jack as Audio Driver

click again and select the Audio device

If all goes well, you should hear a clean, clear sound when you press the keys on your QWERTY keyboard.

Problem solving

1. I donā€™t hear any sound at all coming from the rack

Causes: This could be due to interruptions in the flow of the audio between the Rack and the output of the audio hardware.

Solutions:

  • Make sure the speakers are turned on and connected
  • Check that the volume levels are at an audible value in the ALSA mixer, open a terminal and type
  alsamixer
  • Disables the ā€œAuto muteā€ function from the alsa mixer (this option cuts the sound of the audio output when headphones are connected)
  • Press the ā€œconnectionsā€ button on the Qjackctl interface and make sure that there is a connection between the outputs of the VCV Rack and the physical output of the audio

In case of no connection you can create it by clicking and dragging the outputs of the Rack to the outputs of the audio hardware, for this procedure you can use external LADISH that facilitate the administration of the connections Claudia has additional features, such as the ability to save and load ā€œstudiesā€ as well as the option to render in real time and freewheel)

2 VCV rack freezes when saving or loading files

Causes:

Rack 2.0.4 switched its OS dialogs subsystem from using GTK3 to zenity

Solution

Make sure zenity is installed

sudo apt install zenity

2. I hear interruptions, noises, and artifacts in the audio

Causes:

this is due to incomplete processing, known as Xruns, there are several things that can be done to fix it

Solutions:

  • Perform the procedures cited in this guide, low latency kernel installation, Jack installation and configuration and CPU frequency scaling in performance

  • increases the size of the buffer, larger buffers give the processor more time to perform the calculations for sound synthesis, but they are detrimental to the response in real time, that is, they increase latency

  • Reduce the Sample rate, the sample is the number of samples to convert from analog to digital audio and vice versa, this is equivalent to the number of pixels in an image, larger samples offer higher sound quality, but increase the number of computations for such a conversion, 48khz is usually the setting that works best in most cases

  • Make sure that there is no Sample rate conversion between your audio device and the VCV rack, currently there is an ā€œautoā€ option that matches the Rack sample rate with that of your audio device.

  • Increase the number of threads used for patch processing by one at a time until the artifacts disappear.

  • Press F3 (CPU meter) and find the modules that have the highest processing load

  • Some modules have options for high and low fidelity

  • Polyphony increases processing in direct relation to the number of voices.

  • Turn off CPU meter (F3) this feature has impact on processor usage

  • reduce video refresh rate

  • run the VCV Rack in full screen mode

  • Turn off non-vital features and functions of your computer, eg Bluetooth, WiFi.

  • Use a dedicated audio card instead of the integrated one

  • You may have reached the processing limit of your computer, in this case the only possible solution is to remove modules from your patch

3. How do I connect my QWERTY keyboard, MIDI keyboard, MIDI devices and video game controllers to the rack?

Consider that all devices send voltages that obey particular controlling standards. While the VCV Rack works using the Eurorack standard, so the main objective should be to convert these voltages to the Eurorack standard to be able to use it within the software.

The MIDI CV module

image

MIDI-CV module allows converting MIDI signals from different sources to Voltages with Eurorack specifications

Connect the QWERTY keyboard as piano

Add a MIDI-CV module to your Rack, in the MIDI Driver box select Computer Keyboard / mouse

in the MIDI Device box select QWERTY Keyboard

Finally select All Channels

Connecting a USB-MIDI keyboard

Add a MIDI-CV module, in the ā€œMIDI Driverā€ box select ALSA in the MIDI Device box select your device

Connecting an external program via MIDI

Other DAWs and apps can also be connected to the Rack via MIDI

Add a MIDI-CV module, in the Driver box select ALSA, in the Device box select MIDI Through Port-0 and select the channel through which you want to receive the information

Go to the DAW or App you want to connect and select and match the settings above but this time on the MIDI Out

09

Make sure have match between the MIDI Out and IN channels

4. I donā€™t know what my ā€œusernameā€ is to configure the real time access

effective username is the username under which the Bash process corresponding to the current session runs

type in a terminal

whoami

5 using Jack I canā€™t hear my other audio apps

Causes:

  • applications are not configured to use Jack
  • applications do not support Jack

Solutions:

  • make sure the application supports Jack and is configured to use it

  • In case the application does not support jack (e.g: Firefox), you may use the pulse audio module to connect the software with Jack. to install it open a terminal and type:

sudo apt install pulseaudio-module-jack

be sure to configure the application to use that module

6 System dialog opens behind the Rack windows (Open, Save)

Causes: the behavior of the system windows is configured to focus under the mouse

Solutions:

Disable the ā€œfocus is under the mouseā€ behavior in the windows setings

.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-

WIP, more Troubleshooting coming

links

https://linuxmusicians.com/viewtopic.php?t=19947

https://wiki.linuxaudio.org/wiki/list_of_jack_frame_period_settings_ideal_for_usb_interface

15 Likes

Awesome work!

1 Like

I donā€™t use Linux but kudos to you for taking the time to make this guide David.

1 Like

There is no reason to need to install a lowlatency-kernel. Just make sure that your user is in the audio group and that it has realtime scheduling priority.

Good guide. Qjackctl has the Patchbay where you can setup persistent connections. It also has Sessions which can manage programs and connections like Claudia although itā€™s not as intuitive. Thereā€™s not much information around about Sessions but I did find this:

Muse and guitarix has direct support for jack-session. Ardour has it once (ardour3, if I remember right) but seems to drop it in the mean time. However, you could include ardour as ā€œInfra-clientā€. To do so, load your session, start ardour and make your connections. Then save your session (select overwrite) and refresh the view. Ardour pops up now under the ā€œInfra-clientā€ row. Now you need to edit the ā€œInfra-commandā€, select ā€œeditā€ and write in ā€œardour5 /path/to/your/ardour_projectā€ (or what ever command line you need to start ardour). Save again. Thatā€™s it. You could reload your session now by select it from the ā€œLoadā€ list.

If it is just remembered general connections, such as Rack going to your soundcard or into Reaper if it is open, then Patchbay is excellent.

1 Like

thanks for this informative guide. iā€™m on ubuntustudio and vcv (versions 1 and 2) works great (alsa or pulseaudio). never really tried jack before. definitely going to try

1 Like

It can certainly open up some doors but donā€™t worry about if youā€™re happy with the way it is.

2 Likes

Awesome job!! This is great!

I would add in the requirement that an external audio interface could be needed. For me, on Linux, it was the only thing that fixed the crackle of the sound so I think it would be good to have it somewhere higher up in there - although I see it in the troubleshooting later down, it could save a lot of time for new users.

I would also mention trying Alsa first and if they have a problem they can try with Jack, or something in the lines of :

1- Try with your system as is

2- Try with an external audio interface

and If all else fail

3 - Try to install jack audio

4 - Get the real-time kernel.

Just to keep it as simple as possible, ie. changing kernel might be non-trivial for other OS and can break things up with upgrade/updates, so I wouldnā€™t put that on top.

Also, I had personally a lot of trouble with Claudia, but Iā€™ve been running patchage quite easily which is an awesome way to connect VCV Rack to Reaper for instanceā€¦

1 Like

if you are not interested in a hi quality producer experience (e.g use your computer for coding and have some nice audio programs , but you actually not use them) it could be ok .if you are interested in a professional producer environment you should install the low latency kernel and give access to the audio applications to real time .it is not an optional setup, as you can see is include in Ubuntu studio and other audio producer distributions.

if you use your computer for something more, as soon you open an audio application, it will give all priority to them , this may be unwanted in some circumstances if you are not in the audio producer thing

Unless you are running some embedded application you have absolutely no need for a real-time kernel. Realtime priority is more than enough for any desktop audio applications.

1 Like

who said Real time Kernel?

^ here

1 Like

the real time kernel is mostly used now for hardware, I have read that it has security risks and is not used anymoreā€¦

Mainline has nearly all relevant RT-patches already. RT-priority scheduling is the most important part for low-latency JACK configurations anyway (has little to do with RT-kernel).

Unless you are NASA building a Robot to run around on Mars you do not need an RT-kernel.

Yep I hear you, but my comment was aimed toward people trying Rack on Linux for the first time. I feel that changing kernel as a first step might be steep, just as a learning curve. The list I have there is simply to keep it simple for new comer and then when it all works and their sound is not what they want they can continue with more in-depth setup.

Setting up Jack on some linux install is not for the faint of heart, when people have alsa and pulse installed and now their browser doesnā€™t play music anymore and they have no idea what they did.

So anyway, the list here is for first timer, get to run Rack ASAP, once you have that going get to system up to speed. That would be the way I would go, but you created that document so you put it the way you think it makes more sense.

1 Like

I understand, but this is not a guide to encourage people to use linux, nor is it a migration guide (in fact, for anyone reading this, I recommend continuing with your current operating system if everything works fine, there is no reason to migrate to linux).

I am writing this for people who have linux, have the rack and want to have a professional experience with both.

I will include later , in the troubleshooting , how to install pulseaudio jack, is easy as type


sudo apt install pulseaudio-module-jack

just I donā€™t want to make complicate the core procedure

1 Like

instead of install the pulse audio module, l turning off the pulse audio layer , you could get an extra of free processor (in my case around 2% )

systemctl --user stop pulseaudio.socket
systemctl --user stop pulseaudio.service
systemctl --user disable pulseaudio.socket
systemctl --user disable pulseaudio.service