Dewdman42 wrote: ↑
Sat Sep 14, 2019 10:47 am
Getting into quite a bit of speculation there without insider knowledge about how these apps are coded. But I will just say that pre-rendering or larger buffers...its all kind of the same thing.
I don't think it is. I think buffering as a method is an extension of tricks like plug in delay compensation. The difference is the added buffer is so the CPU can compute the data in even longer time periods before spitting it out. With pre rendering everything is pointing to it being the equivalent of a hidden freeze file. So the whole thing or large chunks are rendered to a hidden file.
This is how these two technologies were explained to me. I reserve the right to be misinformed, but in terms of what I see with various DAWs and stress tests it pans out.
Whether tracks are pre-rendered before actually hitting play or not, is a question I don't think any of us really know, except for MOTU has included it as a stated feature in DP now. Perhaps Logic always did it, perhaps not, we don't really know. But in any case, I personally would have thought they ALL did it that way from the get go and I was shocked when MOTU released it as a relatively recent feature add.
Yep, Logic always has had really great buffering algorithms, that's how it was explained to me years ago. As a way of explaining why Ableton Live is a huge CPU pig and Logic is lean. Live polls all tracks for any and all possible changes, so its effectively forcing everything into a sort of real time performance mode, and it costs CPU. Logic only responds to active inpu. DP from what I can tell was raw, not much of a buffer until NextGen, and it I think does exactly what it says it does, renders amounts of a track to probably virtual RAM.
But here's the thing.. ALL plugin processing happens ahead of time, and not in real time. It operates on a buffer. If you make the buffer bigger, then you give the DAW and computer more time to service other processes, multi-tasking, for the DAW itself to service GUI issues, etc.. it can call the DSP code in whatever way it needs to...utilizing cores as best it can, for example... it provides more breathing room basically to multi-task all those different things. With a smaller buffer there is a lot less time and more possibility of a drop out occurring because DSP code could not complete in time. Its still rendered ahead. Does it really matter whether it was pre-rendered in a freeze-like manner before hitting PLAY or not? If the buffer is big enough, then maybe not.
For sure if you have a huge actual buffer you get massive amounts more CPU headroom, can't really play a soft synth etc. All these methods are ways around that.
Nothing ever renders in real time. But I get the point you're trying to make that *IF* there is some kind of pre-rendering going on...earlier then even the largest buffer would allow, then can AUX channels be pre-rendered too? I think that is a complicated question and its possible that in some cases yes it could be. If the DAW can determine that all of the source tracks feeding the AUX are pre-rendearable, then it could certainly pre-render the AUX channel too. That is pure theory, we don't really know what the DAW's are doing with pre-rendering exactly...
Mostly DAWs will not pre render or freeze tracks that are sending to Aux's, have multi audio out etc. That's what I was getting at, and this doesn't seem to be a problem for added buffering though, hence Logic looking great with VEP.
Nothing operates in actual real time. There is always a buffer and the computer works on the buffer at its own pace in non-real-time. VEP is also not seen as an "external instrument". Its an instrument plugin. Instrument plugins provide call back functions that the host can call to do whatever DSP they want to do and return the result to the host. VEP plugin works the same way except that it hands the work off to a separate process (or over the network), and may need more time (more latency) to do it, but its the same as any other instrument plugin in that regard. An external instrument has to send actual midi bytes over a midi cable and wait in real time for audio to come back. VEP does not work that way.
Sure, but most DAWs see VEP the same way, at least DP treats networked plug ins like VEP and UA etc. the same way it treats external instruments. I'm all in on the idea that Logic's smooth buffering is why it's handling VEP better than the others that are not able to pre render VEP tracks.
Well we don't really know what Logic or any of them are doing internally. But what I am saying is that Logic makes use of the full multi-core capability of the machine as best it can....when you are mixing down tracks. It may very well be that in many cases a single channel can only use one core at a time anyway, but Logic can do smart things with how it uses all the cores across channels, etc.. That is what VEP does too. But when Logic arms a track, it dedicates a core to that one track and that's it. this much we do know.
I've only been given clues:
One of the Logic developers used to stop by OSXaudio.com before it died as a forum, and iterated along with Urs Heckman that Logic was polling tracks etc. at a lower rate than Live, had a larger extra buffer on unarmed tracks etc. This added up to better CPU performance.
On a similar note MOTU guys stated at motunation that with NextGen PreGen™ (lol at the market speak!), it was much smarter to take instances of Kontakt and separate out instruments into their own tracks, since pregen would not work on multi out instruments, but would free up resources on single out Kontakt tracks. They mentioned that DP assigned CPU on a track by track basis and claimed that's how all DAWs do it. that you're not going to have a single track that has two CPUs working on it. So evenly distributing CPU heavy plug ins over tracks is smarter than stacking a single Kontakt instance with heavily scripted instruments. I "tested"
this myself by loading a couple heavy duty Cinesample libraries into one Kontakt instance on one track and wondering why my CPU was crashing..
As I said before, my test did not involve any armed tracks...well.. unless I accidentally had Reaper tracks armed that is always possible. If so then I need to retest reaper. How do I make sure that not tracks are armed in reaper? But in any case, in my results, Reaper did not trash Logic...so...
The red Record button on the track, should not be lit red.
Lower CPU refinement is not the point. You would want to add a lot more tracks in order to get the CPU as high as possible and in your case you would want to try to find the "max" using lower CPU plugins. the point is that if the CPU is busy churning away on the plugins for most of it..then you aren't comparing the DAW's that much anymore. For example, if you're using 60% CPU and 55% of that is happening inside the Diva plugin, then whether you put Diva in Logic or Reaper, you're mainly seeing Diva's cpu performance. By using lower Cpu plugins and adding a lot more of them, then the DAW's actual mixer framework code will be using more of the CPU and you'll compare the two systems.
Mostly what you get with heavier plug ins, is CPUs with no overhead left for other plug ins. I would be willing to bet though that I could load those 9 instances in DP and Logic with light CPU plug ins, because probably the CPUs are at 70-80%, enough to where they will not load any more instances of Diva. So in that sense you have a point, it's possible that Reaper in my tests is loading CPUs at a more refined rate than DP or Logic therefore getting more than 12 instances with it's Adaptive FX processing, but that it will not be able to handle as many extra FX on those same tracks.
Like I said, your results with Reaper do not match mine, and I'm not sure why at the moment. If the difference is that Reaper can max out to more tracks somehow then Logic can, ok...might be possible if you say so. What I can say is that in playing 100 tracks, it was not trashing LogicPro, the other way around.
Some of it is VEP, I do believe that Logics process 's for saving CPU is more friendly towards what are traditionally unfriendly processes (towards pre rendering) like VEP. I have VEP here, so I can test that as well, are you running it on the same or a separate machine?
Test Logic with a native plug in VS Reaper with Adaptive FX processing and I'm certain Reaper will beat Logic. It's not by enough to switch or anything, it's just interesting how all this stuff works to me.