# Reaper – inexplicable CPU load on a blank template



## Jaybee (May 26, 2017)

Hoping a Reaper expert might be able to explain this one.

My template is 588 separate tracks in Reaper x64 on Win 7 containing mainly single instances of Kontakt but also synth multis like Omnisphere etc. Everything is always kept purged and offlined until I need it. There are no folders*. All tracks are single and routed manually. 

Routing is simple:

_Instrument tracks > sub-groups of similar instrument types > reverb & stems (parallel) > Master-buss._

*Problem:* Excessive CPU load at idle

With every possible track that has any FX whatsoever switched to Reaper's 'Offline' mode (including the reverbs) I'm seeing an 8-14% (sometimes 20%) load when hitting Play on a totally *blank* project






This increases to 10-15% (sometimes 20%) load when hitting Play on a totally *blank* project when all FX are in in Reaper's 'Bypass' mode 






This is obviously an issue and I've no idea where it's coming from. Reaper's own performance meter is mirrored by the OS performance meter which unhelpfully just reports 'reaper.exe' as the CPU hog!

However, and this is what I don't get. Loading up 1024 tracks of Kontakt and offlining every one of them the CPU load is <1% as I'd expect when a system is not seeing anything to process!






*scratches head*

PC Specs:

Win 7 x64 Ultimate
i7 920 @3.04ghz
24Gb RAM
OS & Programs on an 850 Evo SSD
Samples on a separate dedicated 850 Evo SSD
Reaper 5.40 x64
Avast! AV is excluded from scanning Reaper.exe and sample drive

What I've tried:

*Originally the template was built using Reaper's Folder structure and there were lots of folders with sub-genres of strings (long, short etc). The CPU load in this form was nearly 30% on the blank template which led me to start investigations. Pulling tracks out of folders and routing everything by hand improved the CPU load but only down to the figures in the screenshots. Folder structures were definitely hitting the CPU.

Any ideas would be most welcome! TIA.


----------



## tack (May 26, 2017)

Can you share the template project? Might be easier to help that way.


----------



## Jaybee (May 26, 2017)

tack said:


> Can you share the template project? Might be easier to help that way.



Hi Tack,

The RPP is about 150Mb. Not sure it'll attach here and it was a lot of work so don't really want it to hit the open interwebs...  Have to hit the road soon so I've PM'd you a link to it on my Dropbox. 

TIA 
Jaybee


----------



## sazema (May 26, 2017)

