Huge Caching Applied to ASIO Guard

I am in love with the ASIO guard and I love the way the resources are dynamically allocated. I think its a very smart way to approach both real-time and pseudo real-time elements like the VST instruments.

Heres an idea roll with me on this.

Suppose the CPU’s could be working all of the time on a low level say 10-20% of the resources dedicated to constantly rendering the state of your current project. Example:

I load up 5 instances of Kontakt and add 5 string patches to each. I write a series of notes for each string. So I have 25 channels of midi being played. Some simultaneous some not.

So now imagine that as I sit and fiddle with the settings on a certain cello patch while the CPU (and super fast SSD’s that we all have) now render everything not being affected. Creating a temporary playback of every channel not being messed with. Essentially a render in place happening constantly and dynamically per change per channel. This would be very resource heavy but thats the point for those of us who would use this. VST instrument heavy people.

It would essentially be an endless caching system. You specify in preferences how much space on your fastest drive (or multiple drives) you would like to allocate to this endless cache and away it goes. Rather than saying ok render in place this… or freeze that… or replace this. Very similar to proxy media and preview modes in video production software.

So lets say you are near the end of a project and its MASSIVE, which happens all of the time, and all you are doing is automation and final touching. Lite stuff. Well you have this hog of a project eating up all of your CPU for no reason. The obvious fix would be to render everything in place that you are currently affecting and save it as a “final mix” version or something. But instead what if the project folder just had one additional folder called “cache” or “temporary” or “proxy” and its constantly rendering in place in the background as it gets resources and as it receives new changes per track. It could do this per track to keep everything tidy. So those 25 string tracks from earlier are now in our “cache” folder labeled accordingly plus any FX chains. And now we have infinite amounts of resource upon our “final mix” stage or our automation phase… or just messing with small timings phase… or whatever.

Even further the “cache” folder could store up to 10 undo and redo histories.

Yes this would be very storage heavy. But honestly I don’t really care about storage. I have literally an endless amount of storage for audio. And upon finishing a particular project you clear the cache folder and bam tons of free space. Or create a little utility that shows you where projects are and how many resources they are taking up with there cache.

Most computers nowadays are totally capable of this work load.

And this setting could be toggle on or off per project. So if you are just doing a rock project that is literally just tracking audio than there really is no need then keep it off.

But for VST instrument heavy projects this could be so much fun to never have to think about rendering because of resources ever again.

I have 3 working hard drives I use mainly that all read at 600-700mbps.

But the obvious big issue would be how to remove the resources from the CPU’s cue (how to stop audio processing plugins and free VST instruments) with out halting the audio. No clue there. But if it were possible for Cubase to free resources as it went with out interrupting audio while running in the background that would be a dream come true.

Thoughts?

Thank you

Danny

Sound like a good idea!