I have reservations about 'automatic' and 'transparent', though it would be the ideal way to do it.
It reminds me of garbage collection in Java, where while it is supposed to happen 'in the background', there are short periods where resources are hogged while it tries to complete its task. Higher priority tasks then have short delays where there are not enough resources for them to do theirs.
With audio, the datasets are massive and rendering is a time consuming process, so one does not want to be suddenly confronted with workflow holdups while an already initiated process completes.
When we did our first CD in 2003-2004, our computer was a single core AMD and was definitely not up to the task. We used a plugin called FX-Freeze. The developer, a Russian called Max, originally designed it as a VST instrument freeze, but it would also freeze any VSTs inserted up to it. I suggested that he make a version that just froze everything before it. With that new plugin, and careful planning, we got through our CD.
[Some may remember the VEPro Ethernet audio routing precursor, FX-Teleport. It was by Max as well.]
The original FX-Freeze automatically disabled the VSTi and the preceding VSTs on the channel, but did not do anything about channels that fed a group that FX-Freeze was inserted in. I had to plan carefully and remember to rigorously disable feed-in channels for groups and FX. It was tedious!
Management of what is frozen and/or disabled is critical to any freezing system. If one has been relying on freezing to free up resources to enable working on other parts, editing something early in a mixing chain could trigger a whole lot of unfreezing leading to such a huge CPU requirement that the system would hang or crash. Basically, the system would have to be able to handle almost the fully load anyway, which would tend to undermine the need for a full freezing system.
If you ponder the intricacies of how to design a plugin delays compensation (PDC) scheme, imagine the headaches with getting a freezing scheme right. Some wanted the Cubase PDC system to allow loops. How would freezing be managed in a loop? What about sends and side-chains?
Then there is the question of how to automatically determine when editing has completed, that jaslan and TheNavigator discuss. Any automatic system would definitely require hidden 'dirty' flags, as TheNavigator mentions, as part of its management tools.
Such a scheme would definitely require a lot of clear thinking and thorough workflow analysis. I am not sure whether I would trust that all the ground work would be done thoroughly enough to rely on a first-gen fully auto-freeze system.
However, to get going, and to give some sort of control of when to users, I suggest a 'deep' Save mode, where all tracks are fully rendered and all but final outputs disabled. You could then work it into convenient times within one's workflow. ["Coffee break? Yes. I'll just initiate a Deep Save first."]
Also required are:
- determination of the method of triggering an unfreeze
- an easy means to select the scope of an unfreeze (such as leaving the targets of sends frozen)
- an indication of how much resources unfreezing up to the selected point would require (it would mostly know how much was required to render to that point).
In the meantime, does anyone know of if there is a 64bit FX-Freeze equivalent? The FX-Max forums are a ghost-town, with only the odd visitor and work-from-home trolling robots in attendance. Max had earlier had a serious enough illness to take a few months off, so it might have had something to do with the halt to things. Remind me that one person's efforts can help so many, but also that they can also disappear without a trace, except for the digital epitaphs they erected along their way.
Half of the folk music duo, DevaKnighT. http://devaknight.com/ http://youtube.com/devaknight2
Music available from CD Baby (MP3/FLAC at http://cdbaby.com/Artist/DevaknightT
) and the usual culprits. All recorded and processed on Cubase 7.x at 192k.Comp:
i7-4930X, Asus P9X79-E WS, 32GB, 3xPalit GeForce 9400, SSDx5, UAD-2Q, Dell S2340Tx3, Dell 3008x2, TV. HW:
Nmn U87 Ai, JA251x2, YRG, Korg padKontrol+microKEY2, RME FF400+800, M-Patch-2, Tannoy Reveal Active+TS-12. SW:
Win 8.1 Pro 64, Cubase 7.5.10 64, RX3Adv, Goliath, SO Plat Pro, Pianos, Gypsy, Sup.Drum 2.0, AT7, Ozone5Adv.