Battling CPU, Dynamic CPU reduction

Studiowaves Member Posts: 412 Advisor
edited March 2022 in Building With Reaktor

Simple thing really but can be quite effective on some things. Simple get the cpu usage from the system info.

Select the number of voices and get a base load value first.

Latch the base load into the bottom input of a subtract module and attach the cpu to the top.

Now you have a calibrated output from the subtract module the sits around 0.

Set the cpu to smooth instead of raw and the panel button to trigger.

The panel may look like this

After pressing the button the numeric output on the bottom shows the current idle cpu state.

Now we have a calibrated on the output that head downstream to the exponent multiplier.

Although the multiplier is not necessary it does help in keeping the down stream cpu reduction from kicking in when it's not necessary. As shown, the cpu reduction gets exponentially stronger with a rise in cpu.

So, what to do with the output, simple, use it to subtract the clock speed of a clock generator running a module.

Notice the multiplier of times 10, as the cpu approaches 100 percent in the case the cpu should be roughly 67 as the base load of 33% was zeroed. So you'll get 24000 - 670 as a clock frequency. Of course change the multiplication to a factor of 1000 will reduce the clock to 24000 - 6700. And so on... Naturally the value of 10 should be an external knob with a value of perhaps a thousand or something entitled strength.

Of course under clocking may have its disadvantages but in my application it's not to bad.

Also note that the system self regulates as follows:

As the cpu rises the under clocking also reduces the cpu so clock speed will rock up and down a bit due to the filtering of the cpu output in the system info.

I had good results with this compared to a system shutdown from excessive cpu or automatic voice reduction. I guess every little bit helps battling cpu even with subtle methods like this.


  • arachnaut
    arachnaut Member Posts: 79 Advisor

    You may want to put a smoother on the F input to the Clk Gen, it might help when things get extremely dynamic.

    Its possible that using this may cause a clock oscillation around a point - if the CPU gets high and this kicks in the CPU is lower, so it allows the CPU to rise, which kicks in again.

  • Studiowaves
    Studiowaves Member Posts: 412 Advisor

    Thanks man, the system info has a built in filter which is just about right. You are correct, it will oscillate. If the strength is too high the clock gens get ridiculously low and the filter slows it all down. In other words, I concur.

Back To Top