2.5.2 crackling on M1 MacBook Pro

Just a heads up.

Just updated from 2.5.1 to 2.5.2 on a MBP M1pro 16gb system.

Experiencing huge amounts of crackling with the update on my standard template sets that ran smooth prior.

No crashing so no bug reports just crazy crackling.

That’s worthy of a bug report to VCV support. Crashes are not the exclusive reason for a support request.

2 Likes

I’m also experiencing this. This is the first version I’ve used, so I thought VCV rack was not very capable of doing much.

I’m relieved that this seems to be a problem with a specific version on specific hardware.

couldn’t it be a problem with a specific module or modules?

I suppose it could be, but it has happened with large and small patches. I’ll try a patch with only “built in” VCV modules.

===

It still happens, although less often, with this patch which is the init patch, with a few additions of other VCV modules:

Might want to review the block size and sample rate you’re running.

1 Like

I’ve tried at both 48k and 44.1k, with next to no change. Is there a way to change buffer / block size in the stand alone application?

When you’re using Audio 2, click on the driver/device field in yellow at the top, beneath the AUDIO title and a context menu appears. Block size is in that menu

1 Like

Thanks, I’ll play with that.

It looks like VCVRack only sort of pays attention to the number of threads setting in the Engine menu.

Here’s a screenshot of my CPU history before and launching VCVRack. I have it set to use 6 threads.

The setting affects the number of Rack audio processing threads. Rack always has a number of other threads for processing midi, handling ui, and individual modules can create threads, too.

1 Like

It is a bit counter-intuitive, but using fewer threads often gives better results - sometimes much better. Generally you should use the lowest number of threads that gives satisfactory results.

M1 machines (and M2, M3) especially rarely need more than 1 thread. The times I have had crackling with my M1 MacBook Air are when I used multiple threads.

5 Likes

Thanks for the advice everyone!

I never would have figured out that decreasing the thread count was the way to go. I kept cranking up the number of threads used to try and fix my problem.

2 Likes

RTFM…

My performance tips

1 Like

A few unmentioned options to reduce cpu/gpu usage which might increase your performance are to; reduce the frame rate in the view menu, and use rack in full screen mode. There is also an option to run Rack in low resolution mode, which helps a lot on retina displays, but that option was removed by Apple in Monterey.

1 Like

Thanks for that. It makes for interesting reading.

That said, it seems to me that there’s something fundamentally flawed with the VCV Rack threading model, at least on my M1 Mac. On a mostly idle machine, increasing the thread count from 1 to 2 engenders crackles and pops. Why?

Luckily, VCV Rack can get a lot done using one thread.

1 Like

All threading models have an overhead. But yeah, there’s a definate penalty for using more threads in Rack, so maybe not the most efficient at it.

Try and close all other programs and then repeat your test. In my test on M1 Air I could go up to 3 threads on a load test. But you have to always be mindful of samplerate and buffersize as well. Perhaps go down to 44.1KHZ samplerate and make sure Engine->Rate is auto so no resampling occurs. And then try higher buffersizes. What audio interface are you using?

Agree with @LarsBjerregaard . There is a threading overhead (of course), but crackling all the time with two threads is definitely not normal.

Just so it’s clear what I’m going on about, here’s a video that shows a fairly CPU-hungry patch playing fine w/ one thread, but degrading when more threads are added. I’m using a buffer size of 1024, at a 48k sample rate, and I’m using CoreAudio driving the built in speakers or headphone amp.

Yes. For any one patch, adding threads will make it consume more CPU in total. That’s the threading overhead kicking in and is why you should keep the number of threads as low as possible, always starting at 1.

But… the only point of threads in Rack is that it increases the total processing capacity for a patch. So if your CPU is up for it, when a large patch starts crackling with one thread, when you add another thread the patch will be fine, because now it has more total processing power available. So more threads means you can scale up your big patches, but again, your CPU needs to be up for it.

1 Like