The No.1 Website for Pro Audio
 Search This Thread  Search This Forum  Search Reviews  Search Gear Database  Search Gear for sale  Search Gearslutz Go Advanced
Good dither practices, what are yours? Dynamics Plugins
Old 17th January 2017
  #121
Gear Addict
 

Quote:
Originally Posted by Bob Olhsson View Post
If it isn't completely random between channels, there is a noticeable loss of imaging.
On this point, I wanted to compare a few notable dithers & measure correlation using Voxengo Span... all dithers set to 24 bit, no noise shaping, and I've added a fair bit of Airwindows BitShiftGain to get the level up:


Airwindows TPDF


Kazrog Master Dither


Fabfilter Pro-L


Ozone 7



Focussing just on the correlation meter, looks like the Kazrog one actually isn't random at all between the L & R channels? The raw dither noise itself does sound "mono" compared to the others in this test.

Fabfilter and Ozone look like the only ones that feature total non-correlation between the L & R channels.
Old 17th January 2017
  #122
Gear Maniac
 
Yuri Korzunov's Avatar
 

Bob,

Quote:
Originally Posted by Bob Olhsson View Post
I'm talking about not allowing the dither to be somewhat identical between the different channels. This would have to do with exactly how the random numbers called for are actually being generated. Pseudo-random is supposed to be common.
Computer generate pseudo-random.

