The OpenMPT/libopenmpt project released the latest stable libopenmpt version:

libopenmpt 0.5.0 (2020-05-24)

  • [New] OggMod compressed FastTracker 2 XM (OXM) modules are now supported.
  • [New] The emulated Amiga type when Amiga resampler emulation is enabled can now be selected via ctl render.resampler.emulate_amiga_type. Possible values are: "auto", "a500", "a1200", and an experimental option "unfiltered".
  • [New] libopenmpt: New API openmpt::module::get_current_estimated_bpm() (C++), and openmpt_module_get_current_estimated_bpm() (C) which provides accurate beats per minute information for module formats with time signature and an educated guess based on speed and tempo for others.
  • [New] libopenmpt: New type-aware ctl APIs that do not require memory allocations and are thus realtime-safe: openmpt::module::ctl_get_boolean(), openmpt::module::ctl_get_integer(), openmpt::module::ctl_get_floatingpoint(), openmpt::module::ctl_get_text(), openmpt::module::ctl_set_boolean(), openmpt::module::ctl_set_integer(), openmpt::module::ctl_set_floatingpoint() (C++), and openmpt_module_ctl_get_boolean(), openmpt_module_ctl_get_integer(), openmpt_module_ctl_get_floatingpoint(), openmpt_module_ctl_get_text(), openmpt_module_ctl_set_boolean(), openmpt_module_ctl_set_integer(), openmpt_module_ctl_set_floatingpoint() (C).
  • [New] libopenmpt C++ New API openmpt::is_extension_supported2() which takes a std::string_view parameter instead of std::string.
  • [New] libopenmpt C++: New API openmpt::module::module(std::vector<std::byte> data), openmpt::module::module(const std::byte * data, std::size_t size), openmpt::module::module(const std::byte * beg, const std::byte * end).
  • [New] libopenmpt C++: New API openmpt::probe_file_header(flags, const std::byte * data, std::size_t size, filesize), openmpt::probe_file_header(flags, const std::byte * data, std::size_t size).
  • [New] libopenmpt_ext C++: New API openmpt::module_ext::module_ext(std::vector<std::byte> data), openmpt::module_ext::module_ext(const std::byte * data, std::size_t size), openmpt::module_ext::module_ext(std::vector<std::uint8_t> data), openmpt::module_ext::module_ext(const std::uint8_t * data, std::size_t size).

  • [Change] std::istream based file I/O has been speed up.
  • [Change] Dependency on iconv on Linux has been removed.

  • [Regression] libmodplug: The libmodplug emulation layer has been removed from the libopenmpt tree. Please use the separate libopenmpt-modplug package instead.
  • [Regression] foo_openmpt: foo_openmpt is discontinued. Please use Kode54’s fork foo_openmpt54: https://www.foobar2000.org/components/view/foo_openmpt54.
  • [Regression] Support for building with C++11 or C++14 has been removed. C++17 is now required to build libopenmpt.
  • [Regression] Support for client code using C++11 or C++ 14 has been removed. C++17 is now required to build libopenmpt client applications.
  • [Regression] Support for Visual Studio 2015 has been removed.
  • [Regression] Support for GCC 4.8, 4.9, 5, 6 has been removed.
  • [Regression] Support for Clang 3.6, 3.7, 3.8, 3.9, 4 has been removed.
  • [Regression] Support for Emscripten versions older than 1.39.1 has been removed.
  • [Regression] Building with Android NDK older than NDK r18b is not supported any more.
  • [Regression] openmpt123: Support for SDL1 (but not SDL2) output has been removed.
  • [Regression] openmpt123: Support for SDL2 older than 2.0.4 has been removed.
  • [Regression] Windows XP and Windows Vista are no longer supported.
  • [Regression] It is no longer possible to optionally use iconv for character set conversions.

  • [Bug] openmpt123: openmpt123 now honors the current locale and outputs text appropriately.
  • [Bug] openmpt123: Piping text output to other than console window targets on Windows has been fixed.

  • Greatly improved MED import. Synthesized instruments are still not supported but support was added for: Multisampled instruments, delta samples, more pattern commands, Hold and Decay, VSTi and MIDI output, multiple songs and many other small changes.
  • Improved OPL channel allocation when more than 18 notes are active, so that channels that have completely faded out are prioritized over channels that have already been released but have not faded out yet.
  • Interactively triggering an OPL instrument could cause the first pattern channel to no longer be played back correctly.
  • Fix some inaccuracies in OPL emulator.
  • Fix overflow of OPL amplification happening at a synth volume level of 510.
  • End-of-sample pop reduction of surround channels was applied to front channels instead, causing a pop on the front channels instead of removing it on the back channels.
  • IT: Disable retrigger with short notes quirk for modules saved with Chibi Tracker, as it does not implement that quirk.
  • IT: Instrument and sample panning should not override channel panning for following notes.
  • IT: SBx is now prioritized over Bxx commands that are to the left of it.
  • IT: Duplicate Check Type “Sample” should only be applied if the instruments match, too.
  • IT: Duplicate Check Type “Note” should compare pattern notes, but it was comparing the new pattern note against the old translated note.
  • IT: Various fixes for envelope resetting.
  • IT / S3M: When combining SBx and EEx effects, don’t skip the first row of the loop like in FastTracker 2.
  • S3M: Empty pattern commands now affect effect memory as well.
  • S3M: Offset beyond loop end wraps around to loop start like in Scream Tracker 3 + GUS (previously it just keep playing from the loop start, which is neither what GUS nor Sound Blaster drivers do).
  • S3M: Notes cannot be retriggered after they have been cut.
  • S3M: Fix portamento after note cut (fixes antediluvian_song.s3m).
  • S3M / MOD: Previous note offset is no longer used for retriggered notes if there was no instrument number next to the Qxy effect.
  • MOD: Sample swapping now also works if the sample that is being swapped from does not loop. Swapping to a non-looped sample now stops playback once the swapped-from sample reaches its (loop) end.
  • MOD: Fix early song ending due to ProTracker pattern jump quirk (EEx + Dxx on same row) if infinite looping is disabled. Fixes Haunted Tracks.mod by Triace.
  • MOD: Previous note offset is no longer used for retriggered notes if there was no instrument number next to the E9x effect.
  • MOD: Vibrato type “ramp down” was upside down.
  • XM: If a file contains patterns longer than 1024 rows, they are now clamped to 1024 rows instead of 64 rows.
  • XM: Do not reset note-off status on portamento if there is no instrument number.

  • mpg123: v1.26rc3.
  • ogg: v1.3.4.
  • vorbis: v1.3.6.
  • zlib: v1.2.11.
  • minimp3: commit 55da78cbeea5fb6757f8df672567714e1e8ca3e9 (2020-03-04).
  • stb_vorbis: v1.19 commit 37b9b20fdec06c75a0493e0bb59e2d0f288bfb51 (2020-02-05).
  • miniz: v2.1.0.
  • FLAC: v1.3.3.
  • PortAudio: commit 799a6834a58592eadc5712cba73b35956dc51579 (2020-03-26).

