#15846 closed Bugs (Obsolete)

Replace libmodplug with libopenmpt

Reported by: jschultz Owned by: fritsch
Priority: 4 - Normal
Component: Audio playback (audio/video files) Version:
Severity: Normal Keywords:
Cc: FernetMenta Blocked By:
Blocking: Platform: All


Hi there, I'm a libopenmpt developer. I noticed that XBMC appears to have native support for the libmodplug module playing library, which is great. However, libmodplug has been greatly neglected in terms of playback quality over the last 10 years.

Both libmodplug and libopenmpt have the same code origins, namely ModPlug Tracker, however libopenmpt is being actively developed and is based on exactly the same code as OpenMPT, the open-source descendant of ModPlug Tracker. Compared to libmodplug, libopenmpt supports more formats, more platforms and has far less playback bugs. libopenmpt is being released under the BSD license and has a libmodplug API compatibility layer, which should make replacing libopenmpt with libmodplug relatively simple - though it would of course be preferable to use its own C++ or C interface at some point, which offers some more features like subsong detection or pitch shift / time stretch, which may be interesting features for an audio player.

Change History (12)

comment:1 Changed at 2015-03-09T06:19:44Z by FernetMenta

We are about to remove all audio decoders from the core. Those are going to be addons: https://github.com/xbmc/xbmc/pull/6600

You could write an addon for openmpt.

comment:2 Changed at 2015-03-09T13:37:36Z by jschultz

Well, I see that https://github.com/notspiff/audiodecoder.modplug is already there. For the time being, it would be great if this was linked against libopenmpt (and its compatibility layer) instead of libmodplug at least, so that people can listen to their stuff with less playback bugs.

comment:3 Changed at 2015-03-09T13:52:00Z by ironic_monkey

modplug is in the debian repos, this thing is not, so i am a bit reluctant to replace. i'd gladly do a separate addon though. (notspiff with another nick).

Last edited at 2015-03-09T13:52:17Z by ironic_monkey (previous) (diff)

comment:4 Changed at 2015-03-09T13:57:23Z by jschultz

A Debian package for libopenmpt is planned but not ready yet. But what's the difference, given that XMBC is cross-platform? If anything, you won't need all these custom patches to libmodplug anymore: https://github.com/notspiff/audiodecoder.modplug/tree/master/depends/windows/modplug

comment:5 Changed at 2015-03-09T14:28:02Z by ironic_monkey

because linux (ubuntu) builds use system level libraries. other platforms won't be affected, but ubuntu will.

anyways, as i said i'm happy to do another addon with the goal of deprecating the old one. but i see no reason to rip out the old. it works (to the extent that modplug does indeed rape some modules.. i have a d.u.m.b. addon for accurate playback).

comment:6 Changed at 2015-03-09T14:42:02Z by ironic_monkey

oh, and just so you get why i don't like the ubuntu complication: if ubuntu has a system lib, we can build libopenmpt through the depends system which is used on platforms != ubuntu (i.e. the things you linked for windows there for instace). if ubuntu also needs to build the lib, i need to build it inline with the addon buildsystem, since we do not build depends on ubuntu.

comment:7 Changed at 2015-03-09T14:56:03Z by ironic_monkey

okay, looked a little at this. your buildsystem needs some more option before i start cracking on this. need to be able to control flac, sndfile usage et al without having to remove libraries from the system. will this be done upstream or do i have to patch ?

comment:8 Changed at 2015-03-09T16:23:34Z by jschultz

The external libraries you are referring to are only required by openmpt123, the example command line module player that comes with the libopenmpt package. make OPENMPT123=0 causes openmpt123 not to build and drops the requirements. libopenmpt is self-contained and doesn't require any external libraries. zlib is the only optional dependency, but NO_ZLIB=1 can be specified if even this library should not be used.

Is that DUMB add-on based on the original DUMB library or kode54's modified version? kode54's version should be on par with libopenmpt but the original library is definitely lacking behind.

comment:9 Changed at 2015-03-09T16:43:48Z by ironic_monkey

nice. then configure picking them up is not a problem.

it's based on kode54's code.

Last edited at 2015-03-09T16:44:00Z by ironic_monkey (previous) (diff)

comment:10 Changed at 2015-03-09T17:54:00Z by ironic_monkey


initial implementation. depends is a work in progress. on linux you have to presupply the libraries, i.e. execute 'make install' for openmpt.

comment:11 Changed at 2015-03-09T18:05:29Z by jschultz

Very nice. :)

comment:12 Changed at 2018-05-08T09:37:47+01:00 by Rechi

  • Milestone changed from Pending / Future to 15.0 "Isengard"
  • Resolution set to Obsolete
  • Status changed from new to closed

Audio decoders are now binary addons.

Note: See TracTickets for help on using tickets.