A good time to clarify the distinction between dithering and truncating. Applying 16-bit dither does not throw away any resolution. Typically, the immediate next step is truncation, which does throw away the data. In a textbook case of dithering, the steps would be 32-bit float -> 24-bit fixed -> apply 16-bit dither (data still contains 24-bits of resolution)-> truncate to 16-bits.
Yes, my post was badly worded, sorry - "Resolution" is such a b
*ard word when it comes to digital audio. 🙂
But presumably, as, eg the L2 is converting the stream to a 16-bit, possibly fixed point, we end up with numbers that are much lower down, still representing out 16-bit audio, but still being inside a 32f number representation? And if we are still in 32f, doesn't Logic again have to downconvert in a bounce?
Given this, from a DSP standpoint, is that down conversion something that will leave that 16-bit alone, or does it need to be dithered again?
I'd like to understand what's going on here better...
I agree. But applying 16-bit dither in the middle of a 32-bit float stream isn't necessarily the same thing. The important question is whether or not the ultimate 16-bit fixed output will be altered downstream from the dither. My assumption is that as long as faders are left at unity and no processing is done, the 16-bit output at the end will be unchanged. But I may be wrong...
I simply do not know enough at the maths level, which is why, as I stated, this is a little out of my depth - some I'm grateful to have some other people step in. 🙂
If the fader is at unity, then it's probably ok to assume no more signal processing is going on inside the mixer. We don't know for sure, but I'd say it's probably a safe enough assumption. However, I don't know what happens in the bounce stage...
Here's the thing, though... if you're correct, Bee Jay, and those resulting 16-bits get altered post-dither (even with no deliberate processing or fader manipulation), then you're essentially saying that it's impossible to apply 16-bit dither properly in a 32-bit floating environment.
No, not saying that, I'm just not sure what happens afterwards. It's clearly not impossible, as you can do it in a plugin as contributors here have been. I'm simply not sure that's it's wise. It
may be proved to be perfectly ok, it may not. However, doing the dither in the bounce dialog does conveniently bypass any confusion, hence the recommendation 🙂
Since all the major native plug-in environments are 32-bit float (AU, RTAS, VST), we'd then have to conclude that all of those native dithering implementations by Waves, iZotope, etc., are worthless, eh ?
No, not at all. Remember, a DAW is not the only environment for plugins. A wave editor environment working on audio files is a very different environment to a DAW implementation and doesn't have quite the same issues - as you are mostly destructively processing a file at the native number representation of the file, DSP headroom aside.
Can somebody PM Justin C? He's a good guy to come in on this - he always helps clear up mathmatical confusion... Justin!!!