Skip to main content

Management of CPU use in the Audio Engine

Posted

In order to build a rack consisting of more than a few instances of plugins, there must be way to manage CPU use.

How about this? Each plugin instance can have three possible states that can be changed by the user as needed:

- Processing
- Mute
- Auto

The third state, Auto, would mean that the plugin would go to "sleep" after a few seconds of zero output, and it would automatically "wake up" once it receives any MIDI data.

While asleep or mute, the engine would starve the plugin of CPU cycles by not calling its rendering function.

Having this "auto" setting would be a HUGE bonus. REAPER, Sonar, Bidule, and Cantabile apparently do not do this. In fact I have yet to find any host on Windows that is capable of this. Every time I've built a big rack (more than 30 instances) in these products the CPU gets munched even while none of the plugins are doing anything.

Of course, there may be some plugins that don't work so well in these go-to-sleep/wake-up circumstances; that is why it should be an opt-in setting.

Even without the bonus automatic CPU management feature, at a minimum there should be a way for the user to turn an instance on and off without removing it from the rack.


Thu, 2011-12-08 - 09:39 Permalink

Absolutely. This is on our agenda.

Synfire knows in advance which instruments will be needed, so this basically is a no brainer. The host code just does not yet support it. Turning instances on/off still requires the audio stream to be interrupted, which is certainly not desirable.

Fri, 2011-12-09 - 16:06 Permalink

Excellent!

Eventually I would like to totally move to the Synfire engine for prototyping sessions, rather than using my rack in REAPER.

However, just a heads-up: I am going to be one who goes to the extreme and loads it up with 100 or more instances. :-)