Page MenuHomeSolus

libopenmpt
Closed, ResolvedPublic

Description

Homepage: https://lib.openmpt.org/libopenmpt/
Open source: Yes (BSD-3-Clause)
Tarball: https://lib.openmpt.org/files/libopenmpt/src/libopenmpt-0.5.5+release.autotools.tar.gz
Why we should include this: This is a library for decoding MOD music files that can be used by FFmpeg (and therefore leveraged by FFmpeg-based players) and Audacious player. While we already have libmodplug, libopenmpt is generally considered to be a better alternative:

  1. mpv has issues with playing back some MOD files with libmodplug, while it can playback the same files with libopenmpt fine. The reason for this: FFmpeg returns lower probe score for these files if built against libmodplug (see dev's comment about more advanced probing code for libopenmpt).
  2. Audacious also has issues with MOD decoding by libmodplug - they mention lower amplitude compared to libopenmpt (confirmed in my own testing), and also the fact that libmodplug is "sporadically" maintained and new releases are rare, while libopenmpt has better development and maintenance track.
  3. On the homepage of OpenMPT it's mentioned that "However, unlike libopenmpt, libmodplug is not created from the same source code as OpenMPT and thus misses many bugfixes and lags behind in terms of playback quality and portability".

It's worth mentioning that both projects prefer libopenmpt over libmodplug - FFmpeg tries decoding MOD files with libopenmpt first (in case it was built against both), and Audacious will start doing the same with upcoming 4.1 release. However, since there is a large overlap in supported module formats, probably we should build both packages only against libopenmpt.

I've tested libopenmpt with both FFmpeg (via mpv) and Audacious and can confirm that FFmpeg returns higher probe scores for most module files (so mpv can detect and playback more different MOD files) and that Audacious indeed plays back MOD files with higher amplitude. Also FFmpeg can decode song messages (if present in file) with libopenmpt. I can provide all patches and maintain the library if this request is accepted.