vitamin-caig / zxtune

Mirror of http://bitbucket.org/zxtune/zxtune repository with robot-only issues tracker
https://zxtune.bitbucket.io
148 stars 17 forks source link

Feature request: libopenmpt to replace libxmp #2184

Closed Midi-In closed 3 years ago

Midi-In commented 4 years ago

Currently ZXTune plays classic sampled tracker module formats (.IT, .XM, .S3M, .MOD) utilising XMP library which is less accurate compared to libopenmpt and its development seems be on hiatus (last release was on Oct 12 2016). Moreover libopenmpt supports OpenMPT's native MPTM format, which XMP does not. Would ditching XMP in favour of libopenmpt (or at the very least giving the user the choice between the two) be feasible in the foreseeable future?

Hopefully exposing more playback settings like volume ramping, stereo separation, different resampling algorithms and Amiga filter toggle to the user through libopenmpt API would also be possible.

vitamin-caig commented 4 years ago

Unfortunately, currently it's not possible. openmpt uses modern c++17 language standard which is not supported by some of the toolchains used by zxtune. And I still have no idea how to change that.

But you may try to ask openmpt maintainers to support compilers with old standard (c++11 as for now).

sagamusix commented 3 years ago

libopenmpt 0.4 only requires C++11 and is still supported in addition to libopenmpt 0.5 (which indeed requires C++17). It's completely ruled out that in the year 2020 (well, almost 2021) we will go back to supporting C++11. Moving to a more modern language standard was a very concious decision.

vitamin-caig commented 3 years ago

libopenmpt 0.4 only requires C++11 and is still supported in addition to libopenmpt 0.5 (which indeed requires C++17). It's completely ruled out that in the year 2020 (well, almost 2021) we will go back to supporting C++11. Moving to a more modern language standard was a very concious decision.

That's good news! I would be glad to support C++17 (or even fresh C++20) in my project, but some of the toolchains don't support anything but C++11 :(

Midi-In commented 3 years ago

Then the problem is at least partially solved - implement libopenmpt 0.4 first, as the initial step in the direction of deprecating libxmp

vitamin-caig commented 3 years ago

Done in 9f16290e2f17c03062561aba8688dec4ecd69a7d