Please add this configure option, as it improves Sound Quality in all applications that use this library. It is enabled per default in the Arch PKGBUILD of this package: https://projects.archlinux.org/svntogit/packages.git/tree/trunk/PKGBUILD?h=packages/mpg123 I am almost certain that other distros use it too and there seems to be no huge downside in my eyes.
If quality really matters to your application, decode to 32 bit float and avoid conversion to 16 bit at all (or only as last step before pushing to sound card if it doesn't do 24 bit). There is somewhat of a difference in performance, quick testing for a track on my underclocked Core2Duo: x86-64 s16: 3.5 s x86-64 s16-int-quality: 4.3 s generic_dither: 6.4 s x86-64 f32: 4.1 a x86-64 s24: 4.6 s Quality-wise, float output is best, of course, followed by signed 24 bit, dither and then int-quality. Of course you can have your own opinion on dithering. Anyhow, I doubt that most folks really need it as default. But having it as option for the audiophile (who doesn't own 24 bit d/a hardware;-) would be nice enough. Perhaps a global flag about "I prefer quality over speed", applying to other packages, too.
That sounds nice enough. Of course 32bit float is best for further processing. But in my case I output directly in 16bit to my DAC. I don't know if I want to call myself an "audiophile" as I completely reject the voodoo often involved with that term. I just recognize that for the end-user 16Bit/44.1kHz is enough. For the playback of wave or lossless formats I generaly try to get decoding working "bit-perfect". for lossy format the closest thing would then be direct decoding as 16bit. I see why a default makes no sence now, but a flag would be quite nice.
Since there aren't any global use flags signifying a preference for quality over speed at this point, the int-quality use flag has been added to 1.14.4.