On the r3mix forum (http://66.96.216.160/cgi-bin/YaBB.pl?board=general&action=display&nu...) they mention something about the error variable is uninitialized between songs, resulting in different decodes of the same song. They also mention that perhaps it might be better (speed or quality, I'm not sure) to use trunc() or round() instead of floor() in the algorithm.
Marcus Kwok wrote:
On the r3mix forum (http://66.96.216.160/cgi-bin/YaBB.pl?board=general&action=display&nu...) they mention something about the error variable is uninitialized between songs, resulting in different decodes of the same song.
The nature of dither is such that it has a random component, so you should not expect different decodes of the same song to produce identical output. Initializing the dither seed between songs doesn't really create any benefit.
They also mention that perhaps it might be better (speed or quality, I'm not sure) to use trunc() or round() instead of floor() in the algorithm.
As David Robinson has shown, the dithering method currently used in the MAD plug-in for Winamp is not ideal. I have a new method in the works which should be quite a bit better. I plan to make this a configuration option, so you can choose between the current method, the new method, and none at all (plain rounding.)
Cheers,