Updating Computer Hardware Performance

Unfortunately, this is not how it works. There is only one audio buffer, so true parallel computing is not possible.

You will certainly see an increase in performance after a tuning of the processor. But don’t expect lightspeed.

Not GlitchFree, Cantabile online guide.

So then let me propose a second option; assuming the current processor handles the load, I would have 2 options:

  1. increase buffer size to 256 or
  2. get a faster audio interface. As mentioned, I have a MOTU 828x which is USB2 based. It has a Thunderbolt port, but support told me that in the end the processing runs at USB2 speed (so why have the TB port?). Anyway, in theory are there interfaces out there <$1000 that would perform better?

Not really.

Latency is made up of two parts.
The one due to the OS drivers and the interface type. I’s usually the least relevant, speaking of a few ms.

The other part is related to the ASIO audio buffer. This is the part that matters most, up to tens of ms on a slow PC.

So, try setting the buffer to 256, don’t rush to replace your sound card with a very expensive one.

Hope this help.

I will experiment in that direction. Thanks @cpaolo

Steve,

Here is my experience (not with latest Intel processor).

I replaced my old i7-4810MQ with an i7-10700H (not a K-series as it’s a laptop processor).
Not much difference, as you can see in our dedicated PC configurations comparison table (see the thread linked below).

Please note that a minimum level of tuning is mandatory. At the very least:

  • Set processor and all the cores to max performances.
  • Disable core-parking “feature”. There are utilities to do this easily.
  • The other GlitchFree hints.

USB 2 “speed”, i.e. bandwidth is not a bottleneck in your setup - unless you are sending an insane amount of stereo channels to your audio interface. USB 2 has a bandwidth of 480 Mbps, while a stereo signal at 48 kHz requires just 2.3 Mbps (ignore all the protocol overhead etc.). So if you send one or two stereo pairs to your interface, your USB 2 connection is mostly bored…

The more expensive interfaces typically have other differentiating features: better AD/DA converters, lower noise, integrated DSP capabilities etc, but communication speed is not the issue.

One thing that can contribute to better performance of an audio interface is the quality of the driver (the piece of software on your PC that handles the task of moving audio data to the interface) in combination with the specific hardware - there are some vendors that have a reputation of very efficient drivers, e.g. RME. That’s where investing in a “better” interface may pay off in lower latencies.

But the key of real-time audio processing is still the “computing and throughput capability” of your PC, i.e. its ability to make a lot of calculations and have data flowing through storage → memory → CPU → memory → output as quickly as possible.

The key challenge in real-time audio is managing the flow of data to your interface. The smaller the “chunks” of data are (buffer size), the more hectic the process of filling that buffer and handing it over to the audio interface becomes, and it puts more strain on the throughput of your system (not only CPU, but also the communication between the processes in your system - some processes need to wait for the output of others, which causes a delay). So this process of moving data to your interface becomes a bottleneck. Increasing the buffer size lets your system concentrate more on actually calculating the data (running plugins) and moving the data between plugins vs. just shoveling it out to the interface. The price you pay is more latency.

Essentially, no single solution will bring you a quantum leap in performance - a well-balanced, modern system with good drivers, using some of the typical real-time-audio tweaks can perform really well.

See the update that @cpaolo posted recently: Feedback computer config - #77 by cpaolo . My little “Live Cube” (ASRock Deskmini, first in the list) using a middle-of-the-road Core i5 processor with 6 cores compares pretty favorably - and it’s not a “high-performance monster” with 10 or more cores.

Cheers,

Torsten

2 Likes

Thank you all for you input. Last night I did some experimenting with adding more plugs and then checking the profiler to see who the big CPU hogs were. Surprise IK B3X 18%, next Roland XV-5080 13%. Everything else, including 4 instances of Diva, 1 Hive, 2 Omnisphere, 2 Keyscape, Fabfilter, Blackhole and others were 3% or below. This was with no notes being played; timeload varied between about 30-35%. Sample rate 48K, buffer 128. ( could drop sampling to 44K)
Tried different combinations of plugs playing a random amount of notes. Timeload varied from about 60-80%; it took about 5-6 plugs to start getting dropouts. CPU never got higher than about 20%. That’s good enough for me.

The thing that I was missing was the meaning of timeload. I knew it was not a measure of CPU directly, but was nevertheless not seeing it as separate from CPU. Somebody either said or I read that it is a percentage of the available audio cycle. When I realized that it all started to click. If needed I can bump the buffer to 192 or 256 and still not be too affected by latency.