Since Reaper has no official disable track option, please try this script (I'm using it)



Put into scripts folder and map this script to some keyboard key, for example "T".
This script will:
- set to offline (unload) complete track and included FX
- put your track into dimmed state, so you will know if is disabled or not

I have no such big template but I have template with 100 of tracks for sure and I don't see any problem.
My template is with disabled tracks mostly (by this script). 
Just tested, as I'm enabling tracks performance meter shows larger RAM consumption and some higher CPU hits. But, as I'm disabling tracks meter shows opposite. If I disable all tracks CPU is 0% or up to 1-2% depending on bus channels and FX.


----------



## EvilDragon (May 26, 2017)

Jaybee said:


> The RPP is about 150Mb.



Pack it to ZIP, RAR, or whatever. Since it's text-based it compresses REALLY well.


Also, how do you have these two options set?

Preferences->Audio->[ ] Do not process muted tracks
Preferences->Audio->[ ] Reduce CPU use of silent tracks during playback (experimental)


----------



## Jaybee (May 26, 2017)

sazema said:


> Since Reaper has no official disable track option, please try this script (I'm using it)



Hi Sazema, 

Thanks, appreciate that script. I just made everything online and offlined all tracks using it but sadly no difference I'm afraid, still a 15% load with everything "offline". 

I'm normally using a custom action here to set everything offline & bypassed, a combo of the stock and SWS action set. I use another to bring tracks online. Works fine on anything _but_ my template!! As I said earlier I can offline 1024 Kontakt tracks and get 0.6% CPU load on play but for some reason my template isn't playing ball. 

The only difference seems to be the template has routing. Now wondering if multiple routings are having a taxing time on the CPU? Apart from that I'm stumped. More testing tomorrow... 

Thanks again!


----------



## tack (May 26, 2017)

sazema said:


> Since Reaper has no official disable track option, please try this script (I'm using it)


I was reading through that code thinking it looks awfully familiar, and then I realized I wrote it. 

I just looked at Jaybee's project and I can reproduce what he's seeing. Reaper is horribly unpleasant to use on this project. Trying to select all the non-bus tracks via the TCP literally takes 20 seconds on my system. And then seems to give up, ending up only selecting the last track. Reaper clearly has a bug here. It works much better using the Track Manager.

CPU is very evenly distributed over 8 threads, each around 2.5%, plus the ASIO thread. There are no VSTs taking CPU.

Overall I would not want to use Reaper either with this kind of experience. Reaper is just generally responding very poorly selecting and operating on a large number of tracks.

Using the recipe in that script would improve things a bit. It will bypass FX on the track in addition to offlining the individual FX. I tested this on all the non-group tracks (even the ones hidden on the TCP) and this buys me about a 8-10% absolute improvement (from about 20-25% CPU utilization to 10-12%). Better.

There might be further improvements. I won't have any more time today so Jaybee you may want to make that dropbox link publicly available for others to take a stab at it.


----------



## Jaybee (May 26, 2017)

EvilDragon said:


> Pack it to ZIP, RAR, or whatever. Since it's text-based it compresses REALLY well.
> 
> Didn't realise that! I'll zip it up and stick it on Dropbox and post the link.
> 
> ...


----------



## tack (May 26, 2017)

Jaybee said:


> The only difference seems to be the template has routing. Now wondering if multiple routings are having a taxing time on the CPU?


I had the same idea. I tried muting all sends with no real improvement.

One thing you might try is the option "Do not process muted tracks." With this enabled I see another 5% drop and now I'm bouncing around 5%. Possibly that option does need to be combined with muting the sends on the disabled tracks.


----------



## Jaybee (May 26, 2017)

tack said:


> I was reading through that code thinking it looks awfully familiar, and then I realized I wrote it.
> 
> I just looked at Jaybee's project and I can reproduce what he's seeing. Reaper is horribly unpleasant to use on this project. Trying to select all the non-bus tracks via the TCP literally takes 20 seconds on my system. And then seems to give up, ending up only selecting the last track. Reaper clearly has a bug here. It works much better using the Track Manager.
> 
> ...



Glad it's not just me then  Thanks Tack, I'm going to zip the file and Dropbox it. The script didn't show an improvement over where I was but is another good way of offlining! 

Cheers again!


----------



## Jaybee (May 26, 2017)

tack said:


> I had the same idea. I tried muting all sends with no real improvement.
> 
> One thing you might try is the option "Do not process muted tracks." With this enabled I see another 5% drop and now I'm bouncing around 5%. Possibly that option does need to be combined with muting the sends on the disabled tracks.



Already had 'Do not process muted tracks on' but ED's second check box (experimental) has shaved a few % off! 

I expect it might be a combo of disables/mutes/inhibits that works but we'll see...


----------



## Jaybee (May 26, 2017)

Right, here's the .RPP file in a .zip format. God speed all of you.... and don't laugh at my routing... I'm still wet behind the ears.. 

**Deleted as solution found (and this template wasn't very good anyway) - solution is here**

I'm being summoned out of the house by my better half now so I'll check back tomorrow. Cheers!


----------



## tack (May 26, 2017)

This graph shows CPU utilization as I try various things. Up until the first red line is the baseline of the project as initially loaded.







In Track Manager, select all tracks up to the first group track (1-531).
Unlock track controls (action 41313) and Toggle FX bypass for selected tracks (action 8). Then deselect the selected tracks (which is the obnoxious spike just before it levels off).
We are clearly idling at a lower levels than before.
Enable option "Do not process muted tracks". Again, _slight_ improvement there.
Select tracks 1-531 again.
Mute all sends from selected track(s) (action _SWS_MUTESENDS)
Unselect tracks

Stabilized at new level
Muting the sends doesn't seem to have any effect. Bypassing FX at the track level has a clear benefit (even though the individual track FX are offlined, bypassing FX obviously allow Reaper some more optimized internal paths).


----------



## sazema (May 26, 2017)

tack said:


> I was reading through that code thinking it looks awfully familiar, and then I realized I wrote it.



Big thanks! Didn't know you're author.


----------



## sazema (May 26, 2017)

No, it's definitive something with your template  I also loaded project.

Don't know what you do with you FX instances, but simply by recalling enable track with script that wont happen. Instead I have to run script twice and the again go to FX and bring Kontakt online. Hm...

Now, I made project from my template with 100+ tracks and all tracks disabled.
When all tracks enabled CPU in idle is about 5%, when all tracks disabled CPU is about 0.1% same when you play in empty...

Please https://drive.google.com/file/d/0B3-8ku7H5pGlTHdLWnAtTjkyMjQ/view?usp=sharing (download this template) and check at your side.


----------



## sazema (May 26, 2017)

Jaybee said:


> Right, here's the .RPP file in a .zip format. God speed all of you.... and don't laugh at my routing... I'm still wet behind the ears..
> 
> https://www.dropbox.com/s/dtaa3k2nt...e_build_beta_v_24_nofolders_offlined.zip?dl=0
> 
> I'm being summoned out of the house by my better half now so I'll check back tomorrow. Cheers!



See comment above


----------



## ComposerWannabe (May 26, 2017)

I always wondered what was so great about Reaper's efficiency in CPU. I mean aren't all daws should be practically the same without major differences?

Does Reaper's CPU performance affect latency and monitoring of the VI Instruments. I like spending time with piano libraries. And some are CPU hogs like Bechstein. I had problems with Bechstein in Samplitude. Now say, if i install Reaper and play Bechstein through Kontakt in Reaper I will get better results because it's more CPU efficient?

P.S: My problem with Bechstein is both the CPU and the Disk. I run Bechstein on a HDD so my disk gets %100 fast too. Any fix on problems like this?


----------



## EvilDragon (May 26, 2017)

ComposerWannabe said:


> I mean aren't all daws should be practically the same without major differences?



No, sir. This is exactly the stuff where DAWs differ the most - in ways how they process things. So yes, some are (much) more efficient than others.



ComposerWannabe said:


> I run Bechstein on a HDD so my disk gets %100 fast too. Any fix on problems like this?



Yes, defragment your hard drive if you have the library on a platter drive. Otherwise, get yourself some SSDs and put your sample libs on them.


----------



## ComposerWannabe (May 26, 2017)

EvilDragon said:


> No, sir. This is exactly the stuff where DAWs differ the most - in ways how they process things. So yes, some are (much) more efficient than others.
> 
> 
> 
> Yes, defragment your hard drive if you have the library on a platter drive. Otherwise, get yourself some SSDs and put your sample libs on them.


How about CPU problems? Is Reaper going to be better compared to other DAWs on single instrument playing -single thread performance?


----------



## EvilDragon (May 26, 2017)

Yes, it can very often be.


----------



## Jaybee (May 27, 2017)

tack said:


> This graph shows CPU utilization as I try various things. Up until the first red line is the baseline of the project as initially loaded.
> 
> 
> In Track Manager, select all tracks up to the first group track (1-531).
> ...



Many thanks Tack. Applying these steps (already had step 4 checked) now results in an idle (on play) or around 3-5% here which is a huge improvement! 

Reaper still seems to be seeing something it needs to process, even though surely everything is now firmly 'offline'. That 1024 track template with no routing at all when offlined was down to 0.6% idling on play. Seems to suggest that the FX and routes are 'offlined' to the user but still 'wired in' according to Reaper.


----------



## EvilDragon (May 27, 2017)

When you have sends from a track to other tracks, they need to be processed all the way through (one track and ALL its related sends, and effects on them - stuff like reverbs which you most likely have), and this can incur some CPU load, especially with a huge number of tracks.


----------



## Jaybee (May 27, 2017)

sazema said:


> No, it's definitive something with your template  I also loaded project.
> 
> Don't know what you do with you FX instances, but simply by recalling enable track with script that wont happen. Instead I have to run script twice and the again go to FX and bring Kontakt online. Hm...



Hi Sazema, I have two actions assigned to the toolbar for offline and online using these steps. The uploaded template didn't have the "bypass" step as I wondered if both offline & bypass were affecting each other (I'd tried most everything else!). Here's my regular offline/online action sets: 













sazema said:


> Now, I made project from my template with 100+ tracks and all tracks disabled.
> When all tracks enabled CPU in idle is about 5%, when all tracks disabled CPU is about 0.1% same when you play in empty...
> 
> Please https://drive.google.com/file/d/0B3-8ku7H5pGlTHdLWnAtTjkyMjQ/view?usp=sharing (download this template) and check at your side.



Your template wouldn't play in the regular sense for me, as in the playhead "stuck" in place. However the transport counter was moving fine and the CPU was varying between 0.2 and 0.8% here. Which is again, what I'd expect.


----------



## Jaybee (May 27, 2017)

EvilDragon said:


> When you have sends from a track to other tracks, they need to be processed all the way through (one track and ALL its related sends, and effects on them - stuff like reverbs which you most likely have), and this can incur some CPU load, especially with a huge number of tracks.



I'd offlined everything though, even the reverb/delay tracks. In my uploaded template nothing is 'live' at all as far as I know and following Tack's steps even the sends are all muted. 

I had thought Reaper could handle a working template approach but perhaps not when the track count gets above a few hundred and there's a bit of routing involved?


----------



## Jaybee (May 27, 2017)

OK, so I just tried regular muting of all tracks using "_Track: Toggle mute for selected tracks_" in addition to the steps we've already applied to the tracks and hey presto. Idling on play at 0.3 - 0.8%. That's great if not a bit puzzling, but it's the desired result of lowest possible CPU strain at idle.

So... to recap, a combo of:

Offline
Bypass
Mute Sends
Mute Track

Plus having these two checked in Prefs:

Preferences->Audio->[ ] Do not process muted tracks
Preferences->Audio->[ ] Reduce CPU use of silent tracks during playback (experimental) 

seems to squash the CPU load to minimum.

Reaper being Reaper I'm pretty sure I can set the visual dark mute overlay to something less dark, though this is still workable.

Top work everyone, this is real progress


----------



## James Marshall (May 27, 2017)

Jaybee said:


> Reaper being Reaper I'm pretty sure I can set the visual dark mute overlay to something less dark, though this is still workable.



Surprisingly, this is one of the few things you can't change. Muted tracks have to be darkened.

I've found that the only way to tweak the effect of this darkening is to tweak the track lane background (odd and even). I have it set to quite a dark grey with black grid lines, that way the darkened muted tracks blend with the grid lines. Otherwise I find muted tracks on a light background start looking a little stripey because of the grid lines, looks a bit bleurgh to me!

If there is a way to set the muted track darkening that I've missed it love to know! But I'm pretty darn sure it's not possible.


----------



## Jaybee (May 27, 2017)

James Marshall said:


> Surprisingly, this is one of the few things you can't change. Muted tracks have to be darkened.
> 
> I've found that the only way to tweak the effect of this darkening is to tweak the track lane background (odd and even). I have it set to quite a dark grey with black grid lines, that way the darkened muted tracks blend with the grid lines. Otherwise I find muted tracks on a light background start looking a little stripey because of the grid lines, looks a bit bleurgh to me!
> 
> If there is a way to set the muted track darkening that I've missed it love to know! But I'm pretty darn sure it's not possible.



I just realised this myself after poring through the theme editor line by line. Quite some omission considering the depths of tweakability already present. There's a half a dozen threads and a couple of Feature Requests over at the Reaper forum to add this functionality so I've +1'd those but they've been around for a couple of years so not holding my breath. 

Thanks for the ideas though! I'll trade looks for performance at this stage but I'll have a play with the track lane background and see if I can make the transition a little less harsh


----------



## d.healey (May 27, 2017)

Might be an idea to let the Reaper devs know about all this


----------



## Jaybee (May 27, 2017)

d.healey said:


> Might be an idea to let the Reaper devs know about all this



As it's not a bug it has to go down as a 'Feature Request' and it's been an FR since 2011 but obviously not enough weight to make it into a release. 

Please add your support to this thread: http://forum.cockos.com/showthread.php?t=81952


----------



## d.healey (May 27, 2017)

Jaybee said:


> As it's not a bug it has to go down as a 'Feature Request' and it's been an FR since 2011 but obviously not enough weight to make it into a release.
> 
> Please add your support to this thread: http://forum.cockos.com/showthread.php?t=81952


I was referring more to the problem that setting a track offline isn't really putting it offline


----------



## Jaybee (May 27, 2017)

d.healey said:


> I was referring more to the problem that setting a track offline isn't really putting it offline



Ah! Yes, it would be good to report this but at the moment I think there's still a grey area as to what exactly is causing this CPU load. Tests so far have revealed that a large template with no routing at all can be offlined so the CPU is virtually idle, but my template including routing would not sit below 3-5% without those extra track mutes. 

I'll see how this thread develops and take whatever conclusion we come to over to the bug reporting section. I think most Reaper users aren't using it for sample/template work so it's not something that's likely to have cropped up already. But yes, definitely worth reporting.


----------



## tack (May 27, 2017)

d.healey said:


> I was referring more to the problem that setting a track offline isn't really putting it offline


Except there really isn't a "track offline" feature as such. Only a series of actions that when combined have a similar effect.

It actually makes sense to me that all the sends would still be processed. Setting the tracks to muted with the option to skip processing of muted tracks sounds like the closest we'd get.

@Jaybee couldn't you continue to have lock/unlock track controls as part of your action and then tweak the theme to darken on locked tracks?


----------



## tack (May 27, 2017)

Does mute sends really have any effect? Intuitively I'd think it should be enough to mute the track (in addition to the FX offline and bypass).


----------



## Jaybee (May 27, 2017)

@Jaybee couldn't you continue to have lock/unlock track controls as part of your action and then tweak the theme to darken on locked tracks?[/QUOTE]

Yes, I'm doing that already with an opacity overlay on the locked track. Enough to say 'I'm dormant' but still able to read the text..  I'm currently exploring track theme options as James mentioned earlier. I've dipped into it a couple of times before but a while ago so I need to make sure I know what I'm tweaking...


----------



## Jaybee (May 27, 2017)

tack said:


> Does mute sends really have any effect? Intuitively I'd think it should be enough to mute the track (in addition to the FX offline and bypass).



I'm not sure it does but I thought as I had an action set I'd throw it in. Can't harm and doesn't seem to prolong the on/off process.


----------



## sazema (May 27, 2017)

Jaybee said:


> Your template wouldn't play in the regular sense for me, as in the playhead "stuck" in place. However the transport counter was moving fine and the CPU was varying between 0.2 and 0.8% here. Which is again, what I'd expect.



Arranger window is just zoomed out a lot  Zoom in and you'll see play head is moving...


----------



## Jaybee (May 28, 2017)

sazema said:


> Arranger window is just zoomed out a lot  Zoom in and you'll see play head is moving...



Doh! I didn't think of that, sorry!


----------



## tack (May 30, 2017)

tack said:


> Trying to select all the non-bus tracks via the TCP literally takes 20 seconds on my system. And then seems to give up, ending up only selecting the last track. Reaper clearly has a bug here.


And I found the cause of this: I had a Mackie control surface configured in Reaper.

It seems like there's some pathological behaviour with high track counts and an MCP device. Removing the MCP device and things instantly improved.


----------



## samphony (May 30, 2017)

tack said:


> And I found the cause of this: I had a Mackie control surface configured in Reaper.
> 
> It seems like there's some pathological behaviour with high track counts and an MCP device. Removing the MCP device and things instantly improved.



I was going to ask exactly that. I realized that when we tested reaper with EUCON integration at our pro tools rig and came to this conclusion.


----------



## robgb (Jun 1, 2017)

I don't know what's going on in that template, but when I loaded it, it was at 15% with everything off. I never have that kind of usage with my own templates.


----------



## Jaybee (Jun 2, 2017)

robgb said:


> I don't know what's going on in that template, but when I loaded it, it was at 15% with everything off. I never have that kind of usage with my own templates.



That makes two of us! There's nothing in there _as far as I can see _that's so far out of the ordinary as to cause this CPU load. Bizarre. 

Still, it is was it is and with the muting of all tracks it's a respectable 1% at idle so for now that's what I'm going with! It took me weeks to put that together over many versions, it's not something I want to repeat anytime soon!


----------



## Jaybee (Jun 6, 2017)

Jaybee said:


> That makes two of us! There's nothing in there _as far as I can see _that's so far out of the ordinary as to cause this CPU load. Bizarre.
> 
> Still, it is was it is and with the muting of all tracks it's a respectable 1% at idle so for now that's what I'm going with! It took me weeks to put that together over many versions, it's not something I want to repeat anytime soon!



OK, I finally found the cause. Before I discovered the "write to envelopes" workaround for CC data I had built the template originally with a small 1/4 bar recording of CC data on most of the tracks to set up the levels on load. I was messing with v24 earlier as a lot of the routing was suspect (I'd left some errant sends to the master track when de-foldering) and I thought I'd get rid of these small snippets at the start of each track as an experiment. 

Hey presto, as soon as I deleted them the CPU load dramatically reduced. _So even though the track was offline and bypassed, this small "item" as Reaper calls it on hundreds of tracks was causing the CPU bloat_. I was subsequently able to take the MUTE off each track too, so went back to just bypassing and offlining the FX (and muting the sends for good measure). 

Result: CPU idle of under 1% as it should be. Thanks to all who chipped in, I knew we'd get there in the end


----------



## liquidlino (Jan 29, 2022)

If you haven't tried it, I just found a solution for my flavour of disabled tracks taking massive amounts of CPU (each routed track was disabled, but the routing must have still been consuming CPU).

_"I disabled "Run FX when stopped" and changed the Thread Behaviour to 0(Relaxed)and the CPU levels have gone down to <1% which is great! Not sure what the negatives are to these settings."_

Took my CPU usage from 45% down to 4%, even when playing back.






Reaper and high CPU usage with disabled/no plugins - Cockos Incorporated Forums


Reaper and high CPU usage with disabled/no plugins REAPER General Discussion Forum



forum.cockos.com


----------



## Markrs (Jan 30, 2022)

liquidlino said:


> If you haven't tried it, I just found a solution for my flavour of disabled tracks taking massive amounts of CPU (each routed track was disabled, but the routing must have still been consuming CPU).
> 
> _"I disabled "Run FX when stopped" and changed the Thread Behaviour to 0(Relaxed)and the CPU levels have gone down to <1% which is great! Not sure what the negatives are to these settings."_
> 
> ...


I initially read this thread and though that's a good tip, then after clicking the link realised it is mine 🤣


----------



## liquidlino (Jan 30, 2022)

Markrs said:


> I initially read this thread and though that's a good tip, then after clicking the link realised it is mine 🤣


No way! That's hilarious!!! I didn't even look at the name. I even signed up on the reaper forum to post and thank you reply, I'm waiting for the moderators to approve my account. How funny!!!!


----------



## liquidlino (Jan 30, 2022)

Markrs said:


> I initially read this thread and though that's a good tip, then after clicking the link realised it is mine 🤣


Was a lifesaver though. I updated my template this morning to build routing of each instrument track to reverbs individually, and then added eq, stereo placement and er reverb instance to every track, so I can start to build a somewhat pre-mixed template with instruments balanced and placed in a virtual room, and all hell broke loose with CPU usage.


----------