Quote:
Originally Posted by Bob Olhsson View Post
Something else to consider when rounding (I'm remembering all of this from observing conversations 25 years ago.) is that I understand computer FPU routines default to bankers' rounding which is important for financial calculations but should be disabled for accurate signal processing calculations. I believe the problem created is a DC offset.
Better way perform DSP in float point format (32 or 64 bit) - from captured signal to master (including post production).

At latest stage (convert to 16 bit for distribution, as example) added dithering and further applied rounding.

There is 3 types of rounding:

1. to nearest integer (5.1 > 5, 5.6 > 6)
2. to nearest low integer (5.1 > 5, 5.6 > 5)
3. to nearest high integer (5.1 > 6, 5.6 > 6).

In C language rounding #2 is used as default.

For converting bit resolution, need use rounding to nearest integer (#1). It give minimal error.
Old 17th January 2017
  #123
Motown legend
 
Bob Olhsson's Avatar
 

Kazrog just flunked that test and I hear the narrowing at 24 bits on the big band record I'm mastering! It also doesn't truncate!

Chris could have a rounding problem with his TPDF that could cause the correlation we see. His pauldither doesn't appear to narrow.
Old 17th January 2017
  #124
Motown legend
 
Bob Olhsson's Avatar
 

Quote:
Originally Posted by Yuri Korzunov View Post
...Computer generate pseudo-random.

There is 3 types of rounding:

1. to nearest integer (5.1 > 5, 5.6 > 6)
2. to nearest low integer (5.1 > 5, 5.6 > 5)
3. to nearest high integer (5.1 > 6, 5.6 > 6).

In C language rounding #2 is used as default.

For converting bit resolution, need use rounding to nearest integer (#1). It give minimal error.
That sounds like what they were talking about on the rounding. I remember being told pseudo-random is an audible problem.
Old 17th January 2017
  #125
Lives for gear
 
Hyder boy's Avatar
 

For the love of God, I hope one of you dither brainiacs can break down proper implementation for someone like myself, who is interested in the subject, but has just a basic understanding of the subject.

For me, working in protocols 12, using uad, waves, sound toys, etc. plugins.

As well as hardware inserts.

I get dithering down to 16 from 24. But before? After? Hardware inserts is making my head hurt!
Old 17th January 2017
  #126
Gear Addict
 

Quote:
Originally Posted by Bob Olhsson View Post
Kazrog just flunked that test and I hear the narrowing at 24 bits on the big band record I'm mastering! It also doesn't truncate!

Chris could have a rounding problem with his TPDF that could cause the correlation we see. His pauldither doesn't appear to narrow.
PaulDither gives much the same outcome as TPDF:
Old 18th January 2017
  #127
Lives for gear
 

Quote:
Originally Posted by chosen one View Post
so if I understand right, in a mix where I work at 24bit (or even at 32bit recording setting in preferences) with in/out sample rate 96000 ...
This is what you are not getting - the key difference(s) between 24bit and 32bit. Sample rate doesn't come into it. (Not thru this door).

24bit data is an exact representation of a contiguous set of integers from all-zeros to all-ones. 32bit data is a representation of (crucially: a subset of) rational numbers - ie numbers which can be rewritten as fractions using integers - but which are represented by in machine form in a mantissa/exponent notation consisting of three elements: a sign, a mantissa (normalized to a decimal point format), and exponent. The range of numbers represented is different, as are the computer internal numeric formats and the software codes to process them. In addition, a significant constraint on non-integer in computers is that unlike in the real world, where one can write as many digits after the decimal point as one needs (consider: the expansion of pi), the prescribed computer format(s) do not allow this.

The DAW/hardware interaction involves mapping these two different number domains - integers to floats on the AD way in, and floats to integers on the DA way out. This is because the converters use integers, but the software processing (eg mixing, but even amplitude change) uses floats as it requires a larger set of numbers than the 24bit integers. The contrast of 24 bit and 32bit, which contrasts the data width, is not the issue. Those width issues could be solved with 32bit, or larger, fixed point data formats and codes, but - and it's a big BUT - you would need a special maths coprocessor to make that work usefully in real time as Intel's (now IEEE also) solution has not given us that). The practical problem is that a one-to-one mapping cannot be done exactly between these sets of numbers as represented in a computer.

The dither issue can be construed about how best audibly to deal with two classes of error that arise as a result. One is errors in the mapping between the sets of integers and floats due to basic hardware incompatibility between converters and processors. The other is errors in the mapping of the results of floating point computations back into a floating point representation. (No need to go into this here - Wikipedia is quite useful on this topic, and the strange situation of computer arithmetic which fails the Laws of Arithmetic).

With all that in mind, hopefully what Bob has been advising in this thread makes more sense.

PS. At which point it dawns that (a) hey wouldn't it be nice if converters knew about floating-point numbers? or (b) hey wouldn't it be nice if some smart guys could come up with a computer numeric representation which preserved a one-to-one mapping between fixed and floating point data formats? Yup. But it's like saying "If I wanted to go <there>, I wouldn't start from <here>". Still, things are better now than they used to be. Once upon a time every computer maker had their own representation for numbers, which made porting codes a potential minefield. Now all we have to do is hope Intel informs us of the bugs in their maths codes.

PPS. O/T but having implied sampling is not involved in the dither problem, spare a thought about what conversion errors due to AD jitter throw into the mix - tantamount to a floating point conversion numeric error?
Old 18th January 2017
  #128
Motown legend
 
Bob Olhsson's Avatar
 

Quote:
Originally Posted by chosen one View Post
I already own waves l2, fabfilter pro-l, dmg limitless and kazrog master dither and want to try the airwindows dither as well since many recommended here on gs (pauldither and/or tpdf dither?). .
I was very disappointed to find kazrog master dither is mono dither. The three limiters are all pretty good. I thought Pauldither was the best sounding of chris's. For writing files. I generally use Ozone's dither, Oxford dynamics or PSP X-dither depending on which one sounds best.
Old 18th January 2017
  #129
Lives for gear
 
JayTee4303's Avatar
Quote:
Originally Posted by Hyder boy View Post
For the love of God, I hope one of you dither brainiacs can break down proper implementation for someone like myself, who is interested in the subject, but has just a basic understanding of the subject.

For me, working in protocols 12, using uad, waves, sound toys, etc. plugins.

As well as hardware inserts.

I get dithering down to 16 from 24. But before? After? Hardware inserts is making my head hurt!
Mouthfulls of water here, often enough I dunno if I'll float or sink, but I'll take a shot.

Dither:

1. Before changing sample rates.

2. Before converting D/A, IF the audio has been altered in any way since A/D conversion. Applies to monitoring, or D/A to get out to an OTB processor, "External or Hardware Insert."

3. Before rendering audio that has been processed since capture.

4. After processing, IF SR is changed as a result of processing, but only on processed audio, not the whole mix.

...ONLY IF, the DAW isn't already doing it for you, cuz you don't wanna stack dither, unnecessarily.

However, stacking dither, when the alternative is truncation error, is widely perceived preferable.

I think.

Lots-o-potential gaps here, and some of these may well need finer detail, even out-right correction, but that's where this thread has led me, so far.

Except, there's a brain or two so far, that seems to say, dither at SR conversion ONLY, ignore the rest, ya can't hear it. Not sure where AD conversion fits into this viewpoint, but since A/D DOES change SR...from XX to infinite...AND since you'll be making decisions based on what your analog monitors play for you, be it trunc errors or dither, I' ll SWAG a "Dither Here Too" till otherwise instructed.

Last edited by JayTee4303; 18th January 2017 at 02:19 AM..
Old 18th January 2017
  #130
Lives for gear
 
Hyder boy's Avatar
 

Quote:
Originally Posted by JayTee4303 View Post
Mouthfulls of water here, often enough I dunno if I'll float or sink, but I'll take a shot.

Dither:

1. Before changing sample rates.

2. Before converting D/A, IF the audio has been altered in any way since A/D conversion. Applies to monitoring, or D/A to get out to an OTB processor, "External or Hardware Insert."

3. Before rendering audio that has been processed since capture.

4. After processing, IF SR is changed as a result of processing, but only on processed audio, not the whole mix.

...ONLY IF, the DAW isn't already doing it for you, cuz you don't wanna stack dither, unnecessarily.

However, stacking dither, when the alternative is truncation error, is widely perceived preferable.

I think.

Lots-o-potential gaps here, and some of these may well need finer detail, even out-right correction, but that's where this thread has led me, so far.

Except, there's a brain or two so far, that seems to say, dither at SR conversion ONLY, ignore the rest, ya can't hear it. Not sure where AD conversion fits into this viewpoint, but since A/D DOES change SR...from XX to infinite...AND since you'll be making decisions based on what your analog monitors play for you, be it trunc errors or dither, I' ll SWAG a "Dither Here Too" till otherwise instructed.
Hey thanks
I get most of it, I always dither when bouncing final to 16 bit. This business of dithering when using hardware inserts (specifically pro tools here) has me confused.
Old 18th January 2017
  #131
Gear Nut
 

because Ableton is 32bit internal processing, for the highest possible quality always work at 32bit -this includes everything, "one shot" samples, loops, resampling, rendering tracks within the project, audio and plugins etc., everything should begin as 32/96 and stay there until the end, including the stereo mix bounce for mastering (this according to Ableton manual).

So if I am working with 32/96 project settings from start to finish (2 projects total: one project for tracking and mixing and then one separate project for mastering), if/when I resample to save cpu power (using Abletons right click on file "Resampling" option), always resample/render at the same 32/96 rate with no dithering applied (better to export and re-import at 32x96 than resample in real time). In this case, I will only ever apply 24bit dither when monitoring the mastering session and rendering the master wav files to 24 bit (and 16bit dither for the 16/44 wav). Noise selections on final bounces are chosen by ear preference (better would be to export the master as 32x96 and use src offline to create 24bit dithered delivery files).

*If I was working with 24bit start to finish, as was originally proposed, then I would indeed be better off dithering 24bit on all of the resampling and rendering steps. But I wont be working at 24bit in Ableton anymore.

Last edited by chosen one; 18th January 2017 at 12:45 PM.. Reason: case closed ;)
Old 18th January 2017
  #132
Lives for gear
 
Brian Campbell's Avatar
 

Quote:
Originally Posted by Bob Olhsson View Post
I was very disappointed to find kazrog master dither is mono dither.
Do you mean the same dither noise common to all channels?
I liked that the Kazrog plug has a 5.1 version.
Old 18th January 2017
  #133
Motown legend
 
Bob Olhsson's Avatar
 

I haven't tested the 5.1.

The "you can't hear it" argument is meaningless because virtually all digital audio will be processed additionally and truncation distortion accumulates.
Old 18th January 2017
  #134
Motown legend
 
Bob Olhsson's Avatar
 

The only time 64 bit Pro Tools dithers to 24 bits is when you export a 32 bit file to 24 bits. The only DAW I know handles feeds to converters properly is Samplitude.
Old 18th January 2017
  #135
Gear Addict
 

Quote:
Originally Posted by chosen one View Post
@mustgroove I wonder how L2 and Limitless stack up with this measurement graphs?
Limitless:



Also wanted to try the dither in Sonnox Dynamics, given Paul Frindle's comment about a 1-pole highpassed TPDF dither (which is the basis for the Airwindows' PaulDither that Bob likes)...

