Noel Borthwick [Cakewalk]
gswitz
I suppose with floats you could dither the least significant bit, but the variance of level of this dither would significantly complicate quantifying the benefit of that dither. Also, with thirty two bit bounces where every available bit is used at the loudest moments, humans could never detect the precision on any system.
I believe that what Noel is saying is that dither is never applied to floats. That would mean that internal bounces never get dither, regardless of your settings, since the files created are floats. Noel?
Corollary: changing the setting for dither between internal bounce and export is not necessary.
Actually dither gets applied when you convert from 64 to 32. I believe POWR supports that.
For internal bounces it will only dither if the render bit depth is set to < 32.
Cakewalk guys, I think your technical staffs should have a look on this thread from the github of Libsndfile:
https://github.com/erikd/libsndfile/issues/294 So now you may have 2 ways, 2 choices to solve this crackle problem:
Way 1:
You should set the sf_command() interface with SFC_SET_NORM_DOUBLE = SF_FALSE and SFC_SET_NORM_FLOAT = SF_FALSE, and also SFC_SET_CLIPPING = SF_TRUE
or just simply look into every floating point sample, with something like
IF sample > 1 then sample = 1
or
If sample >= 1 then sample = 0.9999999999...........
Way 2 (Preferred):
Export 24bit results like 16bit results, dithering in SONAR with POW-R, rectangular or triangular, inside SONAR, not inside libsndfile, then truncate into 24bit integer, in SONAR as well, not inside libsndfile.
Finally, to send 24bit integer samples to libsndfile, just use "int" functions/interfaces like sf_write_int, add 8 zeros on the right hand side (the 8 least significant bits) of the 24bit number and store as a int variable for sending to libsndfile, mark the preferred destination as a 24bit file.
Then libsndfile is going to auto truncate those 8 zeros on the right hand side (the 8 least significant bits) away when writing into a 24bit audio files.
So the way 2 is the best way! just solved all problems perfectly!