View Single Post
Old 12 November 2006, 07:52 pm   #1
Musepack Nanny
Seed's Avatar
Join Date: Jul 2004
Posts: 168
Lightbulb mppenc 1.16/libmpcdec 1.2.3

Musepack encoder version 1.16 and libmpcdec 1.2.3 are released.

libmpcdec 1.2.3 enables a new, fast method for seeking, and additionally, a seek table, the result of which is generally instant seeking. On very long tracks you will sometimes notice a delay when seeking from beginning to the end of the track. However, on consecutive seeks playback resumes instantly.

On files that were encoded with an encoder older than 1.16 fast seeking is not bit-perfect. The reason is that sometimes, due to the way older encoders inject scale factors to the stream, the new seeking method may replace a very high frequency band with silence for a period of a few milliseconds and in rare cases up to a second or so.

In our testing we haven't found any case where that is actually audible. Other than a theoretical very slightly different sounding output for a very short time period after seeking, there is no other artifact that can be caused by the fast seeking, so for all practical purposes it is perfectly fine on older as well as newer files.

The new encoder version differs mainly in the way it injects scale factors to the stream. This enables bit perfect seeking at all times with the new decoding library.

Special thanks goes to snowgoon for the initial seeking patches, R2D, for developing it further and adding features, Lefungus, for doing lots of library work, encoder patching and advising, and xmixahlx for his loads of testing, compiling, patching and support.

1.16 is probably the last SV7 encoder. All efforts are now directed at building SV8. Development can be followed on our Trac and SVN repositories.

Decoder library changelog:
* Added fast-seeking (bit-perfect only with mppenc 1.16 files and later, optional but safe on pre-mppenc 1.16 files). Patch by Nicolas Botti
* Reduced memory usage and code size. Patch by Peter Pawlowski
Encoder changelog:
* Add fast seeking flag in reserved header data. Enable bit-perfect fast seeking. Patch by Andrew Cupper & Nicolas Botti
* Add optional beeping at the end of encoding (--beep)
* Remove tag guessing from filename on UNIX
* Add Unicode input support for tags (--unicode) (UNIX only). Patch by Valery Bruniaux
* Frontend patches from xmixahlx & Shy
* Code clean-up
* Port build system to cmake for UNIX & msvc2005 for win32

* Workaround for denormal number issues. Synthetic samples with passages of digital silence are handled correctly regardless of the compiler used
* Translation of German source code comments to English. Patch by CiTay & Seed

* Changes in the way the encoded signal is padded to MPC frame boundaries. Beginning and end of track encoding is handled differently, resulting in significantly improved gapless coding. Thanks to Xiph's Monty for the initial advice

* Aggressive compiler settings could cause a glitch in rare synthetic samples

* In some rare cases, the output file would have an incorrect duration (4 missing samples) when encoding some very long tracks
* There was a glitch at the end of the track when encoding from a 24-bit source through pipe
* --xlevel is used by default. Use --noxlevel to override
* Removed "Unstable/Experimental" flag writing
mppenc 1.16 for Windows
mppenc 1.16 for Linux / mppenc 1.16 source code
libmpcdec 1.2.3
Seed is offline   Reply With Quote