The big Rack performance topic

This topic is dedicated to Rack performance - The factors at play, how to get the best performance, and tips and tricks for various situations. Also a guide for bying computers for running Rack well.

It seems silly to have this buried in various posts on other topics, and since the topic of performance, or lack thereof, still comes up very regularly, it deserves it’s own place. Since I’m an old hand in here, I’ll begin with my own accumulated knowledge, from everything that’s been written and said over the years, and then it’s up to you all to supplement with your own posts underneath here. Your own additional observations, tips and tricks, whether they are generally applicable or for specific hardware, software, OS’s etc.

So here we go… Rack performance, and how to make the most of it, and please do also read what the official manual says about it:

  • Only run as many threads as you absolutely need. So in the Engine->Threads menu you start with 1 thread. Only when your audio starts crackling you add 1 more thread, etc. and only after also applying the below performance tips. The reason is that adding more threads is NOT free!. Each additional thread added consumes some CPU because of thread scheduling overhead, sometimes a lot more, so always start with 1. Most people don’t need to go above 1 thread and by the time they do, the computer might already be unpleasant to use.

  • Have a decent graphics (GPU) card. Doesn’t have to be fancy and very expensive just “discrete”, meaning not the inbuilt Intel graphics (or AMD) in your CPU. The exception to this is the builtin graphics on the Apple Silicon Macs. The reason is, that if the GPU cannot cope with the load of rendering the graphics, the CPU takes over some of that duty, and so you end up burning CPU power for just rendering graphics. The card has to be external to your CPU, so like the system requirements say:

Graphics: Dedicated Nvidia/AMD graphics card from 2013 or later with recent driver update. Integrated (non-dedicated) graphics such as Intel HD are not recommended and may cause significantly increased CPU usage.

  • And if you don’t have a decent graphics card, use modules with less “bling”, i.e. moving graphics, as these will tax your GPU more, and thus possible tax your CPU as well, as explained above.

  • Some times, especially on Windows, you might automatically have the CPU builtin graphics as well as a discrete graphics card, but the OS wrongly assigns some or all of the GPU work to the builtin graphics, instead of the discrete (high performance) graphics card, which is what you want. It does this for power efficiency reasons. Go into the Windows settings, and possibly the settings app that comes with your graphics drivers, and if you can, force graphics to exclusively be rendered by the discrete graphics card, for the Rack application.

  • Run with as high a block size as you can in the audio module. If you are using external MIDI sources, e.g. a MIDI keyboard, and you need snappy/responsive/low latency MIDI, then gradually lower the blocksize until the latency is acceptable, but no more. The reason is that the lower the blocksize the more CPU is used.

  • In the audio module, run with a sample rate of 44 or 48KHz. Only higher if you have a really good reason to. The reason is that the higher the sample rate the more CPU is used.

  • In the Engine->Sample rate menu, run with the same sample rate as the audio module, always, unless you have a really good reason not to. It is the “Auto” setting in that menu, where auto means “same as audio module”. The reason is that if you don’t run the Rack engine and the audio module at the same sample rate, you will burn more CPU re-sampling everything.

  • Use CPU efficient modules. There is a lot of variance between modules in CPU consumption, even if the modules otherwise look the same, with the same amount of functionality etc. It’s got everything to do with how well they are coded. There can be 10 x or more variance in CPU consumption between otherwise identical modules. So put it to the test. When you’re deciding “which VCO should I use?”, put the 3-4 candidates next to each other, patch them up so they’re doing the same work, also very much with respect to whether you’ll be using them mono or polyphonically, hit F3 so you can see the CPU usage of each one and then decide. Using efficient or inefficient modules in your patch, especially big patches, has an awfully big consequence on the CPU usage of that patch. Some times for e.g. VCO’s, filters or effects, this comes down to the classic “quality versus efficiency” tradeoff, but also some times high audio quality modules can be very efficient. There’s no substitute for listening and measuring.

  • In the View->Frame rate menu, lower the graphics framerate if the machine is struggling. That can save quite a bit of CPU as well.

  • Minimize the Rack window when you can. If you’re in a place in your workflow, where you’ve hooked up a recorder, and the patch is playing by itself, or you’re jamming on your MIDI keyboard, minimize the window. That will moderately, or sometimes dramatically lower the CPU usage. The reason is (I think) that, depending on graphics drivers, OS, etc. the GPU and CPU doesn’t have to do any drawing of graphics when the window is invisible, and drawing Rack and all the modules and graphics does take a toll on both GPU and CPU.

  • Have the Engine->Performance meters (F3) off when you’re not actively using it, because that uses some CPU as well.

  • If your machine starts struggling close other open programs so only Rack is running. Various open/running programs can use more resources than you might think, both memory, CPU, GPU, disk etc. and will take those resources away from your Rack patch when you most need it.

  • Check your operating system’s power and performance settings. This is especially relevant for laptops. The OS will often choose a performance/power setting for you, depending on whether wall-power is plugged in etc, to e.g. reduce fan noise, conserve battery, etc. When using Rack you most likely want your computer to run at the highest performance setting, especially if it starts struggling with a big patch. Marc Boulé wrote a post about that here, with a focus on Windows settings.