Thanks @Torsten for explaining how the audio interface bandwidth is affected. Since I have both the computer and audio interface in one rack, if I do replace the AI at some point, I would like it to be a rack mounted version. i will have to look at RME; that seems to be a favorite here.

Thanks to all who contributed to my increased understanding of the process.

I have a hard time imagining what kind of plugin combo you would run in a live situation that would require 8+ cores and 64GB of RAM. I guess if you pay no attention at all to shared racks and you have a really long set list with lots of layers per song part, but in that case load times would be extreme no matter your CPU/RAM. I have 32GB but that’s really mostly for the dual channel performance as I had a single 16GB chip before - I did notice a difference there.

@sanderxpander I thought so, too, but I am seeing a huge difference in headroom since I moved to a 4-core i5 w/32GB for guitar and bass parts, and a 6-core i5 w/32GB for my synths. Granted, I’m playing as a one-man-band, so there are a lot of tracks running at once. But I used to be running at 90-95% in many songs, even after thinning parts and trading off to simpler VSTs on complex parts. It also allowed me to easily use two Focusrite audio interfaces via ASIO, without having to play tricks, so I have 10 hardware audio outs – that might actually be the bigger gain.

What I can’t speak to is the use of modern performance vs. economy cores. Each one of my cores has its own FPU, and none of them can run multi-threading. I don’t know if 12 mixed-bag cores in a 12th/13th gen Intel trumps 10 ‘real’ cores in my setup. I do know that running as much of the VST and media file load from a RAMdisk improves the overall loading of new parts!

Regards,
-BW

A six core i5 with 32GB for a synth setup is something different than a 16 core i7 with 64GB which the OP was originally proposing and I was commenting on.

I think you probably have more RAM than you need but it doesn’t hurt. Like you said, modern SSD disk streaming makes a big difference.

Understood. But to be clear: I have two i5 micro PCs running Cantabile simultaneously in my setup, and each one has 32GB of DRAM; it’s not a case of a ‘studio system’ and a ‘live system.’ I use shared racks just about everywhere, but the one PC still has to load 29 of them, and the other 35. So, my system isn’t all that different from the proposal – albeit from different CPU generations (my 4-core is a G7, and the 6-core is a G8).

And although I haven’t timed the difference recently, I compared loading the VSTs and .wav files I use into SSD memory vs. RAMdrive memory on power-up before I added the second PC. The startup load time for 68 VSTs from a WD Blue 570 NVMe SSD (G3) was about 90-100 sec.; the load time for the same VSTs from RAMdrive was about 50-55 sec. – a significant difference, and probably more than I could expect by moving to a G11 or G12 CPU. Loading sample-based VSTs is one of the biggest areas of gain. So, while SSD memory (especially NVMe) is a big improvement, running programs from RAM is so much faster.

I used to design laptop PCs for a couple of top tier manufacturers, and we did an experiment with running the entire OS + apps + data from RAM at one of them. It was completely impractical in 1998, but the results were stunning! That Pentium processor with 1GB (??) of dynamic RAM – far beyond practical at the time – would probably keep up with many G5-G7 laptops for tasks like word processing and browsing.

Regards,
-BW

That’s interesting about the RAM disk. It seems a rather niche use case though. Doesn’t it require constant power for it to work?

I understand your point and I don’t think we really disagree too much. It’s nice to have a somewhat up to date system and t9 overspec a little bit. But if you check your RAM usage, without RAM disk, let me know how much your entire setup uses. I’d be pretty surprised if you came close to 16GB. I added 16GB to my 7th gen 4 core i7 last year and noticed a difference, although considering my RAM usage, I think it was more the dual channel effect as I had a single chip before.

But, a 4 core gen 7 i5, even with 32GB RAM, is different from a 13th gen 8(+) core i7 with 64GB.

To be honest, I don’t really think you need to run two systems unless you’re playing keys and guitar/bass at the same time, which seems unlikely. From a performance angle at least, I can absolutely see where it makes sense from an organizational viewpoint.

