fbpx

Predictive Loading in Gig Performer

Jan 30, 2017 | Gig Performer Blog

We are very excited about a new feature introduced in Gig Performer 1.5. It’s something we’ve wanted from the very beginning and it’s something that we believe many people will really find incredibly useful.

Background

Normally, Gig Performer preloads all rackspaces, which means that all audio plugins that will every be needed are created as Gig Performer starts up. While this can use a large amount of RAM, particularly with audio plugins that depend on samples, the advantage is that you can switch instantly from any rackspace to any other rackspace and experience no glitching. At the other extreme, some audio plugin hosts load just one set of plugins at a time. That has the benefit of significantly reducing the amount of RAM you need but has the serious disadvantage that you can’t instantly switch from one set of plugins to another. It might only take 1/2 second, but that’s still not instant.

However, in many if not most live performance situations, musicians tend to follow a setlist. If you position your rackspaces based on the order in which you will need them, then with the new Predictive Loading feature enabled, Gig Performer will manage plugins dynamically as you move through your setlist. So while you are performing with one rackspace, the plugins for the next few rackspaces will be prepared in the background for when you reach them.

The results

The results are amazing. Instead of requiring 10 or 20 gigabytes of RAM, you can get away with 2 or 3 gigabytes. Also, it turns out that a surprising number of plugins use CPU cycles even when they are not actually doing any audio processing. We have seen quiescent plugins add an extra 3% CPU utilization for each one loaded. So much of that overhead disappears as well.

We want to emphasize that Predictive Loading is not for everyone. If your live environment is such that you just have to be able to switch to arbitrary rackspaces on the fly, then you will have to have all rackspaces preloaded. That’s fine, it works very well, still using less resources than other audio plugin hosts, but you’ll still want to pay some attention to how efficient are your selected plugins in terms of CPU and RAM usage so that you can maximize your usage. By the way, here is the entire CPU usage of Gig Performer while Jazz Guitar is playing.

Gig Performer uses 8.7% CPU utilization

Yes, 8.7% total CPU utilization. The audio processing CPU utilization at this point was under 2%. Now obviously everyone’s system will behave differently and I’m using a reasonably modern iMac but you gotta admit, that’s pretty damn good!

Trade-offs

Like most good things in life, there is a tradeoff but we think it’s a very reasonable one. If you use Predictive Loading, for the most part you cannot jump to an arbitrary rackspace and expect an instant response. You can only move instantly within the range of rackspaces that have been loaded. However, if you think about it, this isn’t really much of a restriction. You may be thinking that there are some rackspaces you really need to use often and now you can’t just jump to them. But you don’t have to. You can duplicate that rackspace as many times as you need so that an instance is available in every song. With this mechanism, you can have thousands of rackspaces without paying a significant RAM or CPU cost.

Now, we have seen one or two plugins that don’t always behave properly in this dynamic environment. We’ve worked hard to optimize our system so that such plugins don’t actually fail but we have run into one plugin where it took an unreasonable amount of time for it to load its samples. We’re not ready to mention any names though. We do however need to be clear that in such cases, it is generally the plugin that is going to be at fault, the designer most likely having made assumptions that weren’t necessarily valid. In such cases, we will try to work with that plugin’s developer to resolve the issue.

YouTube video

 

.

Related topics:
Predictive Loading (Gig Performer 4 User Manual)
Predictive loading just saved my a– !