1
0
mirror of http://mpg123.de/trunk/.git synced 2025-10-23 16:48:31 +03:00
Files
mpg123/man1
thor 8e8da9974c mpg123: Revamped audio output logic for resampling and pitching.
Now the integration of the libsyn123 resampler and handling of the
NtoM decoder are hopefully correct in the again-enlarged audio.c,
which became a hollow shell with the advent of libout123, and now
is strong again.

Settling decoder and output formats has historically been the most
confusing aspect of libmpg123 and I raise that with the integration
of post-decoder resampling and pitching in the decoder, in the
output device, or in said resampling between these two. Insanity!

The new resampler is the default for forcing output rates now. If
you wonder why, try this in the current mpg123 source tree with
your fresh build:

for resampler in ntom dirty fine
do
  src/mpg123 -r 22040 --resample $resampler --pitch -0.72 \
    src/tests/sweep.mp3
done

With a pure sine sweep like that (generated via out123), you
can appreciate

a) the quality differences between resamplers, and
b) how little those seem to matter when you just listen
   to music.

Really, without a detailed comparison and some noisy pop/rock
music, it is surprisingly hard to tell how bad the drop-sample
resampling of the NtoM decoder really is.

But this has a price: Even when I took great pains in designing
the syn123 resampler, it needs more computing time than the
MPEG decoder itself. That's life. You can make resamplers that
are faster, but at the cost of increased latency which makes
programming tedious. Here, I just ignored that aspect, as the
syn123 resampling latency is just a handful of samples, well
below the farts you get from ALSA on closing a device.




git-svn-id: svn://scm.orgis.org/mpg123/trunk@4662 35dc7657-300d-0410-a2e5-dc2837fedb53
2020-04-26 16:33:28 +00:00
..