Torsten and others advice is spot on.If you do decide to look for a rack mounted interface, FWIW I’ve been gigging with a PreSonus Quantum 2626 for a couple years now, it’s rack mounted and TB3, 8 in/8 out And I think it goes for about $600 now. It’s been quite solid, and I did get a significant latency improvement, IIRC I’m running at 64 and about 5ms latency, And that’s on heavy songs with about five backing tracks and some heavy plugins… It’s a good driver and they update it regularly. I believe they also have a USB version now. But as others said, you don’t need to break the bank for live work… For several years before that I used a cheap Scarlett 2i4 and a Vaio i7 laptop/ 8GB RAM from 2009… until the 14+ ms latency started to drive me crazy😁. The Quantum is paired with a i7-9700K Rack mounted PC, 32GB Ram, 2 SSD. It barely breaks a sweat… A 60 song setlist with very heavy songs and backing tracks runs solid every time for the past 2+ years, I don’t remember the time load or CPU, maybe 15%, but I think my largest spike on CPU is around 45% only during startup. I don’t even bother to look anymore. Best of luck!
Tom

But that’s the point. I am playing guitar and keys at the same time – or at least, me and Cakewalk are. If I’m soloing on guitar, there are probably 1-2 synths being played on MIDI, plus maybe a rhythm guitar part. Similar situation if I’m on piano, organ, or synth. My motif is to sound like a full band, and that requires at least 4 instruments running at any time.

And I have run the numbers, and loading VSTs and their associated sample sets from a RAM drive always runs faster than from SSD in my system. And yes, it prevents the system from going into standby, but I prevent most of my setup from heavy power management, to prevent glitches on stage.

Regards,
-BW

I meant with the RAM disk, don’t you have to always have power on? Meaning, you can’t reboot or shut down? How do you manage that between gigs? I have no experience with it, only a vague idea of how it works. I figured it’s part of your RAM presenting as a hdd (which explains the extra RAM), but since RAM is volatile memory… It doesn’t keep, right? You have to reload everything to RAM at reboot, negating the load speed advantage?

Also, out of interest, in the case of a setup like this, I’ve always worked with Ableton and (mostly) audio loops. Is there a specific advantage doing it this way? Because it seems a lot more work, much more complex and it would indeed require a (lot) stronger performance from your system.

I have everything that goes on the RAM drive in a folder on each PC called “RAM Drive Copy,” and a script in AutoHotkey that loads that folder and subfolder structure onto the RAM drive at startup. I have directed Cantabile to only look for VSTs in R:\VST2 and R:\VST3. (R: is the RAM drive.) Technically, most of these files are duplicates of folders elsewhere on the SSD, but it’s nice to have them in one place and structured in a known set of directories; it makes copying them to RAM easier. It’s also possible to have the RAM drive preload an image at each startup, but since the VSTs and support files change from time to time, it’s more straightforward to do it the way I chose, rather then periodically refreshing the folder image. Reloading the RAM drive takes about 3-4 sec. per GB of used files, so maybe 20 sec. or so at the startup. The script reloads the RAM drive, then starts Cantabile. At a typical gig, that 20 sec. is essentially ‘free time’ while I’m connecting cables, putting speakers on tripods, etc.

Where this whole mess saves me time is with the MusicLab RealGuitar VSTs. I’ve tried using the ‘compact’ preset method in Cantabile to access them, but the VSTs don’t transfer several important parameters that way. So, I’m forced to do a full preset load each time, and that includes a couple of GB of sound samples. It takes 15-30 sec. to load that from SSD; it takes 3-5 sec. to do the same from a RAM drive.

Regards,
-BW

Alternative approach: have multiple linked racks, each with an instance of RealGuitar loaded with a separate preset. Then, just use the specific rack for your song. With a pre-loaded setlist, Cantabile will load the multiple instances at startup and keep them in RAM; switching between songs is near-instant (typically less than 2 secs). If you need multiple guitar sounds in a song, simply load multiple racks into the song and simply switch routing. Pretty much instant switching.

This is the way I work with most of my Kontakt instruments (the few I still use…) and all other sample-intensive instruments - have a separate instrument rack for each “sound” and pre-load them into RAM. Do all the tweaking outside the actual samples - use effects, EQ etc as separate plugins to avoid re-loading the Kontakt setup.

Works like a charm for me - haven’t had the need for a RAM disk yet…

Cheers,

Torsten

Honestly, not really a challenge for a Cantabile setup. I have a couple of songs where I alternate betwen guitar and keys, so everything is loaded at the same time. Typically around 20-30 plugins involved (including effects, EQ) - piano, hammond, string layer, maybe a synth sound layered as well, plus TH-U for my guitar amp simulation. Maybe 30% time load on my little live cube while playing full-handed keyboard chords.

