SteveInChicago wrote:I imagine Cubase is already doing stuff in the background, and that the devs have to do a balancing act regarding features that use idle time and non idle time processing.
If they haven't added something like this yet maybe it's because CPU load required to make the feature work fast enough to be useful, would be too high.
No, it's just that people don't care enough or "can't imagine it working", like jaslan. And the architecture may not yet have full "exchange VST chain with simple stream playback" capability (something I usually solve via introduction of parameterized / named dependency injection*).
There is no tradeoff involved at all. If there is no CPU power left, no background recalculations happen.
When my Cubase is at 90% ASIO, I'm barely scratching 35% CPU. So 65% CPU left for "recalculating dirty tracks".
* Works like this:
If I designed a DAW, there would be an interface, say, IPlaybackChannel.
Every mixer track (MixerChannel -> IPlaybackChannel) is, as I stated in my fake UML (
) dependent on it's playback channel, which can be, via method call, exchanged. Example in C# (my language of choice):
public sealed class MixerChannel : IMixerChannel
// yada yada
private IPlaybackChannel m_PlaybackChannel;
public void SetPlaybackChannel(IPlaybackChannel playbackChannel)
this.m_PlaybackChannel = playbackChannel;
Chris, The Navigator... Keyboards, songwriting, CTO and aspiring coproducer for Visions of Atlantis
PC watercooling and overclocking afficionado.
Main device: Cubase 7.5 64 bit on Windows 8.1 (4930k @ 4.1 GHz, 32 GB of RAM, 3 SSDs), Halion 5, Padshop Pro, RME Hammerfall DSP + Multiface, Avid Artist Control V2, Roland A88, AKG K701 headphones, lots of other nice stuff
Mobile cutlery: iPad Air 2, Cubasis (always the latest version), Audio Bus 2, Focusrite iTrack Dock, one or the other cheap USB MIDI keyboards
Favorite synthesizers: u-he DIVA, Padshop Pro, Halion 5
"Storms can't kill the faith in rainbows"