Looking at the results, it doesn't look like the dither in Sonnox Dynamics is highpassed at all, it just looks like flat TPDF dither... but, this dither produces a non-zero value for "R/L", showing that there's a small level difference between the L & R channels, whereas every other dither reads 0 for this value.

Old 18th January 2017
  #136
Gear Addict
 

Testing Goodhertz Good Dither as well, it also seems to be a "proper" uncorrelated dither for the most part...

Watching the SPAN correlation meter in real time with these various dithers, the meter always has a small amount of "movement" (which I guess is the result of the random nature of dither), but for this Goodhertz dither the random fluttering of the correlation meter is always skewed to the left (<0)... with other dithers (Ozone 7 for example), the random "fluttering" is always firmly centred around 0 (sometimes >0, sometimes <0)...

Old 18th January 2017
  #137
Gear Addict
Quote:
Originally Posted by FabienTDR View Post

All modern DAWs and plugins use a standard floating point format, which is radically different to fixed point. You can't dither floating point. Truncation effects are generally rather irrelevant in this world, it's hardly measurable.

How does one add dither before the hardware insert effectively if the dither plugin is still residing in the floating point processing of the DAW?
Or at what point does the DAW convert to fixed point and is it possible to add a plugin there?

Asking out of my own ignorance.
Old 18th January 2017
  #138
