原貼的來容真的很豐富, 剛看到有人問類似問題, 故此把其中對話剪了出來
Cameron:
Greatthread folks. I myself do believe that how we deal with headroom in DAW's when mixing is among the most important factors in recording quality.
you guys think the consequences of the 32bit Floating Point file that some DAW are capable ofdealing with factors in to this discussion. I am not sure if folks are aware ofthe fact that on a 32 bit FP DAW you can smash a stereo buss so it clips very audibly,then save a 32bit floating point file of that clipping audio, bring it backinto a program that excepts these files like wavelab/Nuendo/Sequoia bring thesefiles down in amplitude so they do not reach 0dBFS and the distortion willdisappear. When I read this for myself in my Nuendo manual I did not believe ituntil I tried it for myself. It has been years since I felt like I was killingmy stereo master and I I don't consider it anymore a challenge in Nuendo thanit is on our Neve 88R or API.
PAUL :
Yes - this is correct. If all the processesand signal paths are running host floating point (and never reach the outsideworld) it will tolerate overs without actually clipping and reducing the gainafterwards will restore an unclipped signal - providing this is done before hitting any outputs (which are of course fixed point). If you are careful FPentirely host systems can provide (almost accidentally) useful headroom andmore freedom..
Places where this can fall down are if you areusing some 3rd party add on processing cards which may interface via 24bit datastreams, in PT RTAS where the next plug may be TDM (which is a fixed point24bit interface) and of course sending in and out of any outboard gear.
Alsoit's best to tread carefully with plugs that need an operating reference of thereal signal level such as compressors, limiters, maximisers and 'characterprocesses' that use non-linear processing to develop harmonic character. Thesecan suffer (some quite badly) from signals greatly above 0dBfs..
DSM is designed to operate around 0dBfsand the controls (such as threshold) allow sensible operation down to -24dBfsand output gain up to +24dBfs.
Itruns internally at DP floating point and will pass signals of any valid FPlevel without clipping.
However the limiter is aiming at the W/Sstandard program max operating level of 0dBfs (as we have no other choice foroutput media), so engaging the limiter section will constrain the output to 'real'program levels.
Thelimiter section will deal sympathetically with signals up to +6dBfs (whilstlimiting the output to 0dBfs of course) and over-driving up to +6dBfs isencouraged, but beyond +6dBfs it will start to hard limit..
------------------------------------------------------------------------------------------------------------------------------------------------------
Astimony:
Certainly no one doubts your assertion in thisregard.
However, I have read the paper here, itdescribes dithering 32-bit float. It has 3 credible authors, 2 from the University of Budapest and one from Stanford.
I'm a more than competent computer programmer,but I would have a great deal of difficulty implementing a 32 bit dither on thebasis of that paper.
Could you share some pseudo-code with us,describing how to dither a 32 bit float signal? Or some real code, perhaps justthe dither portion from the DSM?
Or, and this is a bit of a guess, when you doplugins do you convert to fixed point, do the processing in fixed point, andthen dither/convert to 32 bit as a last step before the values leave theplugin? I am inferring that from the wording of your post.
It would be great to get this information outthere, in a simple fashion that can be understood easily by plugin and DAWdevelopers. Perhaps then the problem with round off error and quantizationerror leading to inharmonic distortion can be resolved.
If you can't share your methods because theyare trade secrets or because they provide a competitive advantage, that's fineand quite understandable -- given the power of the marketplace.
Take care,
Paul:
There is nothing wrong in these papers andthe situation they describe is correct - from a general point of view..
However for our purposes we are after removingthe harmonic distortion in the legal range of the signal - this harps straightback to several previous posts on float I have made in this thread?
Sobearing in mind that luckily we have a legal real world value of signal rangewhich extends from the noise floor to flat out (+/-1.0) - regardless of whetherit is represented as float or fixed - it is perfectly possible to establish alegal range of signal from say -140dBfs to 0dBfs and remove the quantisationdistortion using dither. By legal we mean one that does not contain unwantedquantisation distortion.
Sofor instance in stuff running float like the DSM (actually running doubleprecision 64bit float) - we still actually dither the output to a real intendedrange of signal (i.e. -140dBfs or so up to 0dBfs) - which means that it will bedistortion free whether feeding 32bit float or 24bit fixed down line :-)
Inother words - regardless of the math representation of the signal, we stillneed to establish a real range if one does not already exist (e.g. as infloat)...
Ok -so what happenes in practice then?
1.The signal comes out of the plug-in in float with a known SNR to flat out range(with dither being generated in the float domain) - which will pass to 32bitfloat or 24bit fixed without quantisation distortion.
Whatit ends up being is determined by the DAW and not us - some will pass full64bit float, some will pass 32bit float, some like TDM, PowerCore and otherswill pass only 24bit fixed. All output formats are actually fixed point 24bits.Where they end up 16bits (i.e. CD etc.) we provide the 16bit dither option,just in case the DSM ends up as the last thing in the signal chain before CDfiles - so all end point eventualities are covered.
2.Signal level values below the noise floor (i.e. in float systems) cannot getbelow the minimum value - because of the added dither - so no problem there anymore.
3.Potentially illegal and out of range end point signal levels above max +/-1.0 =0dBfs will clip on a fixed point target format (CD, AES, 24bit files etc.)
Butwhen feeding a floating target (internal DAW etc.) the signal will continue topass without actually clipping - but with quantisation distortion because above +/-1.0 = 0dBfs the dither no longer matches the scaling caused by the changing float exponent..
So in a float system the headroom created by not clipping above max legal signal comes at a cost.
But the saving grace of the entirely circumstantial float headroom is that the quantisation distortion only occurs at levels above flat out which are veryloud anyway - so the chances of hearing the distortion are vanishingly small:-)
--------------------------------------------------------------------------------------------------------------------------------------------------------
JimJohnston told me that if people are monitoring very loud, they won't be able tohear clipping distortion!
Paul :
From experience I would say that's true. Atvery loud levels the ears actually compress too - and the whole can turn into amush that overwhelms our ability to discern much at all, the HF distortioncaused by clipping just joins the other top end mush we hear...
Andin fact creating this 'mush' at lower levels is actually a large part of whatpasses for production these days - because it can sound 'loud and powerful'even when played at lower levels through a boom box, because it has the 'cuesfor loudness' even though it's quiet. I would say the loudness wars are beingdriven largely by this effect. And of course as designers we have made use ofthis kind of thing in real products :-)
Whenit comes to distortion in general though, I am puzzled by it because peopleseem to vary wildly about how much there can be before they perceive it orcomplain about it. Most modern music releases have far more distortion than Ican listen to - but they are selling to others that are not complaining soloudly - so is it just me I often ask?
Butthen again - are people who tolerate it just conditioned to do so, having neverheard much else? DO we become accustomed to it I wonder? Is it even a form ofdeafness that comes from listening to highly compressed music - even if atlower levels? The ear/brain system is highly complex and adaptive - it could becompensating in some way?
Butone thing I can say from research is that it's amazing how much of certainkinds of distortion can become assimilated into the ear/brain system and thenignored if it's part of some recognisable instrument - that is revealed asawful when attached to a sine wave.
Mytheory is that the ear/nervous system is actually highly non-linear and quitevariable, but the brain cleverly corrects this all the time, allowing us tohear sine waves as pure despite the non-linear biological system. Theperception of a pure sine wave is therefore a special case for the ear/brainsystem, which is more easily disturbed than other circumstances..
Ifyou present this system with distortions of the same kind as it's own inherentones, to a large degree it will correct our perceptions of those too - up to apoint..
Atthe point where these distortions are so bad that the ear/brain system isalmost overwhelmed, if the sound is of a previously known and recognisedinstrument (or something else familiar) it helps the brain to deliver arelatively clean perception of it despite the distortion. And in fact it may bethe case that the system can actually learn to do so more effectively over time- if such distortions are present for long periods on program that is highlyfamiliar, like music.
Inresearch I have done I have been amazed to the degree our ear/brain systems areable to adapt - the adaptation has often been so deep that the removal of astimulus can actually make one feel dizzy, disorientated and quite sick!Incredible stuff I would never have imagined before it happened.
----------------------------------------------------------------------------------------------------------------------------------------------------------
now it makes sense to me.
we can only listen to floating point audiodata thru the fixed point window of a D/A converter... and the dither istailored to this D/A....
Paul :
Not just D/A converter - but the real worldin it's entirety!!
Yes- this is the point. Regardless of the math representation within theapplication itself all signal must re-enter the real world in a limited andbounded range.
Allwe are doing is setting what this range is - so that the end product is suitablydithered - so it has no discernible (or even measurable) quantisation artefact- when represented in it's intended output format.
Itisn't clever particularly at all - to me it's pure common sense?
Thefloating representation is simply equivalent to scientific notation - i.e. anumber of significant figures with a multiplier for the range - i.e. 1.234 x10^3 = 1234.???????????. What this tells us is that however large or small theactual value is - it will only ever be represented by 4 digits. These 4 digitscan be ones, tens, hundreds or thousands. What we have is 4 digits of accuracyonly.
In32bit audio we have (just a little less than) 24bits of reliable accuracy - wedecide where in the scale these will be placed.
Andwe have no choice but to align these with real world signal - which is ofcourse fixed point +/-1.0
Sowe decide the lowest level for this signal wrt what is the highest real worldlegal value - and give it the required statistical uncertainty (i.e. dither -noise floor).
Nowinside the processing we can do whatever we like to make use of the floatingsystem (coeffs bigger than +/-1.0 - values smaller than -140dB or so), but whatemerges in the end must conform to the signal requirements of the outputsystem..
Ifyou chose to ignore these requirements by simply 'going for it regardless' infloat applications then there is a penalty - however luckily n most cases it issmall and only happens on very loud signals that effectively mask the errors..
Where it really breaks down is when anapplication is doing something non-linear on purpose - this non-linearity willhave to be referred to some real world signal level - and that is where nastythings can arise if you ignore the actual signal levels involved..
Thisis what happens if you blast extremely high levels through the DSM (apparentlywithout problem) - and then hit the limiter button.
[ 本帖最后由 himhui 于 12-2-18 14:04 编辑 ]