Since it’s an eternal subject on the forum, understandably so, here’s a section on bying computers for running Rack. Now, this has a tendency to turn into religious wars so please don’t fill up the comments about how I’m wrong, but instead add your own perspective. Also, although I have 40+ years of experience with hardware and software, this will necessarily be my own biased views, just like everyone elses. I will make a few general notes about computers and operating systems, but mostly it will be focused on a good computer for Rack specifically. You will have to add to it your own requirements about all the other software you want to run on your machine.

So, right off the bat, what does an ideal Rack computer look like?

  • It has infinite single-core CPU performance.
  • It has an infinitely cool and power efficient CPU.
  • It has infinitely powerful cooling.
  • It has a decent graphics card (covered above).
  • It has enough free RAM, doesn’t need that much.
  • It has a fast, modern SSD for storage, doesn’t need much storage.

In general, prefer a desktop computer over a laptop, because of cooling, performance and potential upgradeability. So the initial summary is, and here you can generally substitute “Windows” for “Windows/Linux”:

Do get:

  • A modern (since 2020) Apple Silicon Mac Mini or Mac Studio. Or
  • A big, honking Windows desktop/tower beast. Or
  • A modern (since 2020) Apple Silicon laptop. Or
  • A Windows gaming laptop.

Don’t get:

  • A cheap Windows laptop.
  • An older/second hand Intel CPU Mac laptop.
  • An older/second hand Intel CPU Mac desktop.
  • A Windows “mini PC”.

Your top-level decision tree (IMHO) will roughly be:

  • If you must have Windows (or Linux), choose a bulky desktop, or secondarily a bulky gaming laptop.
  • If you must have macOS, choose an Apple Silicon desktop, or secondarily an Apple Silicon laptop.
  • If you’re open to change, choose an Apple Silicon desktop, or secondarily an Apple Silicon laptop.

My general purchasing strategy for bying computers is roughly this:

  • If price is a factor, and it mostly is, choose a computer that came out 1-2 years ago. You’ll pay a premium for the one that came out yesterday.
  • When you spec/configure your computer, make it overpowered for today, perfectly powered for 3-4 years from now, and underpowered 8-10 years from now, if it makes it that far.
  • Apple/Mac computers are an investment, and more expensive. You invest in your happiness, GREAT hardware and productivity and it has great resell value and will last longer.
  • Windows computers are cheaper, but you’ll probably be more annoyed or disappointed, and they have poor resell value and will mostly last shorter.

A special note on hardware upgradeability along the way:

  • People might think they would like to upgrade their computer in it’s lifetime, but fewer actually do it or need it in the end.
  • If you’re quite certain that you need upgradeability, Windows computers are a better bet, and desktops are a much better bet than laptops.
  • The modern Apple Silicon computers are very little upgradeable or not at all. So you need to pay special attention here, to it’s specs when you buy it.