Gear Maniac
 
Yuri Korzunov's Avatar
 

Quote:
Originally Posted by Bob Olhsson View Post
That sounds like what they were talking about on the rounding. I remember being told pseudo-random is an audible problem.
Dither is complex of two components: noise and rounding.

If there will applied rounding other than "to closest integer" it cause level bias, I suppose. But may be I mistaken here.

For generating white noise may be used standard programming library procedure or custom one.

Each sample (next random value) is got by calling rand() function.

If we add this value to both channels simultaneously, there will correlated noise.

What are statistical features of rand()'s noise recommended to learn separatelly for each programming tool.
Old 18th January 2017
  #139
Lives for gear
 

Quote:
Originally Posted by JayTee4303 View Post

2. Before converting D/A, IF the audio has been altered in any way since A/D conversion. Applies to monitoring, or D/A to get out to an OTB processor, "External or Hardware Insert."
Atm I'm under the conclusion that you should dither before D/A in any case. That's HW inserts and the master buss. I understood the reason being that the software can process the audio in multiple bit depths. For example REAPER's mixing bit depth is 64 bits. If I understood correctly one should dither because most D/A's are 24 bit.

Please correct me if I'm wrong.
Old 18th January 2017
  #140
Lives for gear
 
XKAudio's Avatar
 

Can someone confirm my understanding of these mad scientists
Dither:
-Before any D/A insert including monitoring

-At the end of the masterbus when bouncing to 24 or 16 bit.

Recommended Dithers plugins?
?

I tried naturalize dither and I thought it colored my mix.

Right now DMG Limitless and Pro-L seem to be fine, but would love a low latency/simplified plugin (that is if i do need to insert it everywhere in my hybrid Mixs)
Old 18th January 2017
  #141
Lives for gear
 
Hyder boy's Avatar
 

Quote:
Originally Posted by XKAudio View Post
Can someone confirm my understanding of these mad scientists
Dither:
-Before any D/A insert including monitoring

-At the end of the masterbus when bouncing to 24 or 16 bit.

Recommended Dithers plugins?
?

I tried naturalize dither and I thought it colored my mix.

Right now DMG Limitless and Pro-L seem to be fine, but would love a low latency/simplified plugin (that is if i do need to insert it everywhere in my hybrid Mixs)
Apparently it's top secret...lol
Old 18th January 2017
  #142
Gear Guru
 
Karloff70's Avatar
 

So, to put it the simplest way possible, dither is needed any time a file of a definite bit depth is made from either floating point or converted from a higher bit depth file.

This will include all hardware exits, as in inserts and outputs, and any bouncing.

But also, as soon as you do any processing the DAW will take a 24bit file and go to 32bit float for the processing. So, needs dithering to get back to solid 24bit.

And dither needs to be random between the channels, and stereo, to avoid messing with your image.

I hope I got that all right.

Soooo, now my next thoughts are, how do the various DAWs deal with this? Seems to me, the ideal would be that ALL those situations would be covered automatically by the DAW and you just had a setting in the preferences where you can choose which dither you want to use, and somehow import different ones. Then you pick the one you like and forget about it from there. Done.

Might have to start another thread, challenging the DAW makers to tell us what theirs is doing and suggesting they do what I just outlined. Unless some already are and I just don't know. Either way I would like to know which DAW does what how in this respect.

Anyone of the more knowledgeable here see anything idiotic in starting such a second thread? Am I missing something glaring? Other than perhaps not many DAW company bods being keen to jump out of the woodwork to tell ...lol...they feckin should be.
Old 18th January 2017
  #143
