Mixing Engine exceels on T2
-
- KVRist
- 112 posts since 18 May, 2004
I'm no math genius, but I tend to accept the testimony and explanations that 64-bit mixing sounds better than 32-bit mixing.
To satisfy myself, I wrote a quickie program that would add any number of 24-bit ranged integers using both single and double precision (32-bit vs. 64-bit). With 64-bit precision, there is no error introduced for mixing forty tracks. With 32-bit precision, I see the error range from 0 to 3 off the expected value.
Whether this is audible or not will remain debatable I suppose, but I can believe how errors can accumulate with 32-bit mixing.
Below is the Java test program I wrote for those interested. As I said, it was a quicky to convince myself, so take it for what it is.
Cheers,
Randy
public class PrecisionTest
{
public static final int NUMTRACKS = 100;
public static void main(String args[])
{
// Get a number of 24-bit levels
int tracks[] = new int[NUMTRACKS];
for (int i=0; i<NUMTRACKS; i++) {
tracks = (int)(Math.random() * (Math.pow(2,24)-1));
}
// Add as ints
int accInt = 0;
for (int i=0; i<NUMTRACKS; i++) accInt += tracks;
// Add as floats
float acc32 = 0.0f;
for (int i=0; i<NUMTRACKS; i++) acc32 += tracks;
// Add as doubles
double acc64 = 0.0;
for (int i=0; i<NUMTRACKS; i++) acc64 += tracks;
System.out.println("int: " + accInt);
System.out.println("32-bit: " + acc32);
System.out.println("64-bit: " + acc64);
double absError32 = Math.abs(accInt - (int)acc32);
double absError64 = Math.abs(accInt - (int)acc64);
double percError32 = 100.0 * (absError32 / (double)accInt);
double percError64 = 100.0 * (absError64 / (double)accInt);
System.out.println("32-bit error: " + percError32 + "%");
System.out.println("64-bit error: " + percError64 + "%");
// Scale back to 24 bit range
int scaleInt = (int)((double)accInt/NUMTRACKS);
int scale32 = (int)(acc32/NUMTRACKS);
int scale64 = (int)(acc64/NUMTRACKS);
System.out.println("expected result: " + scaleInt);
System.out.println("32-bit scaled result: " + scale32);
System.out.println("64-bit scaled result: " + scale64);
}
}
To satisfy myself, I wrote a quickie program that would add any number of 24-bit ranged integers using both single and double precision (32-bit vs. 64-bit). With 64-bit precision, there is no error introduced for mixing forty tracks. With 32-bit precision, I see the error range from 0 to 3 off the expected value.
Whether this is audible or not will remain debatable I suppose, but I can believe how errors can accumulate with 32-bit mixing.
Below is the Java test program I wrote for those interested. As I said, it was a quicky to convince myself, so take it for what it is.
Cheers,
Randy
public class PrecisionTest
{
public static final int NUMTRACKS = 100;
public static void main(String args[])
{
// Get a number of 24-bit levels
int tracks[] = new int[NUMTRACKS];
for (int i=0; i<NUMTRACKS; i++) {
tracks = (int)(Math.random() * (Math.pow(2,24)-1));
}
// Add as ints
int accInt = 0;
for (int i=0; i<NUMTRACKS; i++) accInt += tracks;
// Add as floats
float acc32 = 0.0f;
for (int i=0; i<NUMTRACKS; i++) acc32 += tracks;
// Add as doubles
double acc64 = 0.0;
for (int i=0; i<NUMTRACKS; i++) acc64 += tracks;
System.out.println("int: " + accInt);
System.out.println("32-bit: " + acc32);
System.out.println("64-bit: " + acc64);
double absError32 = Math.abs(accInt - (int)acc32);
double absError64 = Math.abs(accInt - (int)acc64);
double percError32 = 100.0 * (absError32 / (double)accInt);
double percError64 = 100.0 * (absError64 / (double)accInt);
System.out.println("32-bit error: " + percError32 + "%");
System.out.println("64-bit error: " + percError64 + "%");
// Scale back to 24 bit range
int scaleInt = (int)((double)accInt/NUMTRACKS);
int scale32 = (int)(acc32/NUMTRACKS);
int scale64 = (int)(acc64/NUMTRACKS);
System.out.println("expected result: " + scaleInt);
System.out.println("32-bit scaled result: " + scale32);
System.out.println("64-bit scaled result: " + scale64);
}
}
-
- KVRist
- 261 posts since 3 Jun, 2003 from Near Chicago
DISCLAIMER: Unscientific testing of 32 vs 64 mixing.
Here are links to 2 jpegs illustrating a spectogram analysis of the identical 1 second area in a 16/44.1 mixdown.
The areas of difference are circled in black.
http://www.geocities.com/dysc@sbcglobal ... rogram.JPG
http://www.geocities.com/dysc@sbcglobal ... rogram.JPG
The source project only contains 7 tracks so it is probably not the best "stress" test on the mixing engine, but I selected it because it uses very high quality audio and samples via GigaStudio and I though it would reveal sonic differences.
I decided to do a 16/44.1 comparison as that would be the end result format for most mixdowns, i.e. burn to CD. I applied an identical high quality Cranesong dither during the bounce to 16 bit.
The first thing I did was to do a simple phase reverse null between the 32 and 64 bit files and I was and wasn't suprised to find that they do not null against each other.
Technically they shouldn't null but what surprised me was that there were several areas where the residual signal was very pronounced.
The curious non-nulling areas corresponded to drum fills! I thought this was odd so I tried the mixdowns again and the same nulling results occurred. All other areas effectively nulled to zero - although the dither signal remained.
So I zoomed in to these areas and extracted the respective spectrograms above. The bitmap captures were huge so I compressed them to jpeg. I was worried that the visual differences would be lost, but most of them remained intact so I circled the interesting areas.
Again, this is/was not a scientific test but it does appear that there is a different handling of even modest track count mixes, at least in the area of transients such as sharp drum hits.
Forgot to mention that I did the analysis using Acoustica 3.2 - a great and inexpensive audio editor - highly recommended!
Here are links to 2 jpegs illustrating a spectogram analysis of the identical 1 second area in a 16/44.1 mixdown.
The areas of difference are circled in black.
http://www.geocities.com/dysc@sbcglobal ... rogram.JPG
http://www.geocities.com/dysc@sbcglobal ... rogram.JPG
The source project only contains 7 tracks so it is probably not the best "stress" test on the mixing engine, but I selected it because it uses very high quality audio and samples via GigaStudio and I though it would reveal sonic differences.
I decided to do a 16/44.1 comparison as that would be the end result format for most mixdowns, i.e. burn to CD. I applied an identical high quality Cranesong dither during the bounce to 16 bit.
The first thing I did was to do a simple phase reverse null between the 32 and 64 bit files and I was and wasn't suprised to find that they do not null against each other.
Technically they shouldn't null but what surprised me was that there were several areas where the residual signal was very pronounced.
The curious non-nulling areas corresponded to drum fills! I thought this was odd so I tried the mixdowns again and the same nulling results occurred. All other areas effectively nulled to zero - although the dither signal remained.
So I zoomed in to these areas and extracted the respective spectrograms above. The bitmap captures were huge so I compressed them to jpeg. I was worried that the visual differences would be lost, but most of them remained intact so I circled the interesting areas.
Again, this is/was not a scientific test but it does appear that there is a different handling of even modest track count mixes, at least in the area of transients such as sharp drum hits.
Forgot to mention that I did the analysis using Acoustica 3.2 - a great and inexpensive audio editor - highly recommended!
-
- KVRAF
- 6490 posts since 14 Jun, 2004 from Rochester, NY
- KVRAF
- 9096 posts since 5 Feb, 2004
RONC = ?rpc9943 wrote:audition = better.
RONC
If you have requests for Korg VST features or changes, they are listening at https://support.korguser.net/hc/en-us/requests/new
-
- KVRAF
- 10815 posts since 26 Nov, 2004 from UK
are you saying that audition's mix summing is better that Tracktion's new 64bit?rpc9943 wrote:audition = better.
RONC
-
- KVRist
- Topic Starter
- 76 posts since 7 Mar, 2005 from Moscow
randygo
Bennett
For rest of us in maths you're simply heavyweighters.
Audition vs. maths in music = definitely better
Although I am 100% (sonically) convinced that SACD is better sounding format than CD under equal conditions, I recently found huge theoretic thread (practically unreadable for common humans) where guy mathematically proved that errors and other things generated in DSD (format for SACD),as well as, some other things makes CD equal or even more appropriate and technically more precise format for music.
Strangley that some engineeres seems to support that claim, too.
Math is good, clean ears are better.
yang
Bennett
For rest of us in maths you're simply heavyweighters.
Audition vs. maths in music = definitely better
Although I am 100% (sonically) convinced that SACD is better sounding format than CD under equal conditions, I recently found huge theoretic thread (practically unreadable for common humans) where guy mathematically proved that errors and other things generated in DSD (format for SACD),as well as, some other things makes CD equal or even more appropriate and technically more precise format for music.
Strangley that some engineeres seems to support that claim, too.
Math is good, clean ears are better.
yang
Don't forget that your music might eventually outlive you.
- KVRAF
- 9096 posts since 5 Feb, 2004
Um, ok.
If you have requests for Korg VST features or changes, they are listening at https://support.korguser.net/hc/en-us/requests/new
-
- KVRist
- 30 posts since 16 Oct, 2001 from Poland
It is simply amazing there are more and more ignorant people who cannot mix properly, yet they start complaining on imaginative phenomena that allegedly spoil their "perfect" output. It is worrying how many there are naive people who believe in this crap and soon they begin to repeat these fairy tales.
For many yers people learned to create wonderfully sounding records using only 16-bit, 20-bit and finally 24-bit technology. Now, the scene is full of amateurs who have perfect tools, and they are too lazy to learn a tiny bit about technology, so they produce crappy theories on "mixing algorithms" in order to justify their lack of skills.
Come on, this horse has been beaten to death. It has been scientifically proven many times there is absolutely no difference whether you are using 64-bit or 32-bit math when your final output is 16-bit (or a 24-bit pre-master). Look into any of the basic textbooks on DSP and audio programming to learn the fundamentals and stop making fools of yourselves.
Stop your elitist arguments about your being golden-ear and hearing rounding errors which are as low as -1400dB. This is ridiculous. Show your tracks. Nobody wants you to expose unreleased stuff, just show two or five seconds, so that everybody can try their own "mixing engines" and compare using phase inversion. Provided there are no serious bugs in the software you are using, there is no way your 24-bit mixdown files will differ more than the magnitude of dithering applied, and without dithering the difference is ZERO.
Stop posting bogus spectrograms as well, this is even more fishy. Human eye has so much more limited resolution than ear, that the difference between your 32-bit and 64-bit samples should be HUGE in order to be perceptible on a spectrogram.
For many yers people learned to create wonderfully sounding records using only 16-bit, 20-bit and finally 24-bit technology. Now, the scene is full of amateurs who have perfect tools, and they are too lazy to learn a tiny bit about technology, so they produce crappy theories on "mixing algorithms" in order to justify their lack of skills.
Come on, this horse has been beaten to death. It has been scientifically proven many times there is absolutely no difference whether you are using 64-bit or 32-bit math when your final output is 16-bit (or a 24-bit pre-master). Look into any of the basic textbooks on DSP and audio programming to learn the fundamentals and stop making fools of yourselves.
Stop your elitist arguments about your being golden-ear and hearing rounding errors which are as low as -1400dB. This is ridiculous. Show your tracks. Nobody wants you to expose unreleased stuff, just show two or five seconds, so that everybody can try their own "mixing engines" and compare using phase inversion. Provided there are no serious bugs in the software you are using, there is no way your 24-bit mixdown files will differ more than the magnitude of dithering applied, and without dithering the difference is ZERO.
Stop posting bogus spectrograms as well, this is even more fishy. Human eye has so much more limited resolution than ear, that the difference between your 32-bit and 64-bit samples should be HUGE in order to be perceptible on a spectrogram.
-
- KVRist
- 453 posts since 10 Jul, 2003 from Rotterdam
im certainly no expert, but i'm going toMB wrote:It has been scientifically proven many times there is absolutely no difference whether you are using 64-bit or 32-bit math when your final output is 16-bit (or a 24-bit pre-master)
audaciously say that i think you're wrong MD
key word being *accumulate*.randygo wrote:but I can believe how errors can accumulate with 32-bit mixing.
(feel free to show up my ignorance.. i don't know this stuff very well)
-
- KVRAF
- 3345 posts since 8 Nov, 2003 from Amsterdam
Thank you for the constructive and diplomatic addition to this thread MB. With assumptions like 'ignorant people' 'who cannot mix properly' 'amateurs'... etc. I'm glad that you made only 13 posts in the 4,5 years that you've been at kvr.
-
- KVRist
- 30 posts since 16 Oct, 2001 from Poland
It's no time for being diplomatic against people who are stubborn and pretending. I'm too busy working with music software to produce loads of meaningless posts, I stand by quality against quantity.
cbit: Yes, I am talking about accumulation that has been proven not to build up significantly enough to make any difference. Read some basic DSP stuff.
cbit: Yes, I am talking about accumulation that has been proven not to build up significantly enough to make any difference. Read some basic DSP stuff.
-
- KVRAF
- 2417 posts since 17 Jun, 2003
Do you have any links to this basic DSP stuff that proves this?
"my gosh it's a friggin hardware"
-
- KVRist
- 453 posts since 10 Jul, 2003 from Rotterdam
Would that not depend on the amount of processing that's being carried out?.. at a certain point the rounding errors would add up to make a difference no?mb wrote:Yes, I am talking about accumulation that has been proven not to build up significantly enough to make any difference.
-
- KVRist
- 30 posts since 16 Oct, 2001 from Poland
Certainly. But the difference between rounding noise between 64-bit FP and 32-bit FP is so huge that the processing should involve amplification of thousands of dB to bring up the lower half of the 64-bit word to the level that triggers the least significant bit in 32-bit float in the mixing bus. Or you would have to add billions of tracks to achieve the same effect.cbit wrote: Would that not depend on the amount of processing that's being carried out?.. at a certain point the rounding errors would add up to make a difference no?