Now to some hardware specifics, with special emphasis on running Rack:

  • CPU: Firstly, the choice of CPU is intimately tied to the need for cooling. Second, Rack thrives big time on so called “single core performance”, and it’s the single biggest determinant of raw Rack performance. You can see a performance chart here. Generally the Apple Silicon CPU’s are still king of the hill where single core performance is concerned, and this, coupled with their high efficiency and cool running, is what makes them killer CPU’s. You will find many very happy Rack users in this forum, with their Apple Silicon computers. Intel and AMD have been playing a big catch-up game since 2020, and the new models have gotten more power efficient. There are also many Intel CPU’s with great single core performance, and also from AMD, although AMD seems more focused on having the multi core performance crown. The more your workload shifts towards many many tracks in a DAW, the more you should also look towards multi core performance, as a good DAW can really make use of that. So it also depends on how you use Rack. The older Intel/AMD CPU’s are not very power efficient, and so they run hot, hot, HOT, and are likely to give you a miserable experience.

  • Cooling: Highly power efficient CPU’s run cool, and low efficiency CPU’s run hot, for the same performance number. The need for cooling is directly coupled to the efficiency of the CPU. Why is cooling important? The constant fan noise will irritate you, especially in a laptop, but more importantly - when the CPU reaches a certain temperature it will start to throttle its performance down, to preserve its life. What this means is that you can’t actually use the full performance of the CPU anymore. Rack uses a sustained CPU load, all the time, so it will really hurt Rack performance when the CPU throttles down. On a laptop with, especially an older, Intel or AMD CPU, you can realistically only use a fraction of the performance of the CPU, because it just becomes too hot. Bottom line: You want a power efficient CPU, a big silent cooler/fan, lots of air in the computer case, so a big case, and therefor desktop is better than laptop, gaming laptop is better than ordinary laptop, and Apple is better than Intel.

  • Graphics card: Already mentioned above, just needs to be decent, but obviously you need to add to that your potential other needs for gaming, video editing, etc.

  • RAM: Rack doesn’t need a lot of memory generally, but obviously lots of in-memory sample players etc. will add to that. I wouldn’t generally buy a computer with less than 16GB of RAM today, but several people in here get by on only 8GB (Apple Silicon Macs) when running only Rack and some discipline, milage will vary.

  • Disk/storage: Don’t buy a computer today with “spinning rust” (old fashioned hard disk) as its main storage. Go for a, preferbly modern (M2), fast SSD. Rack doesn’t really use much disk space, and you’ll only really feel the disk speed, or lack of, at Rack startup time, or when using the module browser, or when loading a big patch, where it reads a LOT of files if you have many plugins installed. Remember to add the space requirements for all your other software. E.g. modern AAA games can have horrendous space requirements, but also stuff like full Xcode etc. It’s a perfectly good storage strategy, to have your main storage/disk for applications, and then secondary/external storage for your produced audio, video and other data files.

  • USB hardware: As far as possible, only buy USB audio interfaces, MIDI devices and other USB devices that are “class compliant”. This means they work without special drivers for particular operating systems for a long time, and you avoid vendor lock-in and so called “planned obsolescence”.

Operating systems - no flames please, this is just my personal, considered opinion and extensive experience:

  • Windows: Most people use it because of work, habit, because it came with the computer, or gaming. It is also still the most used for gaming, and it comes with drivers for all the worlds crazy hardware, sometimes only for Windows. Modern Windows is a hot mess and only getting worse. If you want to just use your computer and not worry about it, Windows is not a great choice. Definately prefer Windows Pro. edition over Home edition, as it has become truly obnoxious. Windows is not the best choice for audio or MIDI production.

  • macOS: There’s a reason that most professional audio/MIDI production people choose macOS for their work, it’s just better for it with a lot less pain. It’s also definately the best OS for “normal people”, as it is by far the least hassle to use, of the three candidates. It also makes better use of the computers resources. If you’re also a big AAA gamer though, it’s not a good choice. macOS is the “just works” OS, this is not a lie. Personally I mostly use macOS as a “Linux that just works”, basically using no Apple apps, and widespread usage of cross platform, open source software, like Rack, LibreOffice and much more, mostly through the great “brew” (Homebrew) package manager.

  • Linux: I’m an old Linux hand, and this is my perspective. If you have the talent, inclination, time and endurance, you can make Linux into the greatest OS of all, no question about it. But most people don’t and just want to get on with it. Realistically you need to be a technical person to get a great experience. When using Linux you have to pay a lot more attention to hardware support and driver availabilty, especially around the classic pain points of grahics cards and WIFI hardware. It’s also not a good choice for AAA gaming (yet/mostly). Setting up Jack and the audio stack well can be very fiddly, and in general you just have to be mindful that you’ll be going on a journey, and will have to roll your sleeves up. These days Linux is a lot easier to install and get going with, and a lot more plug and play, and there are dedicated audio/media distributions out there, and a few hardcore Linux users in this community also. Search for Linux guides in here and I wish you good luck! Let’s just say I’ve been there, done that, and after many years settled on macOS, as I felt my time was getting more precious.

Right, over to you …

21 Likes

Thank you very much, Lars, this is an excellent :clap: post!

1 Like

Thank you for making me realize how much a graphics card actually affects performance! My ROG Ally might have better graphics than my MacBook Pro so technically performance overall should be better, I will have to check if it’s technically integrated or if it’s a discrete graphics processor, I won’t have anything like nvidia cards till much later but at least the apple silicon will pull its weight.

Another tip, you can find which modules use more resources with the performance meters and if you don’t mind getting less use of those hungry modules, that can help… just yesterday I realized the path set module I was using apparently had like 14% cpu on its meter so I might have to go on a journey to find what modules in my favorites are secretly power hungry…

Seems like this is mostly applicable to Windows machines. Running single thread on M1 or beyond is fine. Honestly, I haven’t run into any bottlenecks on Macs since VCV 2.0 came out, including running multiple instances of VCV Rack Pro.

Unless you need a gaming machine or graphics card, running VCV on a Mac appears to work much better. Prior to making the switch, I always struggled with Windows machines getting VCV to run properly unless it was a desktop with a dedicated graphics card.

2 Likes