Gear Maniac
 
Yuri Korzunov's Avatar
 

Quote:
Originally Posted by XKAudio View Post
-At the end of the masterbus when bouncing to 24 or 16 bit.
Traditionally dither need to apply only for DSD, PCM 24 bit (and more) to 16 bit PCM.

If your target resolution is 24 bit and more, dither no need.
Old 18th January 2017
  #144
Motown legend
 
Bob Olhsson's Avatar
 

Quote:
Originally Posted by ZenMaster View Post
Atm I'm under the conclusion that you should dither before D/A in any case. That's HW inserts and the master buss. I understood the reason being that the software can process the audio in multiple bit depths. For example REAPER's mixing bit depth is 64 bits. If I understood correctly one should dither because most D/A's are 24 bit.

Please correct me if I'm wrong.
Almost all signal processing and level change math extends bit depth to infinity. Software and hardware restrict the amount typically to 80 or 64 bits that in turn need to be dithered to 24 in order to write a 24 bit file or feed most converters without distortion.
Old 18th January 2017
  #145
Lives for gear
 
JP__'s Avatar
 

First I wanted to say thanks to Bobs untiringly comitment pro dither, I learned a lot from him over the last years. My approach which is grown due to practical experimentation over the years is fairly similar the the once mentioned here. I also would be very curious to learn more about the integration of dither in the different DAWs, soundcards or plugins, but I fear a lot are that ignorant as for example RME and many others.
(this typical ignorance is the reason why so many software tools are still sounding that bad for me...)
I also dont get the idea about that one "correct" dither as they all sound very different in my experience and most are more a sound design tool than just a tool "to get the math right" (which is fully ok for me, I just trust my ears and choose the tool for the specific tast).
Old 18th January 2017
  #146
Gear Nut
 
TonyS's Avatar
 

Quote:
Originally Posted by Bob Olhsson View Post
The only time 64 bit Pro Tools dithers to 24 bits is when you export a 32 bit file to 24 bits. The only DAW I know handles feeds to converters properly is Samplitude.
How about Sams big brother?
Old 18th January 2017
  #147
Motown legend
 
Bob Olhsson's Avatar
 

Quote:
Originally Posted by TonyS View Post
How about Sams big brother?
It's the same.
Old 18th January 2017
  #148
Gear Nut
 
DeyeYguy's Avatar
 

Lynx AES16e mixer does a nice job offering dither LAST on every DA out for us guys feeding consoles, i only employ dither when i make a change ITB, even if it's a .01 fader movement, otherwise if the "BOX" serves as a tape machine only untouched, dither remains off. I'm not positive i have my head wrapped completely around the proper implementation of dither in a hybrid context, but the previous method makes sense to my small brain, the earlier posts seem to support the idea as legit as well

Bob O has emerged as the dither conscience of Pro Audio Universe, and for good reason!

thanx Bob O
Old 18th January 2017
  #149
Motown legend
 
Bob Olhsson's Avatar
 

Quote:
Originally Posted by DeyeYguy View Post
Lynx AES16e mixer does a nice job offering dither LAST on every DA out for us guys feeding consoles, i only employ dither when i make a change ITB, even if it's a .01 fader movement, otherwise if the "BOX" serves as a tape machine only untouched, dither remains off. I'm not positive i have my head wrapped completely around the proper implementation of dither in a hybrid context, but the previous method makes sense to my small brain, the earlier posts seem to support the idea as legit as well
You have it right!
Old 18th January 2017
  #150
Gear Guru
 
Karloff70's Avatar
 

Let's see if any DAW manufacturers dare to step up to the dither plate.....

DAW manufacturers, please let us know where you dither!
Topic:
Post Reply

Welcome to the Gearslutz Pro Audio Community!

Registration benefits include:
  • The ability to reply to and create new discussions
  • Access to members-only giveaways & competitions
  • Interact with VIP industry experts in our guest Q&As
  • Access to members-only sub forum discussions
  • Access to members-only Chat Room
  • Get INSTANT ACCESS to the world's best private pro audio Classifieds for only USD $20/year
  • Promote your eBay auctions and Reverb.com listings for free
  • Remove this message!
You need an account to post a reply. Create a username and password below and an account will be created and your post entered.


 
 
Slide to join now Processing…
Thread Tools
Search this Thread
Search this Thread:

Advanced Search
Forum Jump
Forum Jump