import an audio file to an empty montage, align clip start to start of montage
add some plugin processing (it doesn’t appear to matter what plugins; I’ve been using UAD Native 670, Pro-L2, and Ozone 11 Maximizer with presets for testing after I noticed the problems; further details available on request if you can’t reproduce it)
render 64-bit float WAV file (matches my plugin processing setting) for the entire montage
import rendered file to null test track, align manually (they should have identical start points)
If you press play from the beginning of the montage, it shows a deep (but not perfect) null for the entirety of playback, around -116dB on the WL master meter. I’m surprised it’s not -inf, but I’m not particularly worried based on the plugins I chose to test (ozone at least may use nondeterministic math for the release timing).
If, at any point, I jump to a different point in time or if I start playback anywhere other than the beginning of the montage, the null is only to around -35 or -40 on the master meter.
The behavior is the same whether the file is rendered offline or in real time. Trying to null just the offline and real-time renders gives the same behavior.
If you start playback in the middle of a song, the plugins must transition from inactivity to activity, that is, from virtual silence to actual samples. Since most plugins, when processing a sample at time ‘T’, consider the previous samples for their computation, it’s natural that the result is “much different” compared to the rendered file, where the sample at ‘T’ is the cumulative result of all samples since the start of the song. Of course, sample ‘T’ has no direct relation to sample ‘0’, but sample ‘T’ is influenced by sample ‘T-1’, which in turn is influenced by sample ‘T-2’, and so on, back to 0. Naturally, the influence of 0 on T is very small, but with high-precision processing, like 64-bit, this influence is not lost.
If you render the montage with the null track ON, and monitor the resulting WAV file (not the montage), you should not observe as much of a difference when you jump across that .wav file.
I knew that about previous samples, but I didn’t know it was that drastic.
It makes me wonder what the “Plug-in warm-up” setting is actually doing, but that’s a curiosity.
There’s a part of me that wonders if there was a way for WL to render about a second or two of audio from before the playhead when you press play while a null test track is on to minimize this effect. It seems like this situation is almost exactly what it was designed for, and it’s not particularly useful unless you render it again, as you described, which is a fine workaround that just takes some time.
That probably shouldn’t be default behavior. Even with a very fast computer, it would at least make the interface seem to stutter or lag. But, it would make the null test tracks more useful. Maybe an extra button on the null tracks to toggle that behavior, if a second or two is enough to mitigate that issue.
ETA: it also makes me wonder why it seems no one has noticed this effect when they’re actually working on a track (in any context). Differences at -40 are small, but a lot of people claim to hear much smaller differences. If this issue comes up every time you start playback from a different spot…does that mean we’re all deluding ourselves about what we can hear, or is something else going on?
That’s different. This option injects silent samples into the plugin before processing, then cuts them out later. A well-done plugin doesn’t need that option. However, a few plugins yield better starting samples if their first samples to process are silent rather than actual samples.