Qustion to the minds of the bar

Tony Hardie-Bick EMAIL HIDDEN
Wed Dec 2 20:04:04 CET 2009


Hey Dong

The key to this mystery is multiplying two numbers. Taking the simplest case, 
integers, say, 32bit each, the product is 64 bits, but, you discard 32 lsbs, cos 
your precision is 32bits. So, for some values those lsbs are zero, for others 
(most of the time), not. Turns out that if you apply triangular probability 
noise (aka dither), the distortions vanish, at the cost of some slight hiss; and 
there is no intermodulation. Also for gaussian prob, etc. The problem is more 
subtle with floating point, but, anyway, this is where the devil is in this 
issue, and why some apps "sound" different from others, even when there's no 
processing.

http://is.gd/5aiHb

To do digital audio properly, you have to dither *every* multiply. If floating 
point is used, this is actually impossible, so, one hopes the precision will 
hide the distortion, which it generally does, if 64bit FP is used, but, don't 
put money on it.

This is why, even something simple like adjusting levels by normalisation, can 
sometimes completely change the character of a recording, in ways that are 
difficult to describe (the distortion doesn't actually sound like distortion; 
more a slight added crispness, and subtle loss of detail on very rich textures).

Good software like Pro-tools does all this properly, but, there are some 
mainstream well-respected pieces of software, that probably don't, and plugins 
are another matter.

It's entirely possible to have a team of top software engineers code a bit of 
audio, and have no idea that they're messing up the signal, because they assume 
that 32 bits means... just use 32 bits.

Tony (HB)

The Dong wrote:
> Don Solaris is one of these I must win, nobody can educate me type of 
> bullshitters? Could be ;)
> 
> I bet he googles himself and finds this comment and hunts me down 
> telling me 1 + 1 = 2. There is no other way.
> 
> I'll just reply 1 + 1 = 1 too :)
> 
> I don't read up much about DSP, most of it boggles me because most of it 
> is far from conventional, but I instinctively (or logically) know that 
> adding two binary values that are over half the byte/word size together 
> results in an overflow. In the case of audio, this means bits ARE lost 
> during the whole process, unless you never mix much things together at 
> the same time that are louder than a pin dropping or save all your 
> projects at 256KHz 64bit resolution and never, ever let anyone else hear 
> them on any other medium ;)
> 
> I bet Don believes the developers of software never f' things up or 
> program a lot by trial and error or by constant compromise and all 
> follow some god written book that says repeatedly "1+1=2" to solve 
> everything.
> 
> Hehe.
> 
> I could go on, but basically bits are lost all over the place in the 
> audio universe and not just by mixing engines, mostly caused by the 
> black hole that is under a DJ's cranial undergarments thinking that 
> everything has to be at maximum volume with maximum compression and 
> crushing the limiters ;)
> 
> _______________________________________________
> music-bar mailing list
> music-bar at lists.music-bar.org
> http://lists.music-bar.org/cgi-bin/mailman/listinfo/music-bar




More information about the music-bar mailing list