1 2 3 Previous Next 30 Replies Latest reply: Feb 18, 2010 4:54 AM by Bee Jay Go to original post
  • 15. Re: Logic Pro 9 dither chain
    Bee Jay Level 6 Level 6 (10,895 points)
    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!!!
  • 16. Re: Logic Pro 9 dither chain
    Richardttt Level 2 Level 2 (160 points)
    Waves plugs only have 24 bits as their highest selectable bit rate. I have never seen any that have 32 bit float.

    You can apply these and other plugs to truncate/dither effectively, if the DAW allows you to place a plug post master fader like Digital Performer does.

    Logic's Bounce POW-r algorithm was applauded by mastering wizard Bob Katz previously:

    "One of the first products to include POW-R was a hardware dithering unit from Weiss engineering; in a review of this product in 1999, mastering engineer Bob Katz spoke highly of the new algorithm declaring it ‘an incredible achievement" -wiki

    I use POW-r in Logic's bounce window to truncate and dither most of the time. But I was curious if/how/why Waves plugs could be used effectively in Logic to truncate/dither.

    ======
    Richard
  • 17. Re: Logic Pro 9 dither chain
    jnashguitar Level 2 Level 2 (345 points)
    Bee Jay wrote:
    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?


    I'm no expert, either. I have studied the underlying math a bit, but I don't know the details of Logic's AU implementation, so my opinions are marginally useless

    Here's what we know for sure: L2 (or whatever plug-in being using for dither) is adding 16-bit (in this case) dither to a 32f representation of the audio. The plug-in may or may not be zeroing out all the less significant bits, and it hopefully doesn't matter either way, because the point is for the host to truncate the result ASAP, throwing away those lower bits anyway. Presumably, the plug-in is smart enough to apply the fixed-point dither in a reasonable way to the floating-point data it's receiving.

    It seems like a fair assumption to me then that the ultimate output of our dither plug-in will be a 32f stream where the 16 most significant bits are exactly what we want: dithered audio ready to be truncated to a fixed 16-bit format.

    At this point, the question is whether the audio can make it through the bounce process without being altered.

    Since Logic's bounce feature allows you to turn the dither on or off, I'm hoping that means you get absolutely no dither when it's off. The possible confusion is since Logic doesn't allow bouncing to 32f, no matter what output type you choose, you should dither in all cases (even if bouncing to a 24-bit file... in that case you'd want to apply 24-bit dither to the 32f stream). Hopefully, with Logic's dithering turned on, Logic applies the correct amount of dither based on the output file wordlength. And with dithering turned off, Logic applies no dithering at all, not even 24-bit dithering, the idea being that although you do need the dither, Logic allows you to turn off its internal dither so you can use your own.

    As long as Logic adds no dither, the 16-bit result from our dither plug-in should remain intact. The potential problem case would be if the dithering plug-in failed to zero out the LSBs, and Logic applied 24-bit dither on top of that output... that could conceivably affect our desired 16-bit output.

    Be great if anyone knows enough about the internal workings of Logic to confirm all of this. For what it's worth, the iZotope dithering manual has instructions for use with Logic, and it simply says to put the plug-in on the output fader, and do a normal bounce with dithering turned off.

    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?


    Again, not sure, but I don't see any reason the conversion from 32f to 16-bit fixed should mess with the 16 LSBs, unless Logic is forcing additional dither, which would seem at odds with the apparent "off" switch on its dither. But I'm not certain, and I haven't tried to test this...

    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.


    Another interesting wrinkle... I'm not sure this is the way wave editors work. I thought most DSP was done in floating-point (even in a destructive wave editor--do Audio Units even have the ability to accept multiple data types ?) I've always assumed the input and output of AUs was always 32f, so it was the host's responsibility to convert the data to and from that type if necessary, and if the AU used another representation internally, it performed any necessary conversion and dithering automatically (e.g. a "double-precision" plug-in would need to zero-extend the input, and dither and truncate the output).

    Can somebody PM Justin C? He's a good guy to come in on this - he always helps clear up mathmatical confusion... Justin!!!


    Great idea... the virtual beer is on me (possibly literally...)!

    -James
  • 18. Re: Logic Pro 9 dither chain
    jnashguitar Level 2 Level 2 (345 points)
    jnashguitar wrote:
    Again, not sure, but I don't see any reason the conversion from 32f to 16-bit fixed should mess with the 16 LSBs, unless Logic is forcing additional dither, which would seem at odds with the apparent "off" switch on its dither. But I'm not certain, and I haven't tried to test this...


    Typo... I meant the conversion from 32f to 16 fixed shouldn't mess with the 16 MOST significant bits.

    -James
  • 19. Re: Logic Pro 9 dither chain
    Bee Jay Level 6 Level 6 (10,895 points)
    It seems like a fair assumption to me then that the ultimate output of our dither plug-in will be a 32f stream where the 16 most significant bits are exactly what we want: dithered audio ready to be truncated to a fixed 16-bit format.


    Yes - that's my understanding of what's happening.

    The possible confusion is since Logic doesn't allow bouncing to 32f, no matter what output type you choose, you should dither in all cases (even if bouncing to a 24-bit file... in that case you'd want to apply 24-bit dither to the 32f stream).


    Exactly.

    And with dithering turned off, Logic applies no dithering at all, not even 24-bit dithering, the idea being that although you do need the dither, Logic allows you to turn off its internal dither so you can use your own.


    Yes, makes sense.

    As long as Logic adds no dither, the 16-bit result from our dither plug-in should remain intact.


    Assuming no side-effects of going from 32f to 16/24bit with no dither.

    The potential problem case would be if the dithering plug-in failed to zero out the LSBs, and Logic applied 24-bit dither on top of that output... that could conceivably affect our desired 16-bit output.


    Yeah, probably need to get a bitscope plugin here between the input and output of the plugin and see what's what, otherwise we're just guessing, unless the L2 manual goes into these details...

    For what it's worth, the iZotope dithering manual has instructions for use with Logic, and it simply says to put the plug-in on the output fader, and do a normal bounce with dithering turned off.


    Ok, one would certainly think iZotope know what they are talking about, because those guys are fricken gurus, they really are. This suggests that, *providing you don't touch the master fader* (which is potentially a failure point and ugly imo), that there isn't a fundamental problem doing that dither in the plugin. That's interesting...

    Again, not sure, but I don't see any reason the conversion from 32f to 16-bit fixed should mess with the 16 LSBs, unless Logic is forcing additional dither, which would seem at odds with the apparent "off" switch on its dither. But I'm not certain, and I haven't tried to test this...


    Yeah, this is where I'm fuzzy as well, and without actually knowing, this would just be conjecture on my part, and thus not very meaningful.

    Another interesting wrinkle... I'm not sure this is the way wave editors work. I thought most DSP was done in floating-point (even in a destructive wave editor--do Audio Units even have the ability to accept multiple data types ?)


    Yes, some plugins convert incoming audio to 24-bit fixed point, which is why you can clip them. Some early Waves plugins do this, for example.

    Wave editors I'm fairly sure will hold the native file at the resolution of the file - eg 16 or 24-bit fixed point format, and if you DSP process, say a plugin, it will process the data at whatever resolution makes sense (eg 64-bit if necessary), then downconvert and dither the output back to the 16 or 24-bit fixed point file. I don't think they load all incoming files into 32f as a rule, and this would seem a pointless excercise - you wouldn't, for example, be able to load in a wav file, truncate and save it out losslessly otherwise - the sample data would change if it's come back out from a 32f dithered number format.

    I've always assumed the input and output of AUs was always 32f, so it was the host's responsibility to convert the data to and from that type if necessary, and if the AU used another representation internally,


    Logic feeds in a 32f value, and expects a 32f value back out. Whatever the plugin does to the data internally Logic doesn't care about. The plugin could convert to an 8-bit binary stream internally, and as long as it gave Logic what Logic expected, there wouldn't be a technical problem.

    it performed any necessary conversion and dithering automatically (e.g. a "double-precision" plug-in would need to zero-extend the input, and dither and truncate the output).


    Yes - this is up to the plugin. Some of Logic's plugins themselves do this, they process in 64-bit precision, and downconvert and dither the signal on the way out.

    Message was edited by: Bee Jay
  • 20. Re: Logic Pro 9 dither chain
    Murray Campbell Level 1 Level 1 (30 points)
    I tried a few bounces using the Apogee UV22HR with the dither in the Sonnox Limiter left at 24 bit and TDPF.

    I'm happy with results.

    One issue which may be slightly off topic but ....

    In this discussion both you Bee Jay and you James have mentioned having the master fader in Logic at 0db when bouncing for mastering a CD.

    Is that important and if so why please ?

    I've found that if I have the master fader at 0db I sometimes get a red light coming on in Toast Titanium Pro (10.0.6).
    You know what I mean. You have your tracks loaded in Toast ready to burn and you play them and the level meter in Toast does its thing.
    At some peaks I may get a red light at the top of the meter.

    There is no audible distortion or clipping but I hate seeing red lights

    I found this will happen even if I have the output on the Sonnox Limiter set at something like - 0.2 db.

    On the other hand if I have the Sonnox at 0 db and the master fader in Logic at -0.1 db I do not get red lights in Toast ?

    What does this mean and does it matter ?

    cheers

    Murray
  • 21. Re: Logic Pro 9 dither chain
    Bee Jay Level 6 Level 6 (10,895 points)
    n this discussion both you Bee Jay and you James have mentioned having the master fader in Logic at 0db when bouncing for mastering a CD.


    Only for test cases that we were discussing here. There is no problem in general adjusting the master fader, I do it all the time.

    In fact, I've made more than one ranty post about "master fader movement fear" which seems to stem from ProTools users back in the nineties and is something that seems to still endure for no reason other than habit and fear...

    I've found that if I have the master fader at 0db I sometimes get a red light coming on in Toast Titanium Pro (10.0.6).


    I wouldn't really trust Toast. It purely depends how you decide what is an "over". Pro Audio programs usually expect to see something like three 0dBFS values in a row. A consumer program might light a clip light at just one - which isn't technically an over.

    However - there are good reasons why it's suggested that you limit to something like -0.3dBFS, and not 0dBFS, relating to poor CD output convertors and intersample peaks going over - it's possible to clip a DA convertor even if the sample data is below 0dBFS, if the reconstructed waveform goes over 0dBFS.

    So it's good practice to give a small safety margin to avoid some potential unpleasantness.

    I trust Logic more than Toast in matters of audio though... I have no idea what Toast is deciding is an over.
  • 22. Re: Logic Pro 9 dither chain
    jnashguitar Level 2 Level 2 (345 points)
    Bee Jay wrote:
    Ok, one would certainly think iZotope know what they are talking about, because those guys are fricken gurus, they really are. This suggests that, *providing you don't touch the master fader* (which is potentially a failure point and ugly imo), that there isn't a fundamental problem doing that dither in the plugin. That's interesting...


    Here's the thing, though: the iZotope manual shows a picture of the Logic bounce fader with the level set to 0dB, but they don't actually mention the importance of not touching the fader. Odd, because you don't have to be a fricken guru to recognize that volume adjustment will trash your carefully-dithered bitstream. Hoping that's just a manual oversight on iZotope's part, not an indication that they haven't thought the process through thoroughly...

    http://www.izotope.com/products/audio/ozone/OzoneDitheringGuide.pdf

    Yes, some plugins convert incoming audio to 24-bit fixed point, which is why you can clip them. Some early Waves plugins do this, for example.


    You're certainly right about that. The plug-in is a black box, and the internal representation could be anything.

    Wave editors I'm fairly sure will hold the native file at the resolution of the file - eg 16 or 24-bit fixed point format, and if you DSP process, say a plugin, it will process the data at whatever resolution makes sense (eg 64-bit if necessary), then downconvert and dither the output back to the 16 or 24-bit fixed point file.


    Right... I was just suggesting that all of the dithering conundrums we're discussing may be equally applicable to wave editors. Open a 24-bit file in a wave editor and apply a 16-bit dither plug-in... same issues apply: in what format does the processing actually take place, and does the editor automatically apply any dither that might interfere ? Seems like even in a wave editor, to apply dither manually, you need a preference to disable automatic dithering...

    -James
  • 23. Re: Logic Pro 9 dither chain
    Murray Campbell Level 1 Level 1 (30 points)
    Thanks Bee Jay.

    I understand what you are saying 100% about Toast.
    I don't "trust it " as such but I hate the red lights !

    I think I will try more like -0.3 in the Sonnox and go back to 0db in Logic.

    The project I'm finishing off now is the first mastering job that will go to mass production I've done with Logic and the Sonnox Limiter.

    I converted from Cubase SX to Logic only about a year ago.

    For all my own CDs I've always used a pro mastering engineer. ;-))

    With SX I mastered 4 Cds for clients and so I knew what levels produced certain results. In those days I used Waves L1 ultra maximiser and was used to it.

    I'm still getting used to the Sonnox Limiter and it has a lot of paramters to get a grip on.

    Very happy withe Apogee UV22HR though, I'm sold.

    cheers

    Murray
  • 24. Re: Logic Pro 9 dither chain
    jnashguitar Level 2 Level 2 (345 points)
    Yeah, Murray, I'll give a rousing 2nd to everything Bee Jay just wrote... no problem at all adjusting the master fader. The only concern is if you're dithering manually--the dither needs to be the last thing that happens to the data, so no fader adjustments after the dither.

    -James
  • 25. Re: Logic Pro 9 dither chain
    Bee Jay Level 6 Level 6 (10,895 points)
    I was just suggesting that all of the dithering conundrums we're discussing may be equally applicable to wave editors.


    They may be, of course, and once again I'm only intuitively guessing here, which is the best I can do without knowledge of the internals (and no, I'm not going to trawl through the source code of Audacity )

    In the main, they are fundamentally different concepts, but, for example, Wavelab is much closer to a DAW implementation than, say Peak, in that WL is always running the samples through it's master section, which is analogous of a 32f DAW mixer.

    Open a 24-bit file in a wave editor and apply a 16-bit dither plug-in... same issues apply: in what format does the processing actually take place, and does the editor automatically apply any dither that might interfere ? Seems like even in a wave editor, to apply dither manually, you need a preference to disable automatic dithering...


    Indeed. I'm rapidly turning into a dithering idiot...
  • 26. Re: Logic Pro 9 dither chain
    jnashguitar Level 2 Level 2 (345 points)
    Bee Jay wrote:
    Indeed. I'm rapidly turning into a dithering idiot...


    I'm with ya!

    Hey, if anyone's mystified by this dither discussion and wants to learn more, check out the iZotope guide: http://www.izotope.com/products/audio/ozone/OzoneDitheringGuide.pdf

    It's by far the clearest and simplest resource I've seen to explain this confusing subject.

    -James
  • 27. Re: Logic Pro 9 dither chain
    Murray Campbell Level 1 Level 1 (30 points)
    I'm a reformed ditherer James !

    No more third party plugs for dithering....only the Logic bounce options.

    cheers
  • 28. Re: Logic Pro 9 dither chain
    Bee Jay Level 6 Level 6 (10,895 points)
    Here's the thing, though: the iZotope manual shows a picture of the Logic bounce fader with the level set to 0dB, but they don't actually mention the importance of not touching the fader. Odd, because you don't have to be a fricken guru to recognize that volume adjustment will trash your carefully-dithered bitstream.


    From the manual:

    "It's easy to make mistakes -- there was one time at iZotope when we thought we had broken our dither in an Ozone alpha version. We finally noticed that the problem was just that the level adjustment in the host app we were testing with had been turned up 1 dB (an inadvertent mouse click in the wrong spot most likely), which will completely mess up any dither."

    and

    "(never apply gain change after dither)"

    and

    "The rule most people know about dithering is don't touch the signal at all after it's been dithered. No fades, no volume change, no normalizing, no effects, no panning. Nothing. OK, the one thing you can do is trim the ends. But no actual processing of the signal.

    This is easier said than done in some cases. First of all, most host apps have their master fader after the master effects slot. So, if you adjust the volume with the output fader of the host app, that level adjustment is being applied to the dithered signal, and that's bad. Do any fades or level adjustments at 24-bit destructively before dithering.

    One exception that we know of is Wavelab, which has a special "dither" slot which is after the output faders. Go to Options-Master Section Plug-ins and check the PM box next to Ozone and it will appear in the Dither effects section."


    and, in reference to using dither via Ozone:

    "In general, though, be sure that:
    1) Output faders in the host app are set to zero/unity gain.
    2) Dither is turned off in the host app.
    3) There are no effects after the dither."


    and

    "The most important point is to find out how to set dithering in the app, and turn it off (assuming you're using Ozone for dithering). And don't do any level changes after dithering, including setting the master fader level to anything but 0 (unity gain)."

    This is also interesting regarding our conversation:

    "A plug-in can not change the actual format of the audio it receives. Meaning, it can't get audio in 24 bit format and send it back to the app in true 16 bit format. What happens is that Ozone sends back the same number of bits of audio, but it zeros out all the bits below 16 (or whatever bit depth you select in Ozone). So Ozone applies dither to the 16th bit, zeros out the bits below that, and the host app doesn't care.

    When you actually convert the file to a 16-bit wave with the host app, you can just tell the host app to truncate. Tell it to throw away the bits below the 16th one and don't try to dither the 16th bit. Ozone has already dithered the 16th bit, and the ones below that are zero so they can just be thrown away (truncated by the host app).

    This rule also emphasizes why it's important to do absolutely no level changes or processing of the audio after you've applied Ozone dither. We've carefully dithered the 16th bit, and made the bits below that zero. If you do any processing, the host app will use the 16th bit, but also all the bits below it. It's all ruined."


    That pretty much confirms that, subject to the restrictions noted (don't touch the master fader etc), you can dither in a plugin on the master fader, as long as you are careful and don't dither on the bounce, and that just truncating on the host is fine in this case.
  • 29. Re: Logic Pro 9 dither chain
    jnashguitar Level 2 Level 2 (345 points)
    Bee Jay wrote:
    From the manual:


    Yeah, but seriously... I read this manual a few years ago... no, seriously...

    Thanks for all the info, Bee Jay!

    That pretty much confirms that, subject to the restrictions noted (don't touch the master fader etc), you can dither in a plugin on the master fader, as long as you are careful and don't dither on the bounce, and that just truncating on the host is fine in this case.


    Good to know!

    -James