The changelog for older versions can be found at https://lib.openmpt.org/doc/changelog.html .

Source code download links:

Documentation and binary downloads can be found at the libopenmpt website at https://lib.openmpt.org/libopenmpt/.


The OpenMPT/libopenmpt project also released an update to the old libopenmpt 0.4 stable branch:

libopenmpt 0.4.13 (2020-05-24)

  • [Change] libmodplug: The libmodplug emulation layer is now deprecated in the libopenmpt tree. Please use the separate libopenmpt-modplug package instead. The Makefile build system now requires LIBMODPLUG=1 option to build the libmodplug emulation layer.

  • IT: Disable retrigger with short notes quirk for modules saved with Chibi Tracker, as it does not implement that quirk.
  • S3M / MOD: Previous note offset is no longer used for retriggered notes if there was no instrument number next to the Qxy effect.
  • MOD: Fix early song ending due to ProTracker pattern jump quirk (EEx + Dxx on same row) if infinite looping is disabled. Fixes Haunted Tracks.mod by Triace.
  • MOD: Vibrato type “ramp down” was upside down.
  • Fix overflow of OPL amplification happening at a synth volume level of 510.

  • minimp3: Update to commit 55da78cbeea5fb6757f8df672567714e1e8ca3e9 (2020-03-04).
  • stb_vorbis: Update to v1.19 commit 37b9b20fdec06c75a0493e0bb59e2d0f288bfb51 (2020-02-05).

Source code download links:

Documentation and binary downloads can be found at the libopenmpt website at https://lib.openmpt.org/libopenmpt/.


The OpenMPT/libopenmpt project also released an update to the old libopenmpt 0.3 stable branch:

libopenmpt 0.3.22 (2020-05-24)

  • IT: Disable retrigger with short notes quirk for modules saved with Chibi Tracker, as it does not implement that quirk.
  • MOD: Fix early song ending due to ProTracker pattern jump quirk (EEx + Dxx on same row) if infinite looping is disabled. Fixes Haunted Tracks.mod by Triace.
  • MOD: Vibrato type “ramp down” was upside down.

  • stb_vorbis: Update to v1.19 commit 37b9b20fdec06c75a0493e0bb59e2d0f288bfb51 (2020-02-05).

Source code download links:

Documentation and binary downloads can be found at the libopenmpt website at https://lib.openmpt.org/libopenmpt/.


The following libopenmpt versions are currently supported with security fixes by the OpenMPT/libopenmpt project:

  • 0.5.0
    • Current stable version.
    • Receives security updates.
    • Receives minor playback fixes.
  • 0.4.13
    • Old stable version.
    • Receives security updates.
    • Receives trivial bug fixes.
  • 0.3.22
    • Old stable version.
    • Receives security updates.
    • Receives trivial bug fixes.
  • 0.6 (SVN trunk)
    • development
    • security updates
    • playback fixes
    • new features
    • new file formats

Please update to the newest versions.