Renoise 2.8 Uses A Lot More Cpu With Master Spectrum Enabled

I noticed that viewing the master spectrum analyser more than doubles the CPU load of my song from around 30% to over 75% after some time. I run Renoise 2.8.0b2 32bit on Windows 7 32bit.

Lech

I noticed when displaying the master spectrum the cpu increased by 3-4 percent.

Hey Lech,

just a wild guess: is CPU throttling enabled on your Windows box and is this CPU usage from Renoise or the task manager?

With CPU throttling (energy saving) enabled, you can not really rely on the CPU display in Renoise. 70% may then be 70% of the CPU’s current speed, and not available speed. For music and other time critical issues it’s also always a good thing to disable this, because the system may not speed up the CPU fast enough, so you end up in crackles although your CPU could handle the stuff when running at full power.

See http://en.wikipedia.org/wiki/SpeedStep#Problems_when_using_SpeedStep and “Power Options” in the control panel -> “Process power management”.


If that’s NOT the problem, would you mind sharing the song where you discovered this, so that we can have a look at this here?

Dear Taktik,

It’s not a speedstep issue (I checked…) ;) I think it’s the fact that my netbook has a slow GPU (GMA3150) :(

What I did is switch between the disk browser tab and the master spectrum tab on 2.7.2, this increases the CPU load a little and never was a problem in regular use.

On 2.8.0b2 I do the same (same song, same powermanagement settings) switch from disk browser to master spectrum tab but by default on 2.8.0b2 it now shows two spectrums simultaneaously. Also the default block size seems to be higher for the FFT, and the drawing mode (filled curve) is also taking more CPU load from my little netbook.

So I guess the dreadful GMA3150 is the problem here and you might not notice this on systems with a faster GPU. I find that even if I set all the master spectrum settings in 2.8.0b2 to ‘low’ it still takes up more CPU than on 2.7.2 so it might be nice to have option to revert to a simple and high performance master spectrum for slow netbooks.

Kind regards,

Lech

But which CPU usage does increase then? Renoise’s (which only shows the audio CPU usage) or the one from task manager? It’s true that the new spectrum will use more CPU in general. But 30% to 70% is a lot - especially if it’s the audio CPU usage.

Which settings in the spectrum are you using? Which blocksize and which visualization in the spectrum (Curve, 1/3 Octave or Spectrogram).

Either way it of course won’t hurt if we do spend a bit of time to optimize this.

overlap average processing will sure add a bit of overhead especially on high block sizes. but is needed if you want faster/instant peaks?

but anyway here i get only 5% of cpu more with the larger block size and both spectrum tracks enabled…

WinXP32 SP3

4096 = 5%
16384 = 7%

Strange thing is I’ve been looping the same pattern to check and reported CPU usage seems to fluctuate on playing it without looking at Spectrum. Between about 47% - 51%. Think those values are fairly accurate though.

Dear Taktik,

My CPU usage on the CPU meter within Renoise 2.8.0b2 goes from 30% on the disk browser tab, to a maximum of 72% when I switch to the master spectrum tab. On 2.7.2 changing to master spectrum doesn’t affect CPU usage!

These are my (default) settings for the master spectrum:

Display phase view = true
Track display A = Master
Track display b = slected track
Drawing mode = filled curve
Frequency scaling = logarithmic
Block size = 4096 samples
Peak fall = normal
Slope = none

Changing the block size seems to have a lot of impact:
512 = 42% CPU
1024 = 48% CPU
2048 = 50% CPU
4096 = 63% CPU
8192 = 67% CPU
16384 = 72% CPU

So switching to master spectrum gives me a CPU increase of at least 10% CPU and 42% CPU increase in the worst case (highest block size). While using the master spectrum on Renoise 2.7.2 has virtually no impact (2%) on CPU usage.

My netbook has a Intel Atom N450 CPU with GMA3150 graphics.

I hope this helps!

Lech

I tried to optimize a bit here, so things should be lighter, let’s see the new beta.

Anyway, in order to keep the cpu small on machines with low specs, you should stick with the block size of 2048 (which is the default used in renoise <2.8). Higher buffer sizes will increase the cpu in order to keep frame rate and peak fall off acceptable (there is nothing we can do about it).

Great, nice to hear you take these little things seriously! I’ll check to see the result in the next beta.

Lech

Lech, could you please give this a try with B3?
The new spectrum definitely will be slower than the one in 2.7, but is it acceptable now in 2.8?

Try it with the same block size of 2.7 (which is 2048) to have similar testing case.
The block size of 16384 will sure eat up your cpu but there’s nothing we can do (it IS more power demanding).

I did another test on 2.8.0b3: (I used the same settings and song)

512 = 42% CPU → 41%
1024 = 48% CPU → 41%
2048 = 50% CPU → 47%
4096 = 63% CPU → 48%
8192 = 67% CPU → 62%
16384 = 72% CPU → 68%

There seems to be a small improvement, however there is still a noticeable increase in CPU usage when switching to the master spectrum view.

Maybe other netbook users could try and see how much CPU load they get when switching to the master spectrum, it might be a problem specific to my configuration.

Lech

PS: I decided to replace my netbook with a subnotebook (with a Core i5 processor), the song now takes between 6% and 11% CPU when viewing the master spectrum depending on block size (tested while running on batteries).

But how does that compare with doing the same on 2.7.2?

Although it sounds like it might now be a moot point for you personally…

On 2.7.2 using the master spectrum has very little impact on performance.

While it is not much of a problem for me anymore B) it might be for other netbook users out there.

I would suggest having an option in the config to switch to the 2.7.2 implementation of the spectrum analyzer.

what is little impact?

I think on 2.7.2 showing the master spectrum adds about 2% CPU usage.

PS: Did I mention how awesome all the new 2.8.0 features are?

On my thinkpad T61 (Core2Duo 2Ghz) with rns28b3 setting Block Size to 16384 leads to some audible crackles and it says “(chase)” (lower case chars here) in the top right corner. With 8192 there is no chase message and no audible crackles. For the CPU meter, it never goes over 20% in both cases.

On an old amd 64 xp 3000 , setting the spectrum to 2046 ( equivalent to old renoise standard spectrum ) increase of 10 percent …

We do analyze two signals at once in 2.8 (one for the master, one for the selected track by default) and apply an overlapping factor of 2 at an FFT size of 2046. So it’s expected that the spectrum is 4 times slower than the one in 2.7.

On everything but a netbook this is just fine IMHO. But IF we really want to throttle the CPU usage for netbooks, lets make the default FFT size 1024 or start overlapping at block sizes > 2048.