It’s really about choosing the right instruments and plugins that work nicely in a live setup, and about tuning your PC for performance. And maybe not running a DAW in parallel to Cantabile (“me and Cakewalk”??) - easier to render the backing track to MP3 and simply include a media player in your Cantabile song…

Cheers,

Torsten

@Torsten: Thank you for your suggestions. Interesting ideas for the future, for sure. I know that Cantabile can do more than I currently ask of it, and maybe that will change over time. The situation I’m in is that I probably have 400+ songs created in Cakewalk – I’ve been using it since the DOS days – and I really don’t want to go through the effort of porting all of that to another DAW right now. Is Cakewalk the best DAW out there? Probably not, but it’s the one I know well. I can pull up a song I haven’t played in years, and it will still run, or I can get it working with a couple of changes I remember like my own name. I know that running Cakewalk on a laptop and Cantabile on another PC is duplication, but I use the laptop for visual cues, too. And it provides the monitor and keyboard for the two Cantabile PCs, which are both headless; I treat them as “Muse Receptors with a nicer UI.” :wink:

Preloading all of the guitar parts as shared racks is a neat idea. I’ll have to work out the particular details to see if that will save me time. I have so many different guitar sounds set up that I will likely end up with 60-70 racks, trading off time to change songs vs. time to load Cantabile itself. A lot of my sounds are duplicates (or nearly so): once keyboards started having more than 128 program slots, I stopped creating unique sounds and began giving every song in my DAW its own copy of every sound I need in the hardware – which spills over into the software, too. Time to play Peter Gabriel’s Sledgehammer? I don’t have to remember which guitar, synth, etc. I use; I just load “Sledgehammer Organ,” “Sledgehammer Guitar,” etc. Many of the sounds are duplicates of another song’s part, but I don’t have to remember what goes with what.

RAM drive use may not be for everyone. I look at it this way: I have 32GB of RAM on each Cantabile PC. Unless I create a setup that requires 5+ min. to load at each gig – and maybe mid-gig, if power glitches? – I’m hard pressed to get Cantabile to use 16GB of that RAM. So what else am I going to do with the leftover RAM? I might as well accelerate everything I can. YMMV.

Regards,
-BW

Just curiuos, but what do you use the DAW for in a live setup? If it is only for playback, then - as Torsten suggests - you ought to be able to export the backing track as an MP3 and play that in the media player in Cantabile. If so, you don’t need to work with another DAW or change anything in the way you use Cakewalk, except exporting the song as MP3 and play the MP3 instead of having Cakewalk loaded when you play live. Unless, of course, you are making changes to the backing traack as well while playing?!?

@TorstenH - I use my DAW because I don’t like any of the real-time options. Cakewalk has a ‘set player’ applet and I’m comfortable with it. Cakewalk also has a window to display the measure/beat and the ability to display lyrics. So, the DAW is for playback, but:

  • I make changes to the backing tracks frequently. I also change the key of songs a lot.

  • I have a bunch of bindings that allow me to jump around in Cakewalk and solo, mute, etc. tracks. (A few of them also perform double duty in Cantabile.)

  • Currently, I do not pass timing data between my three PCs. This was absolutely necessary when I was using DIN-MIDI; I’m not sure if it is so now that everything in my system uses USB-MIDI.

  • Cakewalk makes it very easy to stop a song, make a couple of track changes, and start the song again with complete synchronization of the backing tracks. I’m sure that there is a way to do this in Cantabile, too, but this brings me to my third, and most important reason:

  • I don’t want to learn another DAW right now. I have a lot of other things going on in my life right now, and while I’m sure Cantabile has great DAW features, I don’t know them all that well right now. I know Cakewalk very well, and I prefer it to Cubase, Logic, Garage Band, etc. You may feel otherwise, but that is my opinion. If I were to switch to Cakewalk as my DAW, then I would need to convert the tracks and backup vocals for several hundred songs to the new format. (Even if I restrict to the songs I play in my current act, that is well over 100 of them.)

At this point, I am treating Cantabile as ‘the best VST player ever built,’ not as my DAW. That may change sometime, and I’m keeping track of all the suggestions offered here, but it’s not an option I wish to consider in August 2023.

Regards,
-BW