[FIGURED OUT]Updated to latest MM firmware, single modules are maxing out CPU

This morning I just updated the newest firmware for the MM. Update went fine. I loaded up some newer plugins that have been added, and now I’m seeing the audio stop because of CPU overload. However, I’m only loading in single modules, like the Befaco SpringVerb. My settings are 48/64.

Anyone else seeing this?

Spring Reverb needs block size of 512, it’s a weird thing but the only module that’s like that. Also this was the same in the last firmware.

@danngreen I get how sample rate impacts CPU, but what can we expect with changing block size’s impact on CPU?

Block size smooths out spikes in the CPU usage.

There are two things potentially going on:

  1. Some modules have no spikes, i.e. the CPU usage is about the same for every audio sample frame. So for these modules, block size has a negligible effect on CPU usage.
    Other modules might do some large amount of processing if a certain knob or jack changes. Or the module uses an algorithm that uses different amounts of CPU at different times. Whenever this happens, there will be a spike in the CPU usage for that particular audio frame. With a small block size, this spike will have a more drastic effect on the total time spent processing the block. For larger block sizes, this “spike” in the CPU usage will be “smoothed out” since it’s essentially averaged with all the other frames in the block that had a low CPU usage.

  2. There is a fixed amount of processing that runs every block. So if block size is 128 then that means this processing happens every 128 audio frames. As block size goes up, the effect this processing has on the total load goes down. This has nothing to do with the modules in the patch.

Ok that’s the theory. I am almost done with the database of actual CPU measurements, which lists the CPU for every module (built-in and plug-in) the CPU load under various conditions.
I’m writing up a post for this along with the first draft of the database, for comments and suggestions about integrating this data into MM.

4 Likes

I just posted a huge spreadsheet of CPU load measurements:

There’s a ton of data in there, but the line relevant to this thread is that the SpringReverb had over 100% CPU usage at all block sizes, even when unpatched, except for block size of 512. Also, if you just scan the spreadsheet you can see most modules don’t change much under different block sizes. SpringReverb might be the only one?? (I have yet to parse and analyze it all)

2 Likes

Ah ok, this makes sense from what I was seeing, because I know I tried with the Airwindows Matrix Reverb as well as Befaco SpringReverb, and those two both kicked the CPU limit “switch”. I never tried the SpringReverb prior to putting in the latest firmware, and while updating I added a couple of the plugins I hadn’t yet installed like